Jumbo2010 - Fotolia
Historically, application performance management (APM) software has been complex and expensive and often used only for high-value applications by large organizations that had sufficient in-house expertise. Over time, however, due in large part to the availability of SaaS-based delivery options, APM solutions have become easier to deploy and less expensive to operate. Now, some are even moving to the cloud.
According to Mary Johnston Turner, research vice president at IDC, whose focus has been mostly on APM in the SaaS model, there has been a tremendous growth in capabilities. Turner says IDC includes the three main functions under the APM umbrella:
- Real end-user experience monitoring
- Synthetic application monitoring
- Business transaction monitoring
"The leading APM vendors will offer customers all of these functions using a consistent interface and analytics engine," she said.
However, she notes, those considering these solutions need to consider scalability, support for the applications environments they want to monitor (because not all vendors support all languages or mobile platforms) and general ease of use and time to value from out-of-the-box reports and dashboards. Additionally, she noted, support for mobile applications is becoming a major priority as is support for DevOps and continuous delivery environments.
Customers should consider the level of detail they need from their monitoring investments -- some SaaS services provide only high-level insight and rely on "visual correlation" -- but many provide sufficient data for developers to use or insights for specific apps.
Different APM vendors (both on-premises and SaaS) will have different partnerships, agents and plug-ins geared for monitoring different types of cloud services. It may be useful to talk to your cloud service provider about application monitoring partners or resources beyond what is provided in the core service.
According to Forrester analyst John Rakowski, any APM solution should be able to track application transaction flow "from the end user as they are initiating the transaction all the way through to the server, storage and data."
Equally important, in his view, is to have end-user experience monitoring. For that you need active (sometimes termed "synthetic") monitoring. This contrasts with passive monitoring, which examines actual traffic to take measurements, so problems can only be discovered after they have occurred.
Another critical feature, from the application point of view, is the need to be able to do a code "deep dive," said Rakowski. "You need to be able to figure out if the problem is in the code or somewhere else and the APM has to understand code, including newer developments such as Node.js," he added. Similarly, a view into the infrastructure to understand the basics of service performance, such as memory and CPU utilization and what's happening at the network layer, is also important to understanding performance issues, he added.
Then, there is the challenge of monitoring applications in the public cloud. Rakowski explained that with so many organizations moving so much investment to the cloud -- using SaaS-based applications to replace on-premises functions -- "organizations are starting to realize that these solutions are at the core of their enterprise and need to be monitored."
However, he noted, "That gets quite complicated." For a cloud-based application running in an IaaS environment, for example, monitoring can be conducted with APM without regard to whether it is cloud-based or an on-premises version. On the other hand, true SaaS applications, such as Salesforce, are more challenging because "you can't just stick a monitoring agent on Salesforce servers," said Rakowski.
Turner agrees, noting that cloud service providers often provide only limited visibility in terms of monitoring information about their SaaS or PaaS solution. "If an organization has deployed an application onto an Amazon or similar IaaS cloud, they can certainly deploy monitoring agents into the code but will probably get only limited insight into the status of the infrastructure," she said. "I'd recommend that anyone evaluating public cloud services be clear about how much application monitoring information they will get from the service provider's API and what, if anything, they can get in addition from deploying their own tools," she said. If having insight into the performance of cloud-based applications is important, the best bet may be to trace transactions in terms of end-user experience.
In addition to monitoring user experience, Rakowski notes that some companies -- both cloud hosts and third parties -- are starting to offer monitoring of SaaS-based apps, providing APM functionality without APM per se. As examples, he cites Exoprise CloudReady Monitor, which monitors Microsoft's Office 365.
Ultimately, though, what you plan to do with APM is also relevant to what and how you deploy, according to Jonah Kowall, research director at Gartner. Specifically, he notes, you can focus either on optimizing the operation of the applications you are monitoring as they currently exist or you can focus on "fixing" them so that they inherently perform better. APM is the starting point for either approach.
Achieving actionable insights depends on both the sophistication of the APM solution and the deployment of additional tools, he notes. For example, functions that used to belong to tools such as front-end optimization might be needed to implement real change.
Therefore, Kowall warns, APM won't produce miracles. "You may be able to spot the bottleneck at the moment but even if you repair that bottleneck, another one will often be revealed. So it will be an ongoing process," he adds.