Application performance management

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In the fields of information technology and systems management, application performance management (APM), is the monitoring and managing of performance and availability of software applications. APM strives to detect and diagnose application performance problems to maintain an expected level of service. APM is the translation of IT metrics into business meaning (value).[1]

Contents

Measuring application performance [edit]

There are two main methods by which application performance is assessed. The first method is measuring the computational resources used by the application. The second method is measuring the performance as seen by a user of the application, which has two components. The first component, sometimes called bandwidth, is the volume of transactions that are processed by the application per unit time. The second component, sometimes called latency, is time required for an application to respond to a user action. [2]

Measurement of these quantities establishes an empirical performance baseline of the application in use. The baseline can then be used to detect changes in performance. Changes in performance can be correlated with external events and subsequently used to predict future changes in application performance.[3]

The use of APM is common for web applications.[citation needed] In addition to measuring response time for a user, response times for components of a web application can also be monitored to help pinpoint causes of delay. There also exist HTTP appliances that can decode transaction-specific response times at the web server layer of the application.

In their APM Conceptual Framework, Gartner research describes five dimensions of APM:[4][5][6]

Current Issues [edit]

In the first half of 2013 APM has entered into a period of intense competition of technology and strategy with a multiplicity of vendors and viewpoints.[7] This has caused an upheaval in the marketplace with vendors from unrelated backgrounds including network monitoring, systems management, application instrumentation, or web performance monitoring to adopt messaging around APM. As a result, the term APM has become diluted and has evolved into a concept for managing application performance across many diverse computing platforms, rather than a single market. [8]

Two challenges for implementing APM are (1) it can be difficult to instrument an application to monitor application performance, especially among components of an application, and (2) applications can be virtualized, which increases the variability of the measurements.[9] [10] Distributed, virtual and cloud-based applications pose a unique challenge for application performance monitoring because most of the key system components are no longer hosted on a single machine. Each function is now likely to have been designed as an Internet service that runs on multiple virtualized systems. The applications themselves are very likely to be moving from one system to another to meet service level objectives and deal with momentary outages.[11]

The APM Conceptual Framework [edit]

Applications themselves are becoming increasingly difficult to manage as they move toward highly-distributed, multi-tier, multi-element constructs that in many cases rely on application development frameworks such as .NET or Java.[12] The APM Conceptual Framework was designed to help prioritize an approach on what to focus on first for a quick implementation and overall understanding of the 5 dimensional APM model. The framework slide outlines 3 areas of focus for each dimension and describes their potential benefits. These areas are referenced as "Primary" below, with the lower priority dimensions referenced as "Secondary."[13]

End User Experience – (Primary) [edit]

Measuring the transit of traffic from user request to data and back again is part of capturing the end-user-experience (EUE).[14] The outcome of this is referred to as Real-time Application monitoring (aka. Top Down monitoring), which has two components, Passive and Active. Passive monitoring is usually an agentless appliance implemented using network port mirroring. A key feature to consider in this solution is the ability to support multiple protocol analytics (e.g. XML, SQL, PHP) since most companies have more than just web-based applications to support. Active monitoring, on the other hand, consists of synthetic probes and web robots predefined to report system availability and business transactions. This is a good complement when used with passive monitoring that together help provide visibility on application health during off peak hours when transaction volume is low.

This slide outlines 3 areas of focus for each dimension and describes their potential benefits.

User Experience Management (UEM) is a subcategory that emerged from the EUE dimension to monitor the behavioral context of the user. UEM, as practiced today, goes beyond availability to capture latencies and inconsistencies, as human beings interact with applications and other services.[15] This is usually agent-based that may include JavaScript injection to monitor at the end user device, and is considered another facet of Real-time Application monitoring.

Runtime Application Architecture (Secondary) [edit]

When preparing to implement a runtime application architecture it is necessary to ensure that up/down monitoring is in place for all nodes and servers within the environment (aka, bottom-up monitoring). This is essential to support service dependency mappings that provide an understanding on how network topologies interact with application architecture.

Business Transaction (Primary) [edit]

Focus on user defined transactions or the URL page definitions that have some meaning to the business community. For example, if there are 200 to 300 unique page definitions for a given application, group them together into 8-12 high level categories. This allows for meaningful SLA reports, and provides trending information on application performance from a business perspective: start with broad categories and refine them over time. For a deeper understanding see Business Transaction Management.

Deep Dive Component Monitoring (Secondary) [edit]

This requires an agent install and is generally targeted in the middleware space focusing on the web, application, and messaging servers. It should provide a real time view of the J2EE and .NET stacks, tying them back to the user defined business transactions. A robust solution shows a clear path from a code execution standpoint (e.g., springs, struts, etc.), to the URL rendered, to the user request. Since this is closely related to the second dimension in the APM model, most products in this space also provide application discovery dependency mapping (ADDM) as part of their broader solution.

Analytics/Reporting (Primary) [edit]

It is important to arrive at a common set of metrics to collect and report on for each application, then standardize on a common view on how to present the application performance data. Collecting raw data from the other tool sets across the APM model provides flexibility in application reporting. This allows for answering a wide variety of performance questions as they arise, despite the different platforms each application may be running on. Too much information is overwhelming. That is why it is important to keep reports simple or they won’t be used.[16]

References [edit]

  1. ^ "The Anatomy of APM". APM Digest. 4 April 2012. 
  2. ^ Dubie, Denise. "Performance management from the client's point of view". NetworkWorld. Retrieved 22 March 2013. 
  3. ^ "APM and MoM -Symbiotic Solution Sets". APM Digest. 11 May 2012. 
  4. ^ "Keep the Five Functional Dimensions of APM Distinct". Gartner Research. 16 September 2010.  Unknown parameter |ID Number= ignored (help)
  5. ^ "Analytics vs. APM". APM Digest. 28 January 2013. 
  6. ^ "A Comparison of Application Performance Management Suites from CA, HP and Oracle". Crimson consulting group. Retrieved 22 March 2013. 
  7. ^ "APM Convergence: Monitoring vs. Management". APM Digest. 6 March 2013. 
  8. ^ "Application Performance Management Spectrum". TRAC Research. 11 March 2013. 
  9. ^ Khanna, Gunjan; Beaty, Kirk A.; Kar, Gautam; Kochut, Andrzej (2006). "Application Performance Management in Virtualized Server Environments". Network Operations and Management Symposium, 2006. NOMS 2006. 10th IEEE/IFIP: 373–381. doi:10.1109/NOMS.2006.1687567. Retrieved 22 March 2013. 
  10. ^ Matchett, Mike. "Is Virtualization Stalled On Performance?". Virtualization Review. Retrieved 22 March 2013. 
  11. ^ "Differences between approaches to APM - a chat with Jesse Rothstein of Extrahop". ZDNet. 9 December 2011. 
  12. ^ "The Five Essential Elements of Application Performance Monitoring". Realtime NEXUS. 2010. 
  13. ^ "Priorizing Gartner's APM Model: The APM Conceptual Framework". APM Digest. 15 March 2012. 
  14. ^ "Application performance monitoring tools: Three vendor strategies". SearchNetworking. 25 March 2013. 
  15. ^ "Insight from the User Experience Management Panel in Boston". APM Digest. 23 March 2012. 
  16. ^ "Big Data and Advanced Analytics: Success Stories From the Front Lines". Forbes. 3 December 2012. 

See also [edit]