Today’s software applications can be unwieldy beasts. No matter whether you’re creating smartphone apps, service-oriented software, or online video games, you’re bound to be bitten by multiple components of your system architecture throughout any application development life cycle. The vast complexity that needs to be taken into account—involving everything from sluggish third-party CDNs to conflicting API connections—now requires developers, testers, and system administrators to work together in a way that’s more seamless and agile than ever before. Just a single weak link in the chain can negatively impact your application’s performance, instantly resulting in a slew of unhappy end-users downstream.
In a business landscape where competition is fierce, the time between development and deployment is ever more compressed, and customer retention matters most, it pays to do everything in your power to ensure that your software delivers a steady baseline of performance, 24/7. This is particularly true of web-based applications, where consistent speed and uptime is expected, although frequently disrupted. And that’s where APM, or application performance management, comes in.
So, What Exactly Is APM
Simply put, application performance management is the art of managing the performance, availability, and user experience of software applications. APM monitors the speed at which transactions are performed both by end-users and by the systems and network infrastructure that support a software application, providing an end-to-end overview of potential bottlenecks and service interruptions. In pragmatic terms, this typically involves the use of a suite of software tools—or a single integrated SaaS or on-premises tool—to view and diagnose an application’s speed, reliability, and other performance metrics in order to maintain an optimal level of service. Load testing, synthetic monitoring and real-user monitoring, and root-cause analysis are a few of the primary tools to be found in a well-rounded approach to APM. Another significant component of APM is web performance monitoring (WPM), or the use of web-monitoring tools to gauge app speed and uptime. In less pragmatic terms, however, APM is ultimately a perspective—an analytical view brought to bear on every aspect of software performance in order to clearly understand, and continuously improve, the end-user experience.
While everyone in the software industry seems to be using the term APM these days, not everyone agrees on what it means. Some popular alternative translations of the APM acronym include application performance monitoring and application performance measurement, and each suggests a slightly different interpretation of what APM is all about. Application performance monitoring emphasizes the technical essence of APM—i.e., using a bevy of automated tools like AlertSite to continuously monitor website, app, or system performance—while application performance measurement shifts the meaning toward the actual data metrics that are produced by such monitoring. (A fourth common use of APM is application portfolio management, which is quite different from the others. This APM is about generating bird’s-eye-view maps and metrics of the different software applications in any company’s portfolio in order to gain a clear view on how they are impacting business goals, and is used mostly in the context of strategic planning and generating IT inventories.)
In this article, we’ll stick with the term application performance management, which best conveys the comprehensive breadth and integrated array of tools, processes, and mindsets that proper system-quality oversight entails. By the end, you’ll ideally have gained a better understanding of what APM is and how you can use it to meet your software development and quality-assurance goals.
Understanding Application Performance Management
These days, application performance management is no longer only for the ops teams and sysadmins of the world. APM is now far more robust, user-friendly, and inviting than it used to be, with its various elements steadily encompassing the entire spectrum of the application life cycle—throughout pre-deployment, production, and post-deployment stages. Indeed, it’s fast becoming equally useful to development, testing, operations, and business teams alike.
Developers, for instance, can use popular APM software suites to collaborate more effectively with operations teams, manage the quality of their work through code-level troubleshooting, and monitor project progress with easily generated reports. Testers can use APM software to increase their testing accuracy, quickly identify performance bottlenecks, and conduct load testing on application components and APIs to ensure consistent performance under stress. Ops personnel can conduct synthetic testing across web, mobile, desktops, and APIs, striving to ensure a quality user experience by detecting performance problems before they ever land downstream. And last but not least, business leaders can use APM solutions to manage web transactions effectively while protecting online revenue from periodic performance hiccups. Taken together, these multiple angles on APM can give developers, testers, ops, and business team members a much clearer picture beforehand of what will happen once an app is finally launched (or perhaps released in a state of continuous deployment), ensuring that fewer reliability issues will catch them off guard. Using the same APM results means that the entire production team can work from the same data, share discoveries with each other, and collaborate more closely to reduce the time-to-market for any dev project.
Of course, it goes without saying that every original software application is built and deployed differently, with different goals in mind, so some projects will benefit from extensive APM more than others. But the ultimate goal of APM is always the same—namely, doing whatever it takes to deliver an optimal user experience. And again, the sheer complexity of modern applications can make that harder than it sounds.
APIs, web servers, cloud-hosting services, databases, mobile carriers, and Internet Explorer, Firefox, Safari, and Chrome—all of these are likely places where performance issues may occur. You can be happily surfing the web, attempting to donate to your favorite charity with a click of the mouse, when suddenly the site starts taking forever to load. Where exactly did the problem occur? Which link, third-party content, or
underlying internal process is to blame? With the right performance monitoring tools, issues like these can be identified and pinpointed anywhere—whether in the mobile device or client browser, or in the web layer, application layer, API layer, network, database, or mainframe backend. An easy-to-use and interactive APM dashboard can reveal specific bottlenecks, as well as what lies beneath. Synthetic-user testing can explore potential glitches across your software architecture, while root-cause analysis can drill down to the specific line of code where a problem gets its start.
And if that isn’t enough, load-testing and real-user monitoring tools can enable you to understand what other users of the website experience, individually and en masse, even from multiple simultaneous locations around the globe. Some APM tools even have the capacity to emulate and monitor a variety of different users’ mobile devices and browsers, revealing how quickly pages render at two key points—when a page’s pixels first reach the human eye and when all of the above-the-fold content is finally displayed. These “visual user experience” stats are potentially the most useful of all. By determining the perceived page load time as users actually experience it, DevOps crews can prioritize optimization efforts from a strictly human perspective, thereby allowing other metrics and bug fixes to take a backseat to the only performance indicator that ultimately matters: the real end-user perception of an app.
How APM Works
We all know from firsthand experience that nothing irks end users more than unexpectedly slow response times. In fact, slowness is arguably a bigger problem than application downtime and unavailability. Research on ecommerce websites shows that slowdowns occur ten times more often than outages, and those cumulative slowdowns add up to twice the impact to an online store’s bottom line. This means that ensuring that your application is up and running is important, but it’s not enough. In addition to basic availability monitoring—such as testing IP protocols and network services with automated software, which can issue real-time alerts as soon as functionality breaks down or dips below established thresholds—a comprehensive approach to APM should take a number of additional factors into consideration, as explained in the previous section, in order to help improve your application’s overall reliability and speed.
According to tech research firm Gartner, a full-featured approach to application performance management should include some variation of at least these five specific steps:
- End-User Experience Monitoring — As a first step, end-user experience monitoring would pick up a problem as it impacts the application's user.
- Runtime Application Architecture Discovery, Modeling, and Display — As a second step, the application's runtime architecture would be generated and/or surveyed to establish the potential scope of the problem.
- User-Defined Transaction Profiling — As a third step, user-defined transactions would be examined as they flow across some subset of the possible paths exhibited by the runtime architecture graph, to ascertain what nodes in that graph are the sources of the problem impacting the end user.
- Component Deep-Dive Monitoring in an Application Context — As a fourth step, deep-dive monitoring of those nodes is carried out in the context of the results of the previous three steps.
- IT Operations Analytics — As a fifth and final step, analytics are brought to bear—on the one hand, to establish root cause in the midst of the vast volumes of data generated in the first four steps, and, on the other hand, to better anticipate and prepare for end-user experience problems that could emerge in the future.
Gartner’s report concludes, “The APM market, then, is the market for all the technologies and services that deliver these five dimensions of functionality.”
And yet, on another level, the fragmentation within most organizations’ approaches to APM means that finding a solution that thoroughly covers all five of Gartner’s steps is not easy. Many companies piece together a few diverse tools—often made by different vendors—in order to cover their performance-monitoring bases, doing their best to make sure that key APM functionality doesn’t slip through the cracks. Their intentions may be noble, and they may even find that all of their needs are being met, at least from a business and IT perspective. But what about Gartner’s primary step—the perspective of the end user, or what has been termed end-user experience monitoring (EUM)? How many organizations are truly prioritizing that?
If one takes a good look at the current APM marketplace, it’s the predominance of big data analytics, not a simple empathy for end-users’ experience, that appears to be what most serious vendors are selling. However, application performance management that doesn’t place human beings front and center is very likely going about things the wrong way, no matter whether your company’s offerings are B2B or B2C or somewhere in between. Gartner lists end-user experience monitoring as its first step in APM and lists IT system analytics last, not because data analysis isn’t foundational to user experience (it is), but rather because data analysis is, in the majority of cases, meaningless apart from its effect on human users. Continually optimizing the end-users’ actual experience of your application’s performance, reliability, speed, and functionality is not merely a minor footnote in the annals of APM—it’s the moral of the story.
The Future: From APM to UXM
In the past, more than a few tech observers criticized the very idea of application performance management because they felt its grand synthetic vision promised more than it could genuinely deliver. But times are changing fast, and in a world where every second of an application slowdown can damage both revenue and customer loyalty, APM is becoming less of an aspirational fantasy and more of a practical necessity. Yes, many companies still require a cobbled-together assortment of tools in order to get the job done. And yes, single vendors offering truly integrated solutions are still rare. But they do exist.
The number of tools that are being seamlessly integrated into single-vendor solutions like SmartBear’s AlertSite, for example, is a clear sign of things to come. AlertSite more than satisfies Gartner’s five-steps recommendation, covering nearly a dozen different toolsets: Web Application Load Testing, API Load Testing, Real User Monitoring, Transaction Tracing for API Monitoring, Root-Cause Analysis, Real Transaction Monitoring, Synthetic Transaction Tracing, API Monitoring, Real Browser Recording, Core Synthetic Monitoring, and, most importantly, providing a comprehensive User Experience Management Platform.
User-experience management, or UXM, is the APM of the future. While crunching big data remains all the rage with some APM vendors, it isn’t hard to see why, as delivery cycles continue to speed up, they’re going to need to shift their attention. Focusing on the most crucial element of your business—i.e., the actual experience of your customers—will almost certainly remain the key to intelligently prioritizing your company’s time and money for the foreseeable future. By seeing exactly where user experience is lagging and then conducting root-cause analysis and testing your applications under load in a targeted way, you can diagnose and resolve very specific problems before anyone has time to complain. After all, why would anyone invest their energy into optimizing a fully array of arcane system metrics that make no discernable difference to an end-user’s experience? If you have the time, sure, attention to detail can only help. But who has the time?
Empirical performance is one thing, but paying attention to perceived performance and functionality is something else. It’s the very definition of UXM. Your software production team’s ability to innovate, optimize, and get UX-centric products to market faster than your competitors will give you a distinct advantage. And adopting a fully integrated, unified APM solution that makes data analytics subservient to user experience may just be the deciding factor that keeps your company at the evolving edge . . . while your data-hugging competitors become relics of the past.
Written by Tom Huston