Kubernetes training and abstraction technologies, if used correctly, can help organizations reduce the cost of managing the container orchestrator for developers.
Kubernetes gives everyone in the production pipeline a common way to orchestrate and scale services -- but as part of the developer's ever-expanding role within DevOps, it also creates challenges and frustrations. Most notably, developers often struggle with navigating the complexities of Kubernetes management and orchestration. The juggling act between coding and containers has a steep learning curve that adds to the burgeoning software developer workload.
"Developers are under pressure to move outside their comfort zone and extend coding further down into the infrastructure as part of their role under a DevOps model," said Charlotte Dunlap, research director at GlobalData. "Efforts to spin up Kubernetes clusters require configurations between networking, security and provisioning of computing."
Delving into Kubernetes training issues
Kubernetes replaces having to build an orchestration system from scratch for enterprises with complex needs, but the cost of this flexibility is complexity.
"Kubernetes is an 'advanced mode' tool, meaning if you're building complex distributed systems, you have to think about problems like storage anyway," said Christine Spang, CTO and co-founder of communications-platform-as-a-service company Nylas, which uses Google Kubernetes Engine in the development of its productivity tools. "The modern way to look at these problems is holistically, not to have a sharp divide between 'dev problems' and 'ops problems.'"
Despite the promise of portability given how widely used Kubernetes is, in its raw form, it can be especially vexing for developers who are switching from one vendor to another, said Lee Sustar, analyst at Forrester Research.
"There is a great deal of frustration ... due to a lack of consistent abstraction layers for developers on a Kubernetes platform from one Kubernetes distro to another," Sustar said.
Most technologists believe that Kubernetes has a steeper learning curve than other technologies they use, and Kubernetes training is the top tactic to solve the problem, according to a July 2022 study of 300 technologists by Kubernetes management vendor Spectro Cloud. The Linux Foundation and some vendors offer free Kubernetes training courses for developers.
Without the proper training and tools, the steep Kubernetes learning curve can lead to big problems, such as deploying to the wrong Kubernetes cluster or even deleting the production environment, said Michael Schmid, co-founder and CTO at Amazee and co-creator of Kubernetes abstraction open source project Lagoon.
Michael SchmidCo-founder and CTO, Amazee
Making a simple proof of concept focused on the problem can help developers understand the big picture and the problem's theoretical solutions, said Andrew Bogun, backend technical lead at product outsourcing company Alty. "With experience comes clarity, and frustration passes away," he said.
But Kubernetes training might not be enough to thwart the issue, due to the platform's opaque innards.
"Kubernetes -- as awesome as it is -- always feels to me like a bag of Legos without an instruction manual or anything. It's just 'build the house,'" Schmid said.
Kubernetes abstractions to the rescue
A simpler, easier alternative to extensive Kubernetes training is to adopt Kubernetes management technology. Many enterprises have begun to adopt DevOps platforms based on Kubernetes that include developer self-service tools. These include SUSE Rancher, VMware Tanzu Application Platform and Mirantis Lens, to name a few.
"But there are many other approaches, including those from public cloud providers that try to abstract away the complexity of Kubernetes," Sustar said. These include Amazon's Elastic Kubernetes Service, Microsoft Azure Kubernetes Service and Google Kubernetes Engine, as well as Red Hat's OpenShift public cloud offerings.
Low-code/no-code products can help ease the Kubernetes burden. Tools such as Joget DX can use Kubernetes Operators to install their developer interfaces onto Red Hat's Kubernetes management platform, OpenShift. OpenShift also offers its own Dev Spaces IDE for building and deploying containers, so software developers can focus on developing applications without worrying about the underlying infrastructure.
"Docker Compose is always a good alternative to make ops for developers less tricky," said Sergio Gutiérrez Villalba, CTO of Internxt, a cloud storage startup. "Using Minikube, which emulates Kubernetes locally, and [Mirantis] Lens is another good alternative that can make the situation softer too."
Mirantis Lens is an IDE that looks to bridge the gap between Docker Desktop and the Kubernetes environment; it will soon expand its Kubernetes abstraction features with technology acquired from Amazee this month. VMware Tanzu Application Platform, which helps developers manage multiple Kubernetes clusters, provides a consistent integration layer for any Kubernetes stack.
However, Sustar cautioned that some approaches -- especially those from public cloud providers -- try to abstract away the complexity of Kubernetes, but in doing so introduce vendor-specific dependencies.
"That is off-putting to organizations that seek to use as much open source as possible to reduce vendor lock-in," he said.