How often have you heard the adage, “IT must align itself to the business needs”? It’s one of those buzz phrases that sounds really obvious but, in reality, might be harder to achieve than one would think.
Here is some insight on a tangible way that IT operations can absolutely add value to mission-critical business applications through a new generation of application performance management (APM) technology.
In the past five or so years, there has been a radical shift in the way that many business applications are built. Today’s applications are fundamentally different — built to take advantage of service-oriented architectures, open source software, agile development methods and new development frameworks. At the same time, the IT operations environment has gone from a physical data center to virtual servers and cloud computing; from building for peak demand to delivering capacity on demand; from developer-centric troubleshooting to operations-centric troubleshooting.
At one time, business applications were monolithic, with all the code executing within one big application server and the data being housed in one big database. If something went wrong with the application, one didn’t have to look far to find the issue. That seems almost quaint today, when applications are designed to run over the Internet, and a business transaction may take dozens of hops to complete. Diagnosing a problem in an application today means having to follow a transaction all the way through its various processes taking place on many different devices.
In order to monitor the health of the business transaction, you need to understand what part of the transaction takes place where, and what impact that component’s performance has on the transaction. This goes far beyond knowing if a piece of hardware is functioning properly; it includes following the flow of the business transaction across multiple tiers, understanding how long it spends in area of the application, and whether its journey meets the application’s performance baseline based on historical patterns.
You can’t get this level of insight from network packet inspection. Network tools don’t support the full details of the business transaction because they don’t go into the application code; they aren’t “application aware.” Since you can’t manage what you can’t see, it takes a different kind of tool to monitor today’s distributed application. One such tool is AppDynamics, a next-generation APM solution that allows you to follow the flow of a business transaction from start to finish across your physical, virtual and cloud infrastructure.
AppDynamics provides a live visualization of the transaction flow, allowing you to see the time distribution for the transaction across each tier. Using green/yellow/red indicators, the tool helps you quickly identify performance problems and bottlenecks. Click on a red indicator and drill down to get deep diagnostics of the root cause of the problem. The root cause could be an operations problem — such as a hardware failure — or an application problem — such as poorly written code. AppDynamics bridges the gap between the developers and IT operations, allowing both to see the mysteries of why a business transaction is having a problem.
If you think an APM tool is just what you need to get the insight you’ve never had before, here are some best practices around application performance management in today’s complex environments — an area being called APM 2.0.
Get the big picture: APM 2.0 tools need to be built for distributed applications. An APM 2.0 solution should provide a visual map (like a Google traffic map) of the distributed application to illuminate the application topology for IT Operations. For example, a technique called “application mapping” dynamically discovers all application tiers and back-end services, even when agile development introduces new code. (This is a difference from yesterday’s applications, which were served by APM 1.0 products. Today, applications get updated and introduced more than on an annual development cycle, sometimes as often as weekly.)
Measure what matters: An APM 2.0 tool supporting today’s needs should be business transaction centric. The tool 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 ensure service quality. The best practice of 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.
See what’s troubling you: Another best practice is to deploy a tool that has 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. Deep on-demand diagnostics should enable rapid root cause analysis, and should not cause more than around 2 percent overhead.
Establish policies: Policies make the world go around, and as a best practice these tools should allow for policies, too. For example, a policy might be that a checkout transaction should take no more than two seconds to complete, which is system-learned baseline for this transaction. To avoid false alarms, an APM 2.0 solution should accurately distinguish between consistent patterns of poor performance versus one-time anomalies. It also should assess business transaction health by learning each business transaction’s historical performance pattern and comparing it to current performance.
Tie to the cloud: An APM 2.0 solution should be able to both monitor cloud-deployed applications and leverage elastic computing to create capacity on demand. A best practice is to deploy cloud orchestration to enable your company to intelligently scale up and scale down capacity as needed. Business applications and IT environments just keep getting more complex.
A good APM 2.0 tool will help both the IT operations and the applications development teams work together to align to real business needs.