Application Performance Management (APM)
In the fields of information technology and systems management, Application Performance Management (APM) is the monitoring and management of the performance and availability of software applications. APM strives to detect and diagnose complex application performance problems to maintain an expected level of service. APM is "the translation of IT metrics into business meaning ([i.e.] value).
Application performance management (APM) is the practice of detecting and addressing software application issues, so that end users have a quality experience. As applications and platforms have deepened in complexity, the need for APM solutions has become more crucial. The solutions monitor and manage application performance, availability, and security throughout the application lifecycle by measuring the response times of users, application components, and specific transactions.
Dimensions of Application Performance Management (APM)
- End user experience monitoring: Real-time Application Monitoring, also referred to as Top Down monitoring, is the cornerstone that gives the EUE its tangible value. It has been our experience that Real User Monitoring (RUM) technology provides at least 80% of the APM value in terms of application visibility for the business, and helps lay the foundation for performance trending and predictive analysis. This approach of Top Down monitoring has two components, Passive and Active. Passive monitoring is usually an agentless appliance and low risk to implement using network port mirroring. In general, this can be up and running providing details of the application performance in less than two days. When considering an agentless solution, a key feature to look for is the ability to support multiple protocol analytics (e.g. XML, SAP ABAP, SQL) 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 which help report on system availability and predefined business transactions. This is a good complement when used with passive monitoring that together will help provide visibility on application health during off-peak hours when transaction volume is low.
- Application run-time architecture discovery and modeling: A minimal takeaway here would be to ensure that you have up/down monitoring in place for all nodes/servers within the environment. Also referred to as Bottom Up monitoring, this will become a critical component to build on when working on event correlation to help implement an overall runtime architecture solution. Providing the transaction path snapshots will also help bring together the Top Down and Bottom Up monitoring. This will give you better service dependency mappings and an understanding of how the network topologies interact with the application architecture. Keep in mind though the runtime views are something you can focus on after you have built a solid application profile with the EUE, Business Transactions, and Reporting/Analytics dimensions.
- Business transaction management: Using a subset of this dimension, we focus on the user-defined transaction or the URL page definition that has some meaning to the Business community. There may be 200 to 300 unique page definitions for any given application however; we will group them together into 8-12 high-level business transaction categories. This helps begin the process of articulating meaningful SLAs to the business and provides early warning trend reports on performance degradation before it becomes apparent to the majority of the user population. Once your APM solution matures, you can then fine-tune what each business transaction means as you implement other facets of the APM model. Keep it simple, start with broad categories and then refine them over time.
- Application component monitoring: This will require an agent install and is generally targeted in the middleware space focusing on the Web, application, and messaging Servers. It should be able to give you the runtime view of the J2EE and .NET stacks, tying them back to the user-defined business transactions. A robust solution will give you a clear path from the code execution standpoint (e.g. springs, struts, etc.), to the URL rendered, to the user request, and where it came from. Since this is closely related to the second dimension in the APM model, you will find that most products in this space will also provide application discovery dependency mapping (ADDM) as part of their broader solution.
- Reporting & Application data analytics: A good practice is to collect the raw data from the other tool sets that will allow you to answer a wide variety of performance questions as they arise. Most products will summarize or roll up the detailed data for reporting and archiving purposes and may fall short in answering long-term trending questions. It is also beneficial to find a product that has an open data mining interface within the context of its own tool set. This will give others the flexibility to create their own reports and become somewhat of a “self-feeder” when it comes to answering questions on performance. It is important to come to a common set of metrics that you will collect and report on for each application. Then standardize on a common view on how you will present the real-time performance data as well as the monthly SLA reports despite the diverse technologies and different platforms each application may be running on.
Benefits of Application Performance Management
Four ways APM can benefit the IT organization:
- 1. Gain Visibility Into Apps Across the Entire Technology Stack
When properly designed and implemented, APM will provide you with the right levels of SPM transparency. You’ll gain visibility into how your applications are performing across your entire technology stack — whether they’re located in legacy systems, private clouds, or public clouds. You’ll be able to monitor app performance for all your enterprise users — regardless of where they’re located or what device they’re using.
This visibility lets you experience apps the way your end users are experiencing them. If a performance problem arises, you’ll see exactly where within your technology stack — including the network, servers, database, application code, or end-user device — the bottleneck lies. With this level of diagnostic insight, you can address the technical root cause before your end users complain.
When you proactively identify issues, you can determine whether changes in your IT environment are causing degradation in services. This helps your IT organization move from being a “firefighter” to a “fire safety and prevention specialist.”
This also improves productivity across the enterprise, as you can greatly reduce the amount of unplanned work that comes with service disruptions.
- 2. Make the IT Organization More Valuable to the Business
APM’s deep insights allow IT organizations to become more service-centric. The more visibility you have in your apps, the more you can ensure that your IT services meet the business’s SLAs. For example, you can use APM to provide real-time reporting on your service level compliance, demonstrating your commitment to service delivery.
The context analytics that you gain through APM lets you measure how applications impact the business. This helps you tie service performance directly to the business’s financial results. This capability makes your IT organization more valuable - reinforcing your strategic role in employee productivity and customer engagement while also driving revenue.
APM will also provide you with visibility that allows you to make data-driven, service-based investment decisions. For example, since APM tools automatically gather performance data and track system resource utilization, you can gain deep insights into how your servers and infrastructure are consuming resources – both in and out of the cloud. This insight allows you to optimize your infrastructure spending, plan for seasonality, allocate costs and negotiate service contracts with cloud or hosting vendors.
- 3. Manage IT Costs
APM helps you manage your costs, as you can use its insights to better predict peaks and valleys in application consumption. You can also manage the capacity of your capital-intensive resources.
Taking a strategic approach to performance management and using APM tools may allow you to consolidate your technology-domain-centric tools. This helps eliminate redundancies and the need for specialized skills. It also can boost your efficiency.
- 4. Take a Proactive Approach to IT Management
Extending your performance strategy into your service/application design and development phases can enhance your IT organization's proactive management capabilities. For example, APM shows developers how their code is performing — whether they use agile or waterfall design processes. This helps them meet the business’s desired performance levels before they deploy apps.
APM can also help your IT Operations team. For example, when they receive alerts about slowdowns in production, they can view up-to-the-second diagnostics that can help them troubleshoot. They can use these diagnostics to collaboratively resolve the problem without pointing fingers or assigning blame.