Named by Gartner as one of the top 10 technology trends impacting IT infrastructure and operations, containers play a crucial role in application-driven innovation. The proof is in the numbers: Organizations using Docker containers report a 13x increase in the rate at which applications are released, and companies including Airbnb, Dropbox and GE have seen development lead times drop by as much as 75 percent when using microservices.
To remain competitive, organizations need to understand not only how to use these new DevOps tools to develop apps faster, but also how to more effectively glean actionable insights into their performance.
Containers and microservices offer numerous benefits for enterprise IT organizations, but they also have many implications when it comes to resource management and monitoring capabilities. By understanding and documenting what these implications could be prior to implementation, technology leaders can ensure the adoption of containers and microservices results in successful outcomes for both IT and the business.
The way we use these technologies has changed the models and paradigms for which traditional monitoring was built. As we consider running technical operations in one of these environments and managing containers, we need to shift our mindset. With the increase in the kinds of infrastructure used in a technical environment, and with containers and microservices promoting even more heterogeneity, the older ways of monitoring just won’t cut it. As a result, organizations can develop huge operational blind spots in their test, dev and demo environments.
This got me thinking: What needs to happen to infrastructure and app monitoring tools so that people can monitor and manage containerized applications? We can answer that question with four must-haves for any enterprise getting started with container and application performance monitoring:
Must Have #1: Find Your Business Lens
Look at what your customers are looking at, not just your infrastructure. Time and again, with a variety of development teams, I’ve seen tunnel-vision looking at technical metrics, and therefore misprioritizing compared to what would have the best customer impact. While you may wish to capture technical data on your containers, it’s more important to capture how the code within the container is used to support the customer journey. When you shift that mentality to a business transaction model, you’ll quickly learn what data is important for your business.
By thinking about customer-facing performance, you’re now framing all of your development issues in the context of what matters to the user. By using this customer-centric context, development teams can make sure that everything that matters is performing well. Meaningful KPIs will focus around customer-facing performance such as transactions per second, response time and the like.
Must Have #2: New Tools Need to Keep the Short Life Span and High Density of Containers in Mind
Containers allow an organization to treat the individual servers providing a service as disposable units, to be shut down or spun up on a whim when traffic or behavior dictates. Docker containers often have a lifespan of minutes—compared to VMs, which have an average lifespan of 12 days—and teams typically run multiple containers simultaneously on each host. Factor in the fact that containers live in a bit of a monitoring “no man’s land” between the application and the hardware layers and it’s clear a new approach to monitoring is needed. Because we’ve introduced more abstractions and separation of the application and the infrastructure with containers, we need to better understand the behavior of all of these interdependent yet disconnected pieces.
Must Have #3: Monitor and Gain Visibility Into Your Entire Application Infrastructure Stack
Containers, by definition, are plentiful, portable and disposable, and they are only in service of the application. Monitoring tools that can help simplify the complexities of containerized applications will start with the application and then intelligently correlate down through the infrastructure. These tools help people “connect the dots” between various silos of your infrastructure, and help fix problems when they do occur.
Ideally, this system would understand the relationships between all of the objects across a virtual environment’s topology, recognize the difference between inconsequential anomalies and actual performance problems, and instantly show you the root cause and recommended actions for remediation. This way, you can understand what needs your attention, and how to narrow a problem to the relevant components.
Must Have #4: Leverage All the Data
Most monitoring tools are not enough for the complexities of containerized applications. The performance of the underlying resources is irrelevant without understanding how they impact the application, and if that, in turn, impacts the users of the application.
This means that you can’t just collect logs, events and metrics and hope you can figure out what’s going on. Your monitoring tools must help you tie it all together, often in the context of what the users experience. Understanding the correlation of application performance and system performance enables better utilization of the myriad resources at your disposal and makes it easier to plan strategically. Leveraging that together will help you have the best app performance possible and prioritize what types of issues you should fix first.
Containers and microservices are here to stay, and as the race to a more agile cloud environment continues, enterprise users need to understand not only how to develop technology solutions faster, but also how to monitor everything that is happening across their technology stack. And with an understanding of all aspects of their application development infrastructure, enterprises are better prepared to seize opportunities that will fuel their growth while protecting their end user relationships.