As enterprises adopt modern software development methods to support cloud-native applications, some of the functions associated with developing traditional monolithic applications no longer apply. Agile anti-patterns such as Big Design Up Front, for example, fall by the wayside in favor of iterative, feedback-driven development over time. Other functions, however, become even more critical and, when combined with modern software technologies, more complex. Application performance monitoring, or APM, is one of them.
APM takes on added significance because, among other reasons, many cloud-native applications are customer-facing and revenue-generating. These apps enable customers to research products, make purchases, interact with other customers, among a host of other capabilities, that collectively make up what we now call the customer experience. As a result, monitoring customer-facing application performance - and quickly identifying and fixing performance problems when they do occur - is critical.
“It’s a reflection of the digital transformation that’s happening across all industries right now,” said Mike Villiger, Senior Technical Partner Manager at Dynatrace, an APM solutions provider and Pivotal partner. “The experience that we have with websites, mobile applications, omnichannel and all these types of things are more directly contributing to the bottom line at these organizations now and, in certain instances, it's lowered the barrier of entry to a lot of these industries so they are ripe for disruption.”
This is a very different scenario than we faced 20 or even 10 years ago when most enterprise applications supported internal processes and were used by internal employees. Back then, poor application performance might mean leaving members of the sales or accounting teams frustrated. But today, when customer-facing applications suffer performance degradation, enterprises feel it where it hurts - the wallet.
Consider that 40% of online consumers report they will abandon websites, including abandoning online shopping carts, that take more than three seconds to load, according to a recent study by Kissmetrics. Translation? “A one second delay in page response can result in a 7% reduction in conversions,” according to the study. “If an ecommerce site is making $100,000 in revenue per day, a one second page delay could potentially cause you $2.5 million in lost sales every year.”
But poor performing customer-facing applications don’t just cause enterprises to lose sales in the immediate term. They also have ripple effects felt long afterwards in the forms of decreased customer loyalty and negative word of mouth. The same study found that just over half of online consumers, 52%, say that website and application performance impacts their customer loyalty. Nearly as many, 44%, say they are likely to tell a friend about a bad online customer experience caused by poor site performance.
Clearly, making use of APM tools to make sure customer-facing applications are performing as they should is a must in cloud-native environments. Unfortunately, APM is also more complex with more demanding requirements in cloud-native environments too.
Performance Management Data Overload
A key architectural tenant of cloud-native applications is the use of microservices. The idea is to develop a number of discrete services that each do one thing well and can be developed, modified and terminated independent of one another. This is in contrast to the more traditional approach of developing monolithic applications, each of which are made up of a single, large code base that is difficult to scale and adapt.
One benefit of microservices is that teams of developers can rapidly build and ship new capabilities in response to changing customer demands and feedback. But this makes APM more challenging because the customer experience is now supported by a number of microservices - sometimes hundreds or thousands of microservices - that each impact performance. These microservices, while independent of one another, never the less collectively impact the customer experience.
“Microservices introduces a bunch of challenges when it comes to application performance monitoring. The biggest is, as you decompose those applications, then the interconnected nature of those applications means that the actual digital experience that you deliver is more than just a single KPI [key performance indicator] from a single element,” said Allen Duet, Director of Product Management at Pivotal. “If you want to know what type of customer experience you’re delivering, you really have to know how to group together information from multiple different places.”
Someone trying to make a purchase on an ecommerce site, for example, could actually be interacting with dozens of different microservices. “And just looking at the performance of each individual microservice won’t give you, many times, an accurate understanding of that overall experience,” continued Duet. “All the lights could be green, but you need to understand how the different microservices and services behind those microservices impact one another and how that translates to performance and the overall customer experience.”
Adding to the challenge is that operations pros aren’t the only people in the enterprise interested in application performance anymore. DevOps means that developers share responsibility for application performance once in production, so they need access to performance data too. And since many cloud-native applications touch customers directly, marketing teams are often interested in APM data to better understand how campaigns are performing.
"If you look at who’s responsible for the code and who’s accountable for various aspects of running a digital business, that set of people includes at least developers, ops teams, marketing, and customer support,” said Abner Germanow, Senior Director of Strategic and Partner Marketing at New Relic, another APM software provider. "It includes everyone who’s interested in the performance of the business.”
The pace of development also puts more pressure on APM tools to keep up. Getting rapid feedback on how applications are being used and performing is a prerequisite for DevOps. Otherwise, developers might be able to build and deploy code quickly, but how do they know what features and improvements they should be working on in the first place?
Finally, there is the data challenge of doing APM in a cloud-native world. Namely, that the volume and velocity of telemetry data generated by microservices applications that are seamlessly scaling out over abstracted infrastructure is overwhelming.
Analytics, Collaboration and Velocity
The good news for enterprises adopting cloud-native platforms and microservices architectures is that APM software providers are quickly adapting to these new realities. This includes independent software vendors such as Dynatrace and New Relic, both of whom partner with Pivotal to seamlessly integrate their software with Pivotal Cloud Foundry. Pivotal itself offers native APM tooling, such as Loggregator, as part of Pivotal Cloud Foundry. Customers determine which APM tools or combinations of tools to use based on the particular requirements of their cloud-native applications and the strengths of the respective APM offerings.
To overcome the data deluge problem, APM software providers are increasingly turning to analytics. It’s simply unrealistic to expect human users to make sense of dozens of streams of application performance data, each representing distinct microservices, and how they impact the customer experience fast enough to support the speed requirements of modern software development. Rather, the complexity of the data challenge requires the use of machine learning and other advanced analytics approaches to quickly makes sense of application performance data and surface performance problems to users when they occur.
"In order for our customers to deliver a better experience to their customers, they might need to focus a little less on some of the actual problem solving and they need a … performance management platform that has artificial intelligence under the covers to actually provide root cause for performance degradation and outage situations," said Dynatrace’s Villiger. "You don’t have to go sifting through logs, you don’t have to go through any kind of triage process of your own in order to get that information. It actually percolates right up, with causation not just correlation."
From a user perspective, different people in the enterprise require different views of application performance data depending on their role and the metrics most important to them. This is pushing APM vendors to focus more attention on front-end tooling that users interact with to understand application performance.
“We spend a fair amount of time on that user experience,” said Germanow from New Relic. “We can build interfaces that are very comfortable for, say, an ops person who wants to see the big picture view and then drill down into what’s wrong to a developer who’s interested in how the code that they’re responsible for is performing and only looking at that small piece of it. And everybody else in between.” Pivotal similarly focuses significant attention on user interface, ensuring both developers and operators can easily visualize and understand application performance metrics, Duet said.
The net result of these developments is that users throughout the enterprise increasingly have faster, more intuitive access to important application performance data than ever before. And there’s an added benefit too. Namely, extending visibility into application performance data and metrics to more and varied users encourages collaboration between groups that otherwise don’t interact much.
An operations team may notice conversions associated with a particular promotion that is part of a larger marketing campaign slowing, even though the application itself supporting the campaign is performing well. That type of granular information, which might escape notice by marketing managers, can be shared with the marketing team so adjustments can be made to the promotion.
“That [type of insight] causes those teams to work together more frequently,” said Germanow. “The number of times that we hear of ops teams advising marketing on strategy is fairly rare, but now we’re starting to see more of it as people collaborate … Something can be performing super-fast but not converting, and that’s a problem.”
Finally, and perhaps most importantly, APM helps developers make smart decisions about what to work on next. Cloud-native platforms, such as Pivotal Cloud Foundry, and associated tools and process enable developers to quickly develop and push new code live into production. But deciding what to build next is just as important at doing so quickly.
“When you think about the pressure to get better at change, the pressure to iterate, then all of a sudden the follow-on question is, ‘Well, if you get good at change, are you also good at making the decision of what that next change will look like?” said Germanow. “Is it build a new feature or is it fix something that already exists? When you’re making those decisions in a data-driven manner, that can help enormously.”
To learn more about the role of APM in cloud-native environments, check out these additional resources:
- Podcast: APM and Optimizing the Customer Experience
- Podcast: Application Performance Means Business in the Digital Age
- Webinar: Journey to Cloud-Native: Continuous Delivery with Artificial Intelligence
And don’t miss the upcoming Pivotal Cloud-Native Roadshow, co-hosted by Google Cloud. You’ll here from cloud-native experts, such as Pivotal’s Casey West and Google’s Colleen Briant, about how they develop, deliver and monitor modern software and applications. Click here for more details and to register for the Pivotal Cloud-Native Roadshow in a city near you.