BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
Application performance management and continuous delivery are not usually terms that you hear used together. But they should be, because developing a strong application performance management tools startegy is essential for achieving and making the most of continuous delivery.
Defining APM and continuous delivery
To explain, let me first define what each of these terms means.
Application performance management (APM) refers to the process of finding and resolving performance and reliability problems in software. Application performance management tools perform functions such as monitoring applications, testing services and polling infrastructure for problems, helping admins understand the nature and cause of problems and, in some cases, using automated response technology to fix problems automatically.
Application performance management tools are usually marketed as solutions for guaranteeing service-level agreements with customers, as well as ways to help measure and optimize the performance of software. This can help organizations avoid over-paying for hosting resources because their software does not run efficiently and therefore requires more resources than it would when performing optimally.
Continuous delivery is a software production process where code is written, tested and deployed on a near-continuous basis. The continuous delivery model allows updates to be implemented faster. It also reduces the potential for problems that could occur during the development life cycle because it helps to keep the different parts of the process, such as coding, testing and deployment, in sync with each other.
Using APM to Improve Continuous Delivery
You may already have various application performance management tools and solutions in place. And you may have a successful continuous delivery pipeline that you use to produce your software. But have you thought about how you can use application performance management tools to make your continuous delivery process even better?
Consider the following ways in which APM helps organizations to do continuous delivery more effectively:
Using application performance management tools, DevOps teams can evaluate the performance of applications earlier in the development cycle, before it is released into production. In other words, they can do “shift-left” APM. By performing APM analysis earlier in the delivery chain, performance problems can be detected early -- at which point they are easier to fix and have not yet disrupted end-users.
When used in production, application performance management tools provide important feedback to DevOps teams. Based on data collected by application performance management tools in production environments, developers can make informed decisions about which new features to integrate.
Because application performance management tools help admins measure and optimize application performance, they make admins’ jobs easier. They leave admins with more time to work on really challenging problems, while application performance management tools handle performance and reporting issues that can be automated.
Application performance management tools help DevOps teams measure, using precise metrics, the effectiveness of changes they make both to software code and to their processes. In a data-driven world, the ability of application performance management tools to provide a precise way to measure the result of changes is key.
Choosing application performance management tools
There are a variety of application performance management tools available, including both open source and commercial options. Many of them have the potential to help improve continuous delivery. When choosing the right application performance management tools to complement your continuous delivery process, it’s important to pick one that can support as many languages and development frameworks as possible.
This matters because you want to be sure that you retain the flexibility to change your toolset whenever you like. Some APM tools support only one or two types of programming languages, and you don’t want your application performance management tools to prevent you from changing to a different language if you wish.
It’s also helpful to find application performance management tools that can work with any type of infrastructure. Increasingly, applications are being deployed as microservices running in containers. Not all application performance management tools are designed to support this type of scenario, which is more complex than traditional deployments because microservices add more layers to monitor and containers abstract code from management tools.
Ideally, you’ll implement application performance management tools that can support traditional types of application environments, as well as new ones like containers.
A comprehensive essential guide to DevOps and cloud-native computing
Is the 12-Factor app just cloud-native development for poor developers?
Looking for a unified theory of all things cloud native, including DevOps, Agile and continuous integration?