Resources to help overcome Kubernetes complexity
Developers welcomed Kubernetes when it was released in June 2014 because it addressed the issue of managing and scaling the containers that were growing exponentially as organizations realized their potential. However, there was one big knock against Kubernetes: complexity.
Today, after almost a decade of evolution and experience, Kubernetes has become the standard for running container-based apps across clouds. But its complexity remains an issue.
To be sure, Kubernetes and the environment that supports it have come a long way. Still, few would deny that Kube can be intimidating, not only for newcomers, but also for those who have been using the platform for some time.
Is it because Kubernetes is inherently complex? Yes. In fact, many developers encounter a great deal of friction both before and after they get started with Kubernetes—friction that arises from getting access to the technology, and friction when trying to understand and apply the technology.
In addition, when Kubernetes first came out, organizations were thinking about cloud in the singular. Now, multicloud and hybrid cloud—and managed cloud services that leverage those environments—are common. This has in many ways reset Kubernetes' role.
Security problems are rife
The stakes for getting Kube right are high, in terms of both productivity and security. Kubernetes helps developer teams deploy applications faster than ever, but with that speed come errors. Some 94% of respondents to the State of Kubernetes Security report said they had experienced a security incident in their Kubernetes and container environments in the last year.
"Human error is the most often cited cause of data breaches and hacks," according to the report, which was sponsored by Red Hat. (Note: The survey was conducted by StackRox before its acquisition by Red Hat in early 2021.)
"Kubernetes and containers, while powerful, increase the risk substantially. … Add on technical debt and organizational hurdles, and it is a challenge even for experienced Kubernetes professionals to get everything right all the time."
Resources to help you balance complexity, security, and productivity
There are many resources that can help developers make the most effective use of Kubernetes (and maybe even find joy along the way). However, even sifting through these resources can be challenging. These are worth your time and effort:
- A good place to start is at the beginning. The Kubernetes project documentation page includes resources for getting to know Kube basics, as well as tutorials for learning how to deploy applications and set up clusters in Kubernetes.
- Another great resource is the Cloud Native Computing Foundation, which maintains the Kubernetes project. CNCF provides several webinars and case studies that can help developers learn by doing and by example.
One of the biggest factors adding to Kubernetes complexity is that it relies on the ecosystem of projects rising up around it to reach its full potential. To be sure, dozens of projects have sprung up around Kubernetes. Many of these projects are good—great, even.
But there's the rub. It can be difficult to determine which projects to focus on and then get to know the projects well enough to effectively apply them.
One resource for learning not just which projects to focus on, but also how to use them is Kube by Example, a site backed by Red Hat. It's designed to help developers enrich their understanding of Kubernetes by practicing skills as they are explained in a series of tutorials. For example, one of the site's "learning paths" explains how to develop with Quarkus, a framework for building Kubernetes-native Java applications.
You may be noticing a learn-by-doing theme here. That's because there’s no better way to get better at Kubernetes. At the risk of tooting Red Hat’s horn again, another great resource is the Developer Sandbox. The sandbox is oriented toward OpenShift, Red Hat's implementation of Kubernetes, but it also takes developers through the creation of an application using plain Kubernetes.
From there, the free sandbox lets developers run their own code in containers in a private environment pre-configured with a set of tools.
Finally, one of the biggest drivers of Kubernetes' success is the project's community. Developers can learn more about Kubernetes (and raise their own and their organization’s status along the way) by becoming active participants in and contributors to that community.
Don't let the complexity stop you
Kubernetes is complex, to be sure, but it’s clearly worth it, given the legions of companies that have implemented the container orchestration platform. That's not to say that developers need to suffer in silence.
Rather, developers and organizations can take a proactive stance toward reducing complexity by building up knowledge and experience with the platform in a focused and purposeful way.