Cloud applications are deployed, for the most part, in private cloud instances first, and then as demand increases,...
public cloud instances may be pressed into service. Challenges arise from monitoring cloud application performance using this medley of resources, some in-house, some from an external vendor and those, only as needed. Here are ten insights into cloud application performance management which will illustrate the challenges and solutions.
- Resource vs. application performance monitoring: Cloud application performance is often confused with monitoring resources like CPU, disk and memory utilization. Application performance deals only with the end-to-end latencies and performance the user sees at various times, and possibly from various distances for remote locations. Monitoring and management of the end user experience needs to be the focus of cloud application performance management. What are the end-to-end response times the user sees when using the application?
- Private and public instances: Computing resources could be sourced as private cloud instances that are within the control of the organization but when demand exceeds supply, public cloud instances could be pressed into service. Monitoring resources breaks down because while you know which private resources you are using, you have no visibility into which specific physical computing resources of the public cloud provider you are using. The physical resources used by the public instances could be dynamically reshuffled by the public cloud provider.
- Topology discovery: Topology discovery of cloud instances and tracking them as they change may be needed for CAPM, especially when private clouds are used. Since the private part of the cloud is under the control of the organization, you could take more extensive corrective actions as needed, at least for the private cloud instances.
- First generation CAPM tools and problems: The first generation of CAPM tools was tied to programming languages and Web server software from specific companies. This posed a number of problems in accurately tracking performance of the application when executed on a cloud infrastructure. Predicting the resources used at the public cloud instances was the problem. The monitoring agents were separate from the application, and when execution moved from using all of the private cloud instances into using public cloud instances, your performance monitoring could be incomplete. The lessons learned from these first generation CAPM tools paved the way for a new generation of tools that were better.
- Second generation CAPM tools and advantages: The second generation of CAPM toolsimplemented the concept of shipping copies of the agents along with the application when additional cloud instances were pressed into service, private or public. This resolved the monitoring problems experienced in the first generation CAPM tools. Now you can monitor both public and private cloud instances with uniformity.
- Cloud application performance components: Cloud application performance starts with response times and latencies that a typical user sees end-to-end. This could also be simulated from virtual users from many parts of the world for true cloud application performance measurement. At the cloud instance level, you need to separate the performance components into network, user interface, application and database response times for a deeper analysis of root causes for performance improvements.
- Agents and applications: When monitoring agents are accompanying applications to instances, whether they are public or private instances, they are able to measure and report on the various components of cloud application performance such as user interface, database, and application response times. Now you are able to compare performance in a uniform and reliable way since private and public instances have copies of the same agent.
- Internet as part of the infrastructure: Cloud computing, by using the public Internet as part of the communication mechanism, introduces unknown and unpredictable performance characteristics into the overall measurement. Only by measuring performance over a large number of instances and averaging them can someone get a reliable performance measure. This is because when using public Internet in your infrastructure, your network path could change dynamically, is unpredictable and cannot be reproduced for analysis.
- Hosted SaaS CAPM advantages: Hosted CAPM has the same advantages as any other hosted service; no additional hardware or software costs; ease of scaling them up to new applications quickly, and scaling them down when they are not needed; and paying only for services used. Many second generation CAPM tools are hosted and fit this model.
- Root cause analysis challenges: Application performance monitoring leads to root cause analysis and fixing issues whether they are related to user interfaces, network, databases or application code. Root cause analysis in CAPM is made tougher by the dynamic nature of the infrastructure used. This is where the strategy of sending a copy of the monitoring agent along with the application to the various instances comes in handy. You can still isolate performance bottlenecks to individual cloud instances and drill down to root causes within them. Corrective actions may be a bit tricky if they are public cloud instances. You can fix private cloud instances because they are internal to your organization but public cloud instances pose a problem. You may know root causes for performance problems with public instances, but you may not be able to fix anything.
Cloud application performance management (CAPM) deals with the end user experience. Monitoring and analyzing cloud application performance is complicated by the dynamic nature of the infrastructure used, especially the relative ease of monitoring private cloud instances when compared to public ones. CAPM tools, especially the second generation tools that attach a copy of a monitoring agent to every private or public instance of the application, resolve a number of these challenges. Understanding all the key aspects of CAPM leads to judicious and appropriate use of these tools to improve performance of cloud-based applications.
About the author: Nari Kannan is currently the Chief Executive Officer of appsparq Inc., a Louisville, Kentucky-based mobile applications consulting company. Nari has over 20 years of experience in information technology and started out as a senior software engineer at Digital Equipment Corp. He has since served variously as vice president of engineering or CTO of six Silicon Valley startup companies, working in the areas of business process improvement, IT consulting, automotive claims processing, human resources and logistics applications. He can be reached at firstname.lastname@example.org.