Measuring an app's performance entails much more than calculating its uptime percentage; you must also quantify the user experience and business impact.
Nothing about modern performance management is as simple as a single number, no matter how many nines are involved.
To get a clear, complete picture of how well your apps, databases and other systems are performing you need to determine whether they are optimizing the user experience, and ultimately whether they're contributing to your organization's bottom line.
There are many ways to measure the "performance" of a system. A service level agreement is pretty meaningless if it doesn't specify performance levels based on more than a single uptime percentage. A network can be "up" when users are experiencing dog-slow speeds, for example.
What you really want to know is whether the app, database, or other system is contributing to your bottom line, directly or indirectly. For that, you need to know how it's performing for users and for your company's business units.
These days any single app is likely to have components on both sides of the firewall and to be accessed from mobile devices and via browsers as often as from a networked PC. How do you come up with bottom-line metrics when there's no easy way to anticipate the normal and peak loads of such a distributed system?
The widening scope of app performance management is represented in Gartner's Application Performance Management model. Source: "APM Conceptual Framework" by Larry Dragich
You have to be as fast and as flexible as your users are. One way to do that is by bringing in the business side along with DevOps to create what is being called "BizDevOps."
In any organization, expanding the stakeholders in a project likely increases its complexity, cost and development time.
To prevent creating a sort of “Frankenproject,” you can dip your toe in the BizDevOps pool by monitoring a single app from an organization-wide perspective.
Here are the lessons that can be learned from a foray into measuring an app's performance from a user and business-point of view.
Make sure the monitoring agent is tied to the app
It's nearly impossible to anticipate how a distributed application will balance its load at normal times, let alone peak periods. You typically need to monitor the app by emulating the user's experience.
That's why you may need to make sure the agent you use to measure and report on system performance crosses between the public and private components of a hybrid cloud as nimbly as the app itself does. If you're not monitoring all parts of the distributed app, the agent will report false metrics.
Distributed app-performance management entails active and passive monitoring, both agent and agentless, using synthetic data and real data, respectively. Source: "Active and Passive Monitoring" by Larry Dragich
Dig deeper into performance by separating components
When measuring app performance at the cloud instance level, you can isolate the response times of the network, user interface, application, database, and other individual components.
In addition to making it easier to troubleshoot outages, this approach helps establish performance baselines you could import to subsequent projects.
Perhaps the most enigmatic of the performance variables you may have to deal with is the public Internet itself. To prevent having metrics skewed by a single anomaly affecting only one or a few instances, you can try to include as many instances as possible in performance calculations.
Based on the size and complexity of your app, averaging the performance of multiple instances may or may not be practical -- or even possible.
Drill deeper to allow root cause analysis
One main value of including monitoring agents in your IT configuration is quickly identifying the root causes of any performance glitches.
The downside of root cause analysis is that you're not always able to correct the problems you trace to the public cloud. That's where a cloud-based app-monitoring service such as Happy Apps helps you fill in the blanks.
All the elements of a distributed app-monitoring solution come together in the Happy Apps service. Happy Apps is a robust app-management solution that supports SSH and agent-based connectivity to all your apps on public, private, and hybrid clouds.
The service provides dependency maps for determining the impact your IT systems will have on other apps.
All checks performed on your apps are collected in easy-to-read reports that can be analyzed to identify repeating patterns and performance glitches over time. If you're looking for ways to save time, trouble, and money when managing your apps, visit the Happy Apps site for pricing information and to sign up for a free trial.
— This article was written by the team at Happy Apps in collaboration with Load Impact