Kubernetes adoption continues to pick up pace. According to the most recent State of Cloud Native Development Report, “as of Q1 2021, 57 percent of backend developers had used containers in the last 12 months, but only 31 percent of developers used Kubernetes to orchestrate these: 5.6 million developers in total.” It also found that the overall usage of Kubernetes had increased by 4 percent over the course of 2020.
Since 2017, Kubernetes has been the de facto industry standard for container orchestration because of its scalability, portability, self-healing and automation capabilities, and other useful features. However, it’s often and incorrectly sold as a magic bullet to fix software delivery and operations problems. This often leads teams to the (wrong) impression that adopting Kubernetes automatically makes things easier.
Successful implementation however, tends to involve often unforeseen complexities that are highly situationally dependent. Useful adoption depends on the organization, their tech legacy, their team setup, their talent, and other factors. Security is also an important consideration. Features like autoscaling make Kubernetes a powerful tool… but only if you have a good foundation. Many teams fail to account for these complexities and are left with a laundry list of unrealized expectations as a result.
We dove into this aspect of Kubernetes implementation in our 2022 Kubernetes Benchmarking Study. We surveyed over 1,000 top organizations about their Kubernetes setup and focused on three key aspects: the state of Kubernetes, technical approaches, and team setup and culture. From this, we developed a Kubernetes Performance Score (KPS) that allowed us to differentiate high, mid, and low performers.
We also gained more insight into the expectations that teams at opposite ends of the performance spectrum had for their Kubernetes implementation, the extent to which those expectations were not met, and why.
Over 53 percent of respondents said that they underestimated the complexity of Kubernetes. Surprisingly, there was only a small difference – about 3 percent – between responses from high and low performers. Even high performing organizations underestimated the difficulty of rolling out Kubernetes. That begs the question: What do organizations expect from Kubernetes adoption? What expectations aren’t met?
In our survey, we asked this as an open question. We then aggregated the answers into the categories shown in the pie chart.
- 42.3 percent of respondents expected Kubernetes would be much easier to use.
- 10.3 percent said that Kubernetes was harder to maintain than originally expected.
- 12.9 percent said that the cost savings they expected did not materialized.
- 7.5 percent expected Kubernetes to be cloud agnostic, but this was not the case in their setup.
- 16.6 percent provided other answers.
What’s the culprit for these unmet expectations? While it varies by organization, there are a variety of factors all teams should consider when implementing Kubernetes.
1. Get the technical implementation details right the first time.
Kubernetes does not automatically do anything to alter how an application already works. Mature integration with CI/CD systems is a critical factor in effective adoption, as is appropriate documentation of the ways in which your platform-engineered abstractions over the top of Kubernetes might work and how best to interact with them.
Additionally, we found that configuration management is another important differentiator between low and high performers. Low performers are more likely to apply direct changes via Kubectl. In contrast, high performers mainly use Helm. Generally, application architecture for a high performing organization supports the 12-factor model, with configuration defined at the environment level, dev/prod parity, and a declarative approach to infrastructure configuration changes.
2. Prioritize secrets management and security.
Migrating to, and operating applications on Kubernetes introduces new security challenges worth being mindful of. In Redhat’s 2021 State of Kubernetes Security report, 94 percent of respondents experienced at least one security incident in their Kubernetes environment in the last 12 months. High performing teams understand the risk of shared application tenancy, understand that Kubernetes is not a security tool, and plan accordingly.
3. Prioritize your organization’s culture.
A successful Digital Transformation strategy, of which Kubernetes implementation can be a part, coordinates people and processes to maximize the value tools like Kubernetes are designed to provide.
Often, high-performing organizations use Kubernetes as, Kesley Hightower puts it, “a platform for building platforms” (as opposed to using Kubernetes to fly spy planes). They create abstractions to simplify consumption and deployment and enable developer self-service. Though this does not eliminate the need for some amount of Kubernetes expertise, high-performing organizations require only a few Kubernetes professionals to support them.
Ultimately, what all high-performing organizations have in common is an understanding that Kubernetes is not a solution to all problems. It can be a powerful foundation upon which a self-service layer for the whole technical organization can be constructed… if the complexity, architecture, and security implications are successfully and thoroughly accounted for.
Want to learn more about what distinguishes high and low performing Kubernetes setups? Join Humanitec CEO Kaspar von Grunberg as he dives into the key findings of the 2022 Kubernetes Benchmarking Report.