Subscribe

Diving deep

Exposing the core of application performance management.

Jaco Greyling
By Jaco Greyling, Chief technical officer, DevOps, at CA Southern Africa.
Johannesburg, 06 Jun 2012

Application component deep-dive is at the core of any application performance management (APM) solution.

Without it, the solution will not be able to link the end-user experience with the underlying IT plumbing that supports the business services. Earlier in this Industry Insight series, I talked about application runtime architecture discovery and how it's important to visually build the runtime transaction execution path for better understanding (how all the components interconnect) and root cause analysis.

There are two forms of deep-dive monitoring: firstly, latency monitoring, and secondly, resource consumption monitoring.

APM will have to adapt to monitor distributed applications not only inside the data centre, but also in the cloud.

Jaco Greyling is solution strategist at CA Southern Africa.

To achieve the appropriate level of detail, some kind of instrumentation is necessary. To monitor latency within the application construct, a user needs to monitor - or rather 'instrument', as it is more commonly known in the industry - the runtime environment in order to collect performance data about the application routines as they are executed.

Take a look at Java, for example: the runtime environment is called the Java Virtual Machine (JVM). In order to monitor the JVM, a user needs to instrument this using a technique called byte code instrumentation. This allows the user to extract information for each method (code routine) invoked as part of the business transaction. However, when looking at resource consumption, this requires a standalone agent, collecting performance statistics for either the system or network component(s) in question.

Measuring up

Measuring application latency is not new to APM, but the convergence of infrastructure management toolsets with APM has given way to a 360˚ view of the end-user experience. The ability to deep-dive from the end-users' experience to the code routines and down to the physical or virtual layer that underpins that transaction is immensely powerful during triage. It allows the user to move away from the finger-pointing exercise normally prevalent during application outages, and instead allows IT to focus on the problem at hand, also called mean time to innocence.

Application performance analytics is all about taking large amounts of data - from all the element managers - and correlating them within, and across, the various datasets in order to derive value from APM. One example of this is the ability to track (through a sequence of notifications) the location of a user-defined transaction as it hops across the various components of the infrastructure.

Tracking individual transactions across distributed applications requires the injection of a correlation identifier into the request header (eg, HTTP, SOAP, and MQ) and extracting it at the remote-end. This is important for tracking business transactions throughout heterogeneous environments, but users need to go further.

Users have to tie the business transactions to the underlying infrastructure that supports it and link the various resources together. One way of doing this is via a unified service model (USM). This defines a logically coherent, common representation of common resource types and management operations. USM also correlates and integrates the data instances into a single, logical management data repository and management system.

Deeper understanding

From a reporting/alerting point of view, the value can now be realised at different levels, using the same "pane of glass" for all stakeholders. The business line manager can gain insight into the customer experience and business volumes, while operations can identify and isolate problems before their customers are seriously impacted. Similarly, the quality assurance team can be confident that the application will perform well in production, and development can identify problems before it's released into production. For the CIO, this allows the ability to measure the pulse of the business in real-time.

Now that I'm talking about the various elements that combine to make up the 360˚ view of the end-user experience - where to from here?

There are a couple of areas where the industry will see some expansion in the next 24 months. With Web 2.0, a lot of the computational processing has been off-loaded to the edge of the Internet (the browser), and thus vendors will have to find ways of capturing performance data at the edge and feed that back in order to do analytics and reporting of the end-user experience.

As more and more companies turn to private, and ultimately, public cloud offerings to supplement their IT services, so APM will have to adapt to monitor distributed applications not only inside the data centre, but also in the cloud.

Application performance management will also play an increasingly important role in application life cycle optimisation. With the adoption of service virtualisation (SV) by organisations with complex heterogeneous applications, or where the core business services are delivered through IT, APM has a real contributing role to play.

SV is a method of emulating the behaviour of specific components in heterogeneous component-based applications such as services-oriented architectures. The ability to take performance data from production systems, using APM to simulate the performance characteristics of a particular component, is key in accurately simulating or virtualising a service in development. This, in turn, gives way to more mature code and reduced defect counts in production, further cementing APM's role in driving business growth into the future.

Share