APM Buyer's Guide 2019

Page 1

APM a guide for buyers


Stay on top of the IT industry

Subscribe to ITOps Times Weekly News Digest to get the latest news, news analysis and commentary delivered to your inbox. • Reports on the technologies affecting IT Operators — APM, Data Center Optimization, Multi-Cloud, ITSM and Storage • Insights into the practices and innovations reshaping IT Ops such as AIOps Automation, Containers, DevOps, Edge Computing and more • The latest news from the IT providers, industry consortia, open source projects and research institutions

Subscribe today to keep up with everything happening in the IT Ops industry. www.ITOpsTimes.com


APM

a guide for buyers

Contents

A guide to APM tools page 14

APM needs to change to keep up with continuous development practices page 4

Fewer bugs, faster releases: How APM improves the SDLC page 16

The future of APM is open page 8

How does your company help organizations do APM? page 12

Why APM has a Big Data problem page 18

July 2019

3


APM needs to change to keep up with continuous development practices By Jenna Sargent

in an industry where every company is competing to be the best, if your application is giving users problems, they might not hesitate to ditch you and go to your competitors who do have a well-performing app. Companies that cannot provide their customers and users with satisfying experiences will lose out on business. This is why aPM (application Performance Management) is more important than ever. aPM provides organizations with insights into performance that can them help expose bottlenecks and dependencies within application code, explained amena siddiqi, product marketing director of steelCentral aPM at riverbed. This allows 4 July 2019

companies to “find and fix issues before users become aware of them and well before the business is impacted.” according to siddiqi, aPM enables organizations to achieve many things, such as shift left, perform code audits, understand feature usage and usability, map business dependencies and impact, and accelerate the application life cycle. Pete abrams, chief operating officer of instana, explained that aPM is becoming increasingly important as more companies adopt Ci/Cd practices. “as devops team shift to a continuous deployment model there is a significant increase in the amount of dynamism in production.

More software is updated or added more frequently on more infrastructure. it’s great for solving business problems but difficult on monitoring tools that were designed for a much slower rate of change.” However, the traditional method of aPM is no longer sufficient. Traditionally, when developers and operations teams were more siloed, developers would write code and send it off to operations teams, after which point the developer might not see that code, explained Tal Weiss, CTo of overops. in the past, aPM tools were traditionally only used by operations teams, and they often were used as a means for operations teams to point blame at the de-


velopers when things went wrong, Weiss said. according to Weiss, as a result of the devops movement, development and operations have become less siloed, and aPM tools need to change to reflect that. Now, aPM tools will need to “go from serving one audience to serving multiple audiences with different needs and different levels of understanding and depths of understanding of that company’s codebase and anything that goes into it,” said Weiss. This poses a challenge in terms of aPM tool adoption that organizations need to figure out how to overcome in order to effectively use

aPM, Weiss explained. according to Weiss, power has shifted in a dramatic way to developers in the past two years. developers now have much more control in choosing the infrastructure that code runs in and the tooling used. aPM vendors will have to respond to this shift by keeping developers in mind when developing their tooling. He believes that aPM solutions are currently lagging behind with that. Weiss added that aPM tools that are still primarily focused on operations teams struggle in gaining widespread adoption in enterprises where the developers have certain expectations they want met.

every team involved with application delivery has use cases requiring the data and information that would be provided by an aPM tools, instana’s abrams explained. for example, an engineering team can use aPM to plan and monitor the capacity of their platform and troubleshoot issues, while a development team might want to utilize aPM to understand upstream and downstream calls, errors including context and stack traces, and see timings on calls to databases or other subsystems, the company explained. another challenge organizations are facing with aPM is that there is so much diversity in terms of the kinds of tools, languages, and frameworks that teams use to build applications, said daniel spoonhower, CTo and co-founder of Lightstep. “one challenge for aPM is how a single tool can provide visibility across all of those different languages and frameworks,” he said. “The point of an aPM tool is to understand the bigger picture of the whole application, and especially a whole application as it’s used and viewed by the users and the customers of that organization. and so it’s really important to have a standard set of both methods and tools for understanding what’s happening across an organization. as the organization chooses and becomes more fragmented in the way its application is built, that’ll create some challenges in aPM itself.” spoonhower believes that organizations can overcome this challenge with top-down decision making. “i think if an organization can make those determinations it sort of has to come from the top down. if they can do that, it’ll go a long way for the organization as a whole moving more quickly.” according to siddiqi, aPM is not continued on page 6 >

July 2019

5


APM needs to change < continued from page 5

well-suited to all types of applications, for example components where you have no control over their back-end components, such as saas applications or office 365. another use case not supported by aPM would be a Citrix app running on a virtual desktop where the code cannot be instrumented. “for these reasons, a majority of business applications are simply not monitored at all,” said siddiqi. another shortcoming of aPM is that all monitoring systems could be showing that everything is fine, yet help desk tickets are still being logged, siddiqi explained. “you need a way to see what users actually see when they use these applications, with visibility into the device itself—the mobile phone, PC, laptop or any other device that your internal users are using to serve your customers,” said siddiqi. another issue is that many aPM vendors are limited in their data collection. They typically are forced to resort to sampling or snapshotting based on errors. “This puts aPM at a disadvantage when it comes to troubleshooting. oftentimes, the data simply isn’t there to reconstruct and diagnose an issue,” said siddiqi. going forward, aPM vendors will need to start incorporating ai and machine learning into aPM by incorporating aiops into company strategies, siddiqi said. another trend that is being seen is the commoditization of distributed tracing, siddiqi explained. “This is often positioned as a war between traditional aPM and openTracing but it’s really not an ‘either/or’ but rather a ‘better together.’” openTracing is a CNCf project that includes a 6 July 2019

set of vendor-neutral aPis and instrumentation that is used for distributed tracing. “This artificial divide can be bridged by enhancing application tracing with the context exposed by openTracing to produce a richer distributed trace,” said siddiqi. siddiqi also explained that while open-source options may look attractive, organizations need to choose sustainable aPM strategies that are managed, curated, supported, and universal.

Changes in architecture require changes in APM

in order to survive, Lightstep’s spoonhower believes that aPM providers will need to rethink tooling. a lot of the tools that are out there today are geared toward more monolithic architectures, but as those architectures get broken up into more and more pieces, the aPM tools will need to change to accommodate that switch. “Changes around architectures are definitely forcing a lot of organizations to think differently about their tools and about their aPM solution,” said spoonhower. specifically, breaking up applications into microservices or serverless tends to increase the volume of data coming out of those application. aPM tools will need to be able to scale and accommodate that increase in data volume in order to maintain the same level of visibility. “but at the same time, there’s a lot of cost to that and that cost is scaling in a way that’s not necessarily proportional to their business,” said spoonhower. “so that’s creating a lot of pressure on those teams

and organizations to really think about the way that they’re using that data and the way that they’re gathering and analyzing that data.”

Automation will become even more important for keeping up with continuous development

instana’s abrams believes that aPM will need to change to incorporate more automation. “any manual interaction slows down the development cycle, and that’s true of monitoring as well,” abrams said. “aPM has to adjust to the new normal, distributed applications, a polyglot of languages, continuous deployment, all built around extremely dynamic applications. even simple configuration can get in the way, but aPM tools must move to an automatic approach that can deal with the dynamism of the modern environment.” according to abrams, conventional aPM tools need to be extensively configured and optimized to monitor applications effectively. “They require too much manual work to even get started. Take an application map, as an example,” said abrams. “Manual mapping is not only error prone, it is also likely to be obsolete before the first set of data is reported. once you inject faster change associated with Ci/Cd, manual tools actually slow down every single cycle.” Manual aPM struggles to deal with the dynamic environments created by microservices and containers, abrams said. This ultimately leaves “a large hole in aPM strategies everywhere.” n



The future of APM is open By Jenna Sargent of the many programming fads and trends that have come and gone in the past 20 or so years, application performance management is not one of them. it’s here to stay, though perhaps not in its current definition or even its current use. open-source time series database provider influxdata’s senior manager daniela Pontes explained that for as long as organizations have been putting applications in front of users, they’ve wanted to know how those applications are performing. “you always wanted to 8 July 2019

know how long it takes for a certain resource to download or a page to be viewed,” she said. but software development methods have changed significantly in the past few decades. as the application development process has evolved to be more dynamic and agile, applications have been split into smaller and smaller pieces so that certain parts could be updated, upgraded, or modified in a very fast way. This agility, though, has come at a price. breaking these applications

up into small pieces has made them more susceptible to performance degradation. “one little degradation here could create a cascading effect that would impact the application in a very visible and noticeable way. but to find that little point where the situation started is much harder than it used to be when you had one whole application,” said Pontes. Now, aPM has become more essential due to the increased complexity of application environments and their susceptibility to performance degradations, Pontes ex-


plained. for example, events like updating or migrating can cause points of degradation in an environment that is already sliced into pieces. Not only that, but the nature of how aPM needs to operate has changed as well. Ten or 20 years ago, a company might have had two major releases per year, but today, companies could be deploying hundreds of releases every day, explained Mirko Novakovic, Ceo and co-founder of microservices aPM provider instana. “That changes the dynamics of the application. it

means that aPM has to adopt to these changes.” With potentially hundreds of releases being pushed out every day, automation is key. you can no longer do manual configuration when you have such frequent releases, Novakovic explained. another thing that has changed is that aPM tools need to be accessed and used by more people than in the past. Where once there were a few skilled and trained performance engineers using aPM tools to fix problems, now hundreds of operators need to be using that tool throughout their day. according to Novakovic, this is a huge challenge. How can you roll out a tool that hundreds of developers can leverage? Novakovic said he believes the answer is to make a tool that is easy to use, but that is also able to adapt to individual roles. users need to be able to figure out how to use it on their own, but also customize it to solve specific use cases, he explained. another challenge Novakovic pointed out is the scale of environments today. When you have tens of thousands of containers in your environment, multiple challenges arise. one challenge is related to resources. deploying an aPM in each container would utilize way too many resources. and because containers are small, they normally don’t have those resources to spare. “only having one agent per platform and not having a single agent for every type of technology and every container is a trend we’re seeing,” said

Novakovic. another challenge relates to data. When you have thousands of components, you could be looking at tens of thousands, hundreds of thousands, or even billions of metrics and traces. “How do you process them? How do you deal with overhead? How do you make sure that the network is not overutilized by the aPMs? so there are multiple challenges in managing the overhead. and multiple approaches on how to attack this. and i think what’s a challenge for the customers is how to understand the different types of overhead that there are, how they can tweak it, and it’s also about how much time they need to spend to configure it so it’s working in their environment,” said Novakovic. There is currently a trend towards standardization of tracing, Novakovic explained. “so i would say overall that means that the data aPM gathers is more or less becoming commodity.” This means that it’s no longer just about gathering the data. it’s about what you’re actually doing with that data once it’s gathered. Novakovic explained that this is leading to the creation of new categories, like aiops, that can actually produce value from the data that an aPM tool gathers. another trend that sigelman sees at Lightstep is that aPM doesn’t have as much overhead anymore. “it’s no longer acceptable to have any overhead in an application,” he said. continued on page 11 >

July 2019

9


Observe modern apps with conďŹ dence LightStep answers questions and diagnoses anomalies at scale, spanning mobile, monoliths, and microservices

APM reinvented to diagnose anything across all components of today’s software applications. Learn more at lightstep.com


The future of APM is open < continued from page 9

Over the next few years, Novakovic predicted that there will be increased intelligence in APM solutions. “Because of the complexity of the infrastructure and the applications, people will need more assistance by the APM tool to figure out where the problems are and monitor it 24/7,” said Novakovic.

Other types of monitoring tools will become part of APM

Novakovic also predicts that many different types of monitoring tools will merge into the APM category. For example, infrastructure monitoring and logging may merge with APM. Sigelman doesn’t even know if the APM category will retain its name. For example, LightStep has branded its APM products as [x]PM and is targeting it specifically at microservices and serverless. “You have people that are still offering APM and I’m sure they’re still making a lot of revenue off of it. But it’s a totally different product. It would be useless in a microservice environment and probably vice versa. So I think as a category it’s getting pretty confusing. But I’ve also seen that it survives.” Sigelman also believes that any APM not designed to understand applications with hundreds of different moving parts will die off.

What to look for in APM solutions

According to Pontes, there is no set of qualities that organizations should be looking for in APM solutions. “We believe that APM is some-

thing that is very particular, so you need to understand your own needs.” For example, distributed tracing would be an absolute necessity for making sense of things in larger distributed systems, Sigelman said. “If you have a hundred or a thousand microservices, if you can’t understand how they depend on each other on a per transaction basis, there’s no way you’re going to be able to explain performance issues in your system,” he said. Sigelman recommends that end users take a deep look at the problem that they’re trying to solve with APM. “If they’re adopting cloud native and microservices and serverless things like that, the number one problem that they’re going to have is that you can’t understand any one service in isolation and you need to understand the entire thing as a whole. And APM as a category has traditionally been pretty bad at actually delivering on that.”

Novakovic believes that there are several factors an organization should be considering. A few questions to ask are how often they’re releasing software, what level of granularity is needed for metrics, and how much they’re willing to pay for a solution. “So it really depends on your architecture, on what you want to accomplish, and this drives the criteria that will be more important or less important.” Pontes also recommends that organizations look to open-source tools so that they are less restricted. “We believe that opensource is fundamental so that you would not be locked into one solution that later on you find out doesn’t cover all your instrumentation needs because now you have another application or your application now has a better code implementation and you have to reinstrument… So you need to have that flexibility to implement APM in the way that you need it.” n July 2019

11


How does your company help organizations do APM? Daniella Pontes, senior manager of product marketing at InfluxData

That’s a very good question. it is not only related to aPM, but related to any kind of monitoring or solutions that make use of time stamped data to provide value or to support the solution that they are offering to users. so we have many partnerships, for example, in network monitoring that use our time series platform to be the storage engine for them to process that data they are analyzing. for example, flow data or infrastructure data. aPM is the same situation. aPM is time-stamped data associated to application performance. so what we bring to the table is that engine that can ingest at a very high rate and provide real time streaming analytics, which is fundamental for acting in time, which is the ultimate goal of aPM and we provide a language, a query language that allows exactly that to do analytics and processing across measurements, not just one type, but different types. and because we are purpose built, we provide that performance and scalability that is needed to deal with the amount of data cardinality of series that needs to be managed in aPM solutions. so we encourage not only our technology partners, but also the community to use our platform to develop on top of it application performance solutions, because you don’t have to start from the whole open umbrella. as i mentioned at the beginning, the first thing that you need to do is to understand your goals and what you want to achieve. so you can go by implementing use case by use case and bringing this to a platform that can grow with your condition. if you start with this implementation, then you can say ‘okay, now my goal is a little bit broader. i believe that i observe that other fact.’ Then you can start bringing more and more data, different types of data. in aPM you will need to be able to monitor not just numeric, but non numeric kind of data. you need to associate labels with 12 July 2019

measurements that are very metric, so you need a platform that can handle multiple types of data, can handle multiple sources, and can follow the speed that you will need in order to be real time.

Ben Sigelman, CEO and co-founder of LightStep

The reason why people buy Lightstep is that they’re moving to microservices. They’re probably not all the way there yet, but they’ve got dozens of them or more. and they’re having a really difficult time not just understanding when or where things are appearing slow, but why in this giant system that they’re deployed, things are slow. Traditional aPMs are still able to tell them that things are slow. They literally detect that there’s slowness or unreliable systems. They will not be able to tell you where in this giant microservice architecture the problem actually originated. so i think Lightstep does a much better job with that kind of mean time to resolution scenario when you have a microservices environment than any other competitor that we’re aware of. The other thing that i think we’ve always made a priority is to make sure the integration at Lightstep is totally open-source. We don’t even brand it as Lightstep. We created openTracing project and we created openTelemetry project as well. Those are both true, honest-to-goodness open-source efforts where our competitors have all gone on and joined them afterwards. and we have actually done a lot of work that we’ve funded ourselves. and those projects. but our goal is to move that integration problem into the open-source community. i think we’ve shown a lot of leadership in that area. and it’s been a good thing for the end users, for sure, and i think ultimately it’s a good thing for the vendors as well. and then, finally, we’ve done a nice job integrating mobile and web clients into literal product experience as the rest of the monitoring stuff that we offer. it’s typical to buy an aPM and then separately buy some kind of mobile performance monitoring thing. it really should be all one thing. if you’re interested in performance, at the end of the day it’s really about end users and so that performance

continued on page 15 >


#WVQOCVGF #2/ HQT &GX1RU 6WTDQEJCTIG [QWT %+ %& RKRGNKPG

Try it for yourself www.instana.com/itopstimes-free-trial


A guide to APM tools

n AppDynamics: The appdynamics application intelligence Platform provides a real-time, end-to-end view of application performance and its impact on digital customer experience, from end-user devices through the back-end ecosystem—lines of code, infrastructure, user sessions and business transactions. The platform was built to handle the most complex, heterogeneous, distributed application environments; to support rapid identification and resolution of application issues before they impact users; and to deliver real-time insights into the correlation between application and business performance. n Catchpoint Systems: Catchpoint offers innovative, real-time analytics across its synthetic Monitoring and real user Measurement (ruM) tools. both solutions work in tandem to give a clear assessment of performance, with synthetic allowing testing from outside of data centers with expansive global nodes, and ruM allowing a clearer view of enduser experiences.

n Dynatrace provides software intelligence to simplify enterprise cloud complexity and accelerate digital transformation. With ai and complete automation, our all-in-one platform provides answers, not just data, about the performance of applications, the underlying infrastructure and the experience of all users. We help companies mature existing enterprise processes from Ci to Cd to devops, and bridge the gap from devops to hybrid-to-native aiops. n New Relic: New relic’s comprehensive saas-based New relic software analytics Cloud provides a single powerful platform to get answers about application perform-

14 July 2019

FEATURED PROVIDERS

n InfluxData is the creator of influxdb, the open source time series database for modern data-driven application environments. influxdb is purpose-built to handle the massive volumes of time-stamped performance indicator data of various types (metrics, events, tracing data, logs) and from multiple sources produced by applications, sensors, networks, containers and computers. influxdb helps developers and organizations store and analyze real-time data, empowering them to build transformative monitoring, analytics, and applications quicker and to scale. n Instana: instana is a fully automatic application Performance

Monitoring (aPM) solution that makes it easy to visualize and manage the performance of your business applications and services. The only aPM solution built specifically for cloud-native microservice architectures, instana leverages automation and ai to deliver immediate actionable information to devops. for developers, instana’s autoTrace™ technology automatically captures context, mapping all your applications and microservices without continuous additional engineering. .

n LightStep’s mission is to deliver insights that put organizations back in control of their complex software applications. its first product, Lightstep [x]PM, is reinventing application performance management. it provides an accurate, detailed snapshot of the entire software system at any point in time, enabling organizations to identify bottlenecks and resolve incidents rapidly.

ance, customer experience, and business success for Web, mobile and back-end applications. New relic delivers code-level visibility for applications in production that cross six languages—Java, .NeT, ruby, Python, PHP and Node.js—and supporting more than 70 frameworks. New relic insights is embedded in the platform, enabling customers to do detailed, ad hoc queries for real-time analytics across New relic’s aPM, Mobile, browser and synthetics products.

n Oracle: oracle provides a complete end-to-end application performance management solution for custom and oracle applications. oracle enterprise Manager is designed for both cloud and onpremises deployments; it isolates and diagnoses problems fast, and

reduces downtime, providing end-toend visibility through real user monitoring; log monitoring; synthetic transaction monitoring; business transaction management and business metrics.

n OverOps captures code-level insight about application quality in real-time to help devops teams deliver reliable software. operating in any environment, overops employs both static and dynamic code analysis to collect unique data about every error and exception—both caught and uncaught—as well as performance slowdowns. This deep visibility into an application’s functional quality not only helps developers more effectively identify the true root cause of an issue, but also empowers iTops to detect anomalies


How does your company help organizations do APM? < continued from page 12

[solution] needs to understand mobile and web clients as an equal participant as the stuff that’s happening in the backend and in Kubernetes. and Lightstep does that very nicely. so that’s another thing that we see people getting very excited about.

Mirko Novakovic, CEO and co-founder of Instana

as companies embrace Ci/Cd, devops and agile methodologies, traditional monitoring falls further and further behind, unable to keep up with the complexity and scale of dynamic application environments. software-defined businesses require solutions to protect them from outages and bad user experiences — which is exactly what we deliver to our customers across the globe. automated aPM enables software teams to continuously map and monitor their applications. every change to the application and/or application infrastructure stack is another opportunity for problems. The latest technology advances in application building blocks — Kubernetes and containers — creates new observability challenges — and and improve overall reliability.

n Pepperdata: Pepperdata is the

leader in application Performance Management (aPM) solutions and services for big data success. With proven products, operational experience, and deep expertise, Pepperdata provides enterprises with predictable performance, empowered users, managed costs and managed growth for their big data investments, both on-premise and in the cloud. Pepperdata enables enterprises to manage and improve the performance of their big data infrastructures by troubleshooting problems, maximizing cluster utilization, and enforcing policies to support multi-tenancy. n Riverbed recognizes the need to maximize digital performance and is uniquely positioned to provide or-

an absolute necessity to automate the discovery, monitoring and feedback processes. instana’s automated aPM is built for these dynamic environments: l exceptional 1 second metric granularity and a distributed trace for every user request, the best in the industry l Continuous (and automatic) discovery, mapping and monitoring of all hosts and “apps” whether they are bare metal, virtual machines, or containers. l automatic tracing of every user request for twelve languages (including Java) and over 100 microservice platforms. The automated approach, coupled with ai-assisted discovery and troubleshooting, is perfect for handling the massively dynamic applications that result from modern architectures. With instana, you’ll be able to build and deploy better software faster — with confidence; confidence that you will know immediately if a performance regression has been introduced; confidence that your full infrastructure and application stack is monitored; confidence that you’ll be able to quickly resolve any incidents that arise over time. n

ganizations with a digital Performance Platform that delivers superior digital experiences and accelerates performance, allowing our customers to rethink what is possible. riverbed application performance solutions provide superior levels of visibility into cloud-native applications—from end users, to microservices, to containers, to infrastructure —to help you dramatically accelerate the application lifecycle from devops through production.

n SmartBear: alertsite’s global network of more than 340 monitoring nodes helps monitor availability and performance of applications and aPis, and find issues before they hit end consumers. The Web transaction recorder dejaClick helps record complex user transactions and turn them into monitors, without requiring any coding.

n SOASTA: The soasTa plat-

form enables digital business owners to gain continuous performance insights into their real-user experience on mobile and Web devices—in real time and at scale. n SolarWinds: designed to ad-

dress the challenges associated with disparate monitoring solutions, solarWinds appoptics is a seamless application and infrastructure monitoring solution with distributed tracing, and custom metrics that all feed into the same dashboarding, analytics, and alerting pipelines. out-of-thebox support for dozens of frameworks and libraries in Java, .NeT, PHP, scala, ruby, Python, go, and Node.js. over 150 integrations and plugins available for collection, processing and publishing of system data. affordable monitoring, purpose-built for devops. n July 2019

15


Fewer bugs, faster releases:

How APM

By Matt Chotin breaking down a series of interdependent movements into discrete actions is often the first step to improving the performance of everything from professional orchestras to sports teams. and so it is with software. The software development Life Cycle (sdLC) evolved out of an effort in the late 1960s to put formal quality processes in place in a relatively immature industry. although the implementation of sdLC varies from organization to organization, a typical cycle includes six stages: plan, design, develop, test, release, and monitor. decades after it was introduced, sdLC still delivers results, though there has been some confusion as to its role with the recent interest in devops. regardless of terminology, the principles remain the same. yet solely following these principles cannot address the enormous challenge of developing applications that run on multiple platforms and in multiple geographies securely and at scale. To increase sdLC’s effectiveness for today’s enterprise development projects, organizations should consider supporting it with application performance management (aPM). aPM helps developers determine whether changes are helping or hindering performance. unified views of the application, infrastructure, 16 July 2019

and user experience eliminate guesswork while machine-learning algorithms automatically set baselines and correlate transactions within and across software tiers, stacks, and platforms, exposing dependencies and capturing errors and exceptions. Whether you are deploying an update to data centers around the world or rolling out a new containerized service in the cloud, aPM makes developers’ jobs easier. below i’ll explain how aPM can lead to better results in each of the common sdLC stages.

Plan

The authors of “solid Code: optimizing the software development Life Cycle” may have put it best when they advised: “Think first, code later.” in the planning stage, product managers gather requirements and collect input from customers/endusers, salespeople, and other stakeholders. Who is using or will use the software? How will they use it? What is working and what needs to be fixed? equally important, what resources will be needed for implementation and what is the estimated project cost? To answer these questions, developers need an accurate understanding of their current system architecture in order to surface additional requirements or identify necessary refactoring. This

is where a unified aPM solution comes in handy with automatic detection of application servers, databases, and infrastructure and the relationships between them as established by business transactions and visualized through flow maps.

Design

insights gained during planning support better design decisions. during design, a developer may be determining a new architecture, choosing what frameworks or libraries to use, or making algorithmic or data management decisions. aPM helps developers by easily showing what systems and frameworks are in place today and how they’re being used, making it easier to decide if there’s existing code that can be repurposed or if something new needs to be created. developers and product managers can also take advantage of the insights provided by end-user monitoring capabilities to gain an understanding of application usage patterns, user locations, browser capabilities, and any existing performance bottlenecks or failures that should be addressed in new designs.

Develop

Coders code, and for many developers this is the most rewarding life


improves the SDLC cycle stage. during the era when the waterfall approach to development prevailed, developers wrote and debugged their code and then handed it over for integration and broad testing. However, as agile methods have gained popularity, developers have gotten used to receiving feedback early and often. by deploying aPM in developer environments, developers can identify upstream and downstream dependencies based on actual code execution. They can also directly observe the impact their new code has on the larger application and address scalability concerns. as a feature takes shape, developers use aPM to investigate potential issues. Will the new code contribute to network latency? How will it affect memory consumption? How does the new design perform under load? What are the proper host environment specifications? How much CPu and memory will most efficiently serve the application? it’s not uncommon for developers with access to aPM to identify and pre-empt application issues before their code reaches Testing & Qa. in addition, by paying rigorous attention to scale factors, developers will minimize bugs and code changes after an application is deployed in production.

Test

The ongoing shift to Continuous release has increased the use of automated testing in the build pipeline—often at the cost of visibility. The result is that code containing damaging performance regressions can pass functional testing and be pushed into production. This potentially costly scenario is avoided when the test environment is monitored by aPM, allowing performance metrics to be easily compared against established thresholds or prior releases. also, as in the development environment, aPM speeds up rootcause analysis of performance problems.

Release

one of the biggest benefits aPM offers to release engineers is the peace of mind of knowing that an application has been stress-tested and all existing issues have been identified in pre-production environments. Visualizations like flow maps that show what calls an application is making and heat maps that reveal performance anomalies and outliers in a microservices architecture provide additional confidence as you compare against the previous release in canary or blue-green deployments.

Monitor

aPM was first adopted for use in production because of the critical role it plays in reducing the mean time to resolution of performance issues. it continues to do that, but as the agility of developer teams grows, aPM is also increasingly leveraged to kick off the next development cycle, providing insights into end-user behavior and the impact of application performance on business objectives. in this way, aPM grounds developers in the realities of the most recent changes in the application, allowing them to make better design decisions for the next release. While aPM contributes value at every stage of the software development Life Cycle, adopting aPM across development, testing, and production environments brings an additional reward. giving developers and iT operations equal ability to drill down into code-level diagnostics provides the common language that is needed for a true devops culture to take root. devops is all about communication, and effective communication requires a shared perspective. aPM delivers a single source of truth, eliminating finger-pointing and academic disputes over what happened, when, and why. developers and iT operations can focus on the shared goal: the rapid delivery of high-performing, low-maintenance code. n July 2019

17


Why APM has a Big Data problem By Gayle Levin

application performance management (aPM) didn’t used to have a big data problem. Three-tiered application architecture with regular, infrequent updates generated predictable and manageable amounts of data for analysis and dependency mapping. Modern architectures, however, present a big data problem. Their virtual machines, containers, microservices, hybrid clouds, and software-defined networks are constantly changing and can generate petabytes of data each day. sampling no longer works since too many objects, methods, and transactions will have come and gone between sample intervals. it’s essential to collect data on all transactions and user experiences every second but the resulting volume, velocity, and variety of data can overwhelm legacy monitoring tools, requiring a different approach to aPM. No analyst has ever said they wished they had less data to help them diagnose a problem, as long as they have the appropriate tools to deal with it. application performance management data that includes all apps, all users, on any device, is essential for quick and correct diagnosis and resolution. The breadth of infrastructure also means that this data must be collected from public cloud servers, software-as-a-service instances, and private data centers, following users as their processes 18 July 2019

spin up and down. Modern aPM tools should automatically discover and instrument all processes regardless of type and location, delivering stats wherever and whenever the app is running. intelligent agents need to compress and stream the data to large-scale, multi-threaded, and multi-queued database systems in order to handle the transaction flow that typical commercial aPM systems were not designed for.

Velocity: Sooner is better than later

Many revenue-impacting transactions and user experiences now last only a few seconds, making it essential to collect system data in real time with one-second granularity. sampling aPM environment data at one-minute or five-minute intervals simply results in too many unknowns. The elastic and dynamic cloud environment changes so much that many performance issues are intermittent and unpredictable and trying to catch these elusive problems with sampled transaction trace data can be both time-consuming and frustrating. advanced aPM tools use efficient monitoring processes at the operating system level to get second-bysecond environmental statistics and trace all transactions across all backend tiers. unique identifiers can be used to stitch together and trace

transactions from client to server and back, while Java and .NeT agents are able to spin up and down with the applications themselves. This high-resolution, high-frequency performance data is continuously streamed to a scalable analytics console. instead of investigating a problem with averages and guesses or waiting to collect additional data for analysis, you can examine the specific transaction and quickly determine the underlying causes. Typical cloud and microservicesbased apps rely on a broadly distributed infrastructure, encompassing hundreds or thousands of components, innumerable method calls, and rapid state changes. similar transactions can take very different


paths through the infrastructure based on factors like the time of day, the user’s location, or their demographic profile. There are hundreds of interacting attributes that can affect the user experience, from the virtual servers and databases, to the back and forth communications across multiple networks, and the wide range of user devices. Modern aPM tools gather the broadest possible diagnostics data and user metadata to close the gaps in performance visibility, and then apply new technologies and techniques to store and analyze the resulting big data that exceeds the processing capacity of legacy analytics systems. Machine learning can find patterns that indicate potential bottle-

necks and new types of visualizations can illustrate the complex and changing interdependencies between cloud and on-premise applications, microservices, infrastructure, and networks, helping devops quickly determine the critical focus areas.

APM: Scaling to support big data

a high-resolution application performance management system can generate petabytes of data per day, resulting in a very real big data problem. instead of making tradeoffs between data quality and scalability, modern aPM tools need to scale to meet the needs of big data with compressed data streaming,

high-speed database technology, and ai-augmented analytics. These proven big data strategies provide detailed visibility into individual user experiences, powerful analytics to find common issues across multiple applications, and non-aggregated historical data to diagnose intermittent problems and to evaluate the effects of code and infrastructure changes. New technologies and approaches to aPM mean that iT no longer needs to make a trade-off between data quality versus monitoring scalability. Collecting and processing the volume, velocity, and variety of data opens up new opportunities to accelerate devops processes and significantly improve end user experience. n July 2019

19


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.