It's easy to get caught up in the novelty of running containers and miss out on the real reason behind containers — to make application delivery faster, better, and more effective. While everyone is convinced about the benefits of containers, to really know if you're making progress, you need to measure container performance using KPIs (key performance indicators).
A KPI is a measurable, tangible goal that a team or system can strive to achieve. KPIs are a long-standing tradition for gauging and improving the performance of any process or system. They can be used effectively to drive a container monitoring strategy and correlate the use of containers back to real business objectives.
But what KPIs should you be tracking for your containerized applications? Let's discuss.
To start, we need to agree on what the goal of the DevOps approach really is. To break it down to its core, DevOps is all about shipping high quality software faster. Considering that goal, container performance KPIs should shed light on how a DevOps team is faring in terms of important parameters like speed, quality, availability, and efficiency. Let's look at the specific KPIs to track for each of these broad categories.
1. Deployments per day/week
The ultimate test of speed is in the frequency of deployments. Depending on the stage of evolution your organization is in with regards to DevOps, you may have multiple releases per day or multiple months between each release.
If you already release daily, you should aim for more frequent releases per day. If you deploy every couple of weeks, look to bring that down to once a week.
Note that this KPI would be different for web apps and mobile apps. Typically, web apps are easy to release more frequently as they don't have gatekeepers between you and your app. Mobile apps, on the other hand, have to pass through the gates of the app stores on iOS and Android, and the huge variation in devices and OS versions has to be factored in.
That said, from wherever you are at today, releasing more frequently is the goal, and containers are your best bet to achieve this KPI.
2. Creation of new environments
Containers make it easy to spin up a new development or testing environment much faster than VMs. As developers and QA become more confident to create and destroy environments, they are free to build apps in a distributed manner. As they divide complex features and develop or test them in parts, it brings speed in how frequently the app can be deployed.
A key contributing factor to this KPI is the size of container images. With container images, the lighter the better. Lighter container images result in smaller containers, faster startup times, faster transfer across teams, and greater speed across the pipeline.
3. Percentage of automated tests
Thanks to the concept of shift left, QA is now an active partner from the start of development. Because of this collaboration from the start, QA is in a better spot to do more automated testing than manual testing.
Containers bring predictability and consistency as code and artifacts are passed from Dev to QA. The same containers used to build the app are used in test environments. This enables QA to write and plan for automated tests on the code being written. Automated testing is proven to enable wider testing coverage, catch bugs earlier, improve speed of tests, and make them repeatable. Containers enable these very same objectives.
Read 6 Container Performance KPIs You Should be Tracking to Ensure DevOps Success - Part 2, outlining 3 more essential KPIs you should be tracking to ensure DevOps success.