Monday, February 8, 2010

Time to rethink Application Performance Management - APM 2.0???

Hi Fellow SOA Practitioners' and Cloud Service Providers -

I am sure that many of you are struggling with monitoing highly distributed services that have stringent business SLAs.  I am wondering about how you are managing to tune the performance of the individual components that make up the business service or business process.  I feel that there are some key differences that need to be kept in mind in terms of what legacy APMs have to offer to us vs. what we need in these so called next gen APMs that are built to monitor and manage performance of a distributed SOA stack or a cloud based business service offering

Here are some of the salient features that differentiate this APM 2.0 concept from the legacy APMs.
  1. requires to have a deployer or Ops centric deployment view as opposed to a developer centric view
  2. built ground up for highly distributed service based deployments as opposed to the single appliction server container or single JVM based monolithic deployments (the forte of legacy APMs)
  3. should not force a developer of the code/ scripts to monitor potential perforamance bottle necks as the developer is trained to make things work and to have to force them to define monitoring scripts that require a mindset that looks at where things would break (from a communications perspective or from an integration perspective) is inefficient and error-prone
  4. does not force the definition of a per JVM definition of monitoring directives allowing for an highly distributed transaction view or an end to end business process view
  5. provides a visual flow like representation that can be combined with policy based definition of SLAs which has the ability to define SLA tolerance/ compliance ranges 
  6. is able to support on-demand run time enrichment/ augmentation of the payload that enables activation of monitoring capabilities on a live system as issues occur (or service execution pathways change) as opposed to predicting these performance choke points at deployment time based in known "execution paths"
  7. does not focus on logging of information and reactive analysis to enable monitors but can be more proactive, business focused and policy based with on the spot analysis capability
Thoughts on this concept or any one has ideas of tools that do what I am looking for?
 
Thanks for listening.
surekha -

2 comments:

  1. Hi Surekha

    You have raised very excellent points about how it is now time to rethink Application Performance Management and come up with a 2nd generation of APM - "APM 2.0".
    I am Founder of a startup company AppDynamics (www.appdynamics.com) which is focused on creating the next-generation application performance management product, and we have been hearing the similar issues from a large number of enterprises. Our core engineering team previously had lead engineering roles in Wily Introscope dev team - one of the leading "APM 1.0" product, and we decided to build a second generation of APM solution to address exactly many of the issues you raised in your post. The first generation of APM tools was designed about 10 years ago when Java/.NET architectures were very monolithic and those tools are unsuitable to provide visibility and performance management for today's service-oriented and highly distributed architectures. We believe that the 5 key requirements from an "APM 2.0" solution are:

    1. Built for Distributed Applications. An APM 2.0 solution should provide a visual map of the distributed application to illuminate the application topology for IT Operations. To accomplish this, AppDynamics delivers Application Mapping to dynamically discover all application tiers and back-end services, even when agile development introduces new code. 



    2. Business Transaction Centric. An APM 2.0 solution should measure the health of what matters to the business – the business transaction. No longer is measuring infrastructure and application component health sufficient to effectively assure service quality. AppDynamics Transaction Flow Monitoring provides visibility into how each transaction performs as it journeys along the distributed environment, a technique that enables IT Operations to be extremely precise in troubleshooting application problems.

    3. Deep Diagnostics. An APM 2.0 solution should be able to deliver deep diagnostics in an “always on” capacity, delivering class and method-level detail without introducing excess overhead in production environments. AppDynamics Deep on-Demand DiagnosticsTM enable rapid root cause analysis with no more than 2% overhead.

    

4. Policy Driven. To avoid false alarms, an APM 2.0 solution should accurately distinguish between consistent patterns of poor performance versus one-time anomalies. It should also assess business transaction health by learning each business transaction’s historical performance pattern and comparing it to current performance. AppDynamics’s policy engine and dynamic baselines provide an unmatched level of detection accuracy.

    5. Cloud Ready. An APM 2.0 solution should both be able to monitor cloud-deployed applications and leverage elastic computing to create capacity on demand; AppDynamics is the first APM solution with cloud orchestration to enable companies to intelligently scale up and scale down capacity as needed.

    We encourage you to check out our website www.appdynamics.com for more details on our solution.

    -
    Jyoti Bansal
    Founder, AppDynamics
    www.appdynamics.com

    ReplyDelete
  2. Great post ! I'm addicted to PM apps and software. Love comparing them and finding solutions. Thanks for your list and for sharing !

    ReplyDelete