How Kubernetes can reduce cloud complexity

A while ago I declared Kubernetes the winner in the container orchestration wars. Although I love being right, many in the cloud industry have framed Kubernetes as the end-all technology that solves all our problems.

Thus we have the overuse of Kubernetes to solve all security issues, all infrastructure issues, and even be a complete strategy for technology companies looking for the next lily pad to leap onto. It’s all Kubernetes, all the time.

As a practitioner of cloud computing, and someone who leverages Kubernetes on-premises and in the public cloud, I can tell you that much of what’s good about Kubernetes is true. However, I can also tell you that Kubernetes is not being considered to help tackle the core issue facing us in 2020—cloud complexity.

There are two main causes of cloud complexity:

First, the overuse of heterogeneity when selecting cloud platforms. Although multicloud is a good idea, mixing thousands of native APIs by a factor of two or three into a single unified platform makes the job of developers and the job of operations that much more challenging.

Second, deploying a cloud solution without proper planning. Deploying to a multicloud solution with minimized risk requires at least some understanding of where you are now, where you’re going, and how to get there. Most enterprises can’t answer those questions and instead continue to operate in a reactionary state.

There are also two solutions to cloud complexity:

First, abstraction. Using an abstraction layer with a least common denominator approach removes you from the complexity of dealing directly with cloud-native tools and interfaces.

Second, automation. Automating the use of interfaces can make operations that much easier and thus less complex.

Kubernetes tackles the automation issue. The Kubernetes ecosystem, including the recent release of Anthos, is about abstracting the applications and data within containers. The real money is in automating those containers in ways that are highly scalable and reduce complexity at the same time.

What concerns me is that people who must already deal with complexity don’t know about automation or how Kubernetes can solve these problems. They are focused on specific proprietary tools rather than the idea of Kubernetes, which is more of a metaconcept than a set of tools.

If you’re dealing with cloud complexity you need to focus on the value of automation, specifically, emerging enabling technologies such as Kubernetes. Kubernetes is not a cure-all for cloud complexity, but it is a concept that can be decomposed to specific useful tools and approaches.