Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Srini Penchikala on Dec 10, 2008
The latest version of JXInsight, an application performance monitoring and problem diagnostic solution software, supports activity based metering solution and JMX integration for Java applications. JInspired development team has recently announced the availability of JXInsight 5.7 version (nicknamed "Excel").
Activity-based costing (ABC) model identifies activities in the enterprise applications and assigns the cost of each activity resource to all products and services based on the actual consumption by each resource. JXInsight Probes provide the activity-based costing solution to assign costs to applications, services and components based on resource consumption. The probes runtime components measure the usage of resources by applications, services and components to help IT service management to combine key performance indicators (KPI) from both performance and cost management domains into a single management model.
JXInsight's Activity-based costing solution includes the following performance monitoring and management features.
The new release of JXInsight also supports JMX integration which includes the new probes management provider extension management beans (GroupMBean and MeteringMBean) which are registered with a local MBeanServer for every metered probe Group and associated resource Metering created. The JMX support also includes Oracle Coherence integration via the new Oracle Coherence management integration extension probe related MBeans. This managed bean is registered with Oracle Coherence grid-wide management and monitoring (JMX) framework making it possible to monitor every Metering or Group from any grid node.
The latest release also includes the following new features:
The latest version of JXInsight also comes with an API that can be ported to other languages, runtime environments, and platforms. The memory footprint for the aspect oriented runtime has been reduced for applications and additionally the memory footprint and file storage size for probes metering snapshots has been reduced.
There is also a second update to JXInsight 5.7 that was released earlier this week. This update introduces two new probes providers: non-reentrant and concurrent. The nonreentrant probes provider filters out recursive firing of named probes (calls). The concurrent probes provider can help identify execution points in a request processing pipeline that represent possible bottlenecks.
JXInsight is a part of JInspired's Extensible Software Performance Engineering (XPE) is a solution that spans the application life cycle to deliver a resource metering runtime environment. XPE introduces a method for software performance management along with a service delivery framework that provides guidance to combine and integrate people and products into the software performance engineering process.
InfoQ spoke with the product architect of JXInsight William Louth about the current features and future roadmap of the project. Responding to a question on what was the main driving factor behind the new "Activity Based Costing" feature, William said:
When we designed the probes runtime we made the decision to support an unlimited number of resources meters - not just clock time or cpu time which is the standard approach for most other application performance management or profiling tools. This flexibility in the design allowed for the software execution to be metered of in terms of how a business would like to manage the software via measurement (KPI) of one or more unknown activity (thread + context) based counters. It is important to note we are reporting on key performance indicators at a fine granularity - the execution context. System level reporting is only effective for health monitoring and to some degree capacity planning especially as most software gets into production with inadequate levels performance testing or software activity analysis.
With the advent of cloud computing we quickly realized that this metered resource usage had another important management perspective - costing. We already had the resource usage tracking per the software activity monitored what we needed was a way to introduce a cost model that still allowed application monitoring from both a service management perspective and cost management perspective. The support was already there - a resource meter that was cost based and derived from one or more base resource meters activated within runtime. Subsequently we introduced support for multiple cost meters allow customers to still monitor cloud computing costs whilst having one or more additional costing models for charge back schemes or operational cost management.
How does ABC help the SOA architects and developers in SLA based service monitoring and management efforts?
With the increased awareness and interest in cloud and green computing initiatives amongst many large corporations many service oriented architects are being asked to provide a mechanism that provides adequate traceability of resource consumption to software activity. Software based services execute computing activities which consume resources - so controlling activities allows one to control costs at their source.
One of the biggest hurdles in adopting ABC outside of IT is the time spent in determining which activities are being performance and how resources are consumed. With SOA based applications and services this catalog is already collected - all that needs to be done is to be able to dynamically assign costs, via resource usage, based on one of more activities performed by the service itself.
What is the future road map of JXInsight project in terms of new features and enhancements?
We plan on having two new major releases in the coming months. The first release planned for Q1 2009 will address the disconnect between system monitoring models and software monitoring models that is ever present in the current crop of application management & monitoring products. To achieve the goal of seamless switching between system monitoring and software monitoring we will be publishing a new Open API, Metrics, that will support the dynamic registration of metrics with bindings to underlying measures such as system event counters. We already have some aspects of this in the product today but it is largely static and configuration based though we do ship with mappings for most popular platforms. With this major release most of the metrics runtime will be dynamic and able to provide metrics from non-Java systems (i.e. Oracle Database) via a proxy agent.
Our second release planned for Q2 2009 will introduce a revolutionary new approach to operations dashboard design via a dynamic and extensible visualization symbolic language that will be used to render and codify system and software state and behavioral patterns for future predictive automatic problem detection.
Srini Penchikala currently works as Security Architect and has 17 yrs of experience in software product management.
Tutorial: Integrating SQLFire with tc Server and Spring Data
Early Access! Download JBoss Developer Studio 5.0 now, with packages for Mac, Windows or Linux!
Tools to unit test your JavaScript
Good Relationships: The Spring Data Neo4J Guide Book
Introducing SQLFire: a memory-optimized, high performance SQL database
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
Congratulations on the release.
I'm curious about the work that you did with Azul. We've used a number of the proprietary profiling tools that Azul has built for their appliance; are you using the same hooks? Integrating with those? We've just finished some Azul related work for the next release, and was curious if your tools would have helped ..
Peace,
Cameron Purdy
Oracle Coherence: Data Grid for Java, .NET and C++
I doubt any profiling tool would work with Azul Systems solution unless it was:
(1) pure Java based (which implies limited counters/meters)
(2) Azul's own RTM solution
(3) JXInsight Probes
Which one is better? JXInsight of course!!! You get multiple meters, custom meters, probes, metering strategies, probe providers, counters, countings, billings, charges, track and trackings,........ and each aspect can be dynamically added onto a bare metal runtime that runs rings around the competition in terms of performance.
Unless there are some specific runtime specific issues, such as network calls between proxy JVM and compute appliance, you should be able to use our probes technology with a number of meters, counters, providers, and extensions to analyze just about any software activity.
What is also nice is that with our new our counters Open API you can dynamically create/update key performance indicators of your software (cache.put, cache.get) and map these to resource meters (thread based) which can then be used to meter the software activity in terms of the KPI itself. You move away from using clock time primitives to something much more useful, relevant and immediate.
And if you are adventurous or building a cloud computing platform or service you can create cost meters (activity/thread based) which can aggregate multiple weighed resource meters for chargeback schemes or simply as a way to see multiple perspectives in one number (metering).
Expect a nice blog entry shortly on how this can be applied to software services such as a Coherence DataGrid without having to have multiple disconnected/disjointed management consoles and management models (i.e. JMX).
The future of software (as a service in the cloud) will be based mainly on software/service activity metering. System srchitects will be forced to unify management models (performance, capacity, costing) with the activity itself being the cornerstone and not what we have today with operating system constructs such as host and process. Eventually there will be no explicit or visible compute or storage boundaries. We will monitoring and billing based on activity but at various levels (context, cost groups) and perspectives (meters).
Kind regards,
William
Evidently we are not process based as this is ** not ** activity based costing ** unless ** the process was only performing one single software activity for one single customer/user/cost center - hardly enterprise like.
We provide costing at the software activity level. You ** cannot ** do this if all you are doing is pulling some statistics from a Coherence JMX MBean as the statistics are at the process level with no traceability to the activity or chain of activities. No causality, no control.
William
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
3 comments
Watch Thread Reply