It’s been almost 20 years since Google introduced the Borg system as an internal, small-scale project for cluster management, and it’s been almost nine years since it introduced Kubernetes as an open source version of that same platform. That’s an eternity in tech, and yet many enterprises and development shops still spend inordinate amounts of time and resources seeking to unlock Kubernetes’ mysteries. It’s true that Kubernetes has a well-earned reputation for complexity, but I would argue that the only thing more complex than running on Kubernetes is figuring out how to run containerized apps consistently across different environments without it (or something like it). And that’s really the critical point.
From The Broader Business Perspective, Kubernetes Is Just An Implementation Detail
Despite all the hand wringing about how complex it is to operate and develop for, Kubernetes is fading into an implementation detail. And for enterprises looking to innovate, that’s a very good thing. The commodification of core cloud services combined with agile development and DevOps practices enabled enterprises to meet customer needs that hadn’t even been articulated yet. And now that the marketplace has had a taste of cloud-scale applications that can be iterated on as quickly as new requirements emerge, it’s become an expectation.
For the last few years, Kubernetes has hummed as the engine beneath the hood of the cloud-native applications that have differentiated some of the most successful enterprises. As a result, many developers and operators invested heavily in understanding the K8s object model, writing manifests, and figuring out how to expose services within and outside of their clusters. These complexities began to inhibit the very innovation that the K8s abstraction was promised to enable. Isn’t the point of all this to abstract away the complexities of dealing with unique infrastructure considerations so that developers can focus on building apps? Cloud services providers and third-party vendors have answered this challenge with managed container platforms powered by Kubernetes. These platforms greatly simplify the process of building and deploying containerized applications, but they are but one critical piece of a larger, and more important, conversation.
Platform Innovation Is The Key Enabler To Developer Innovation
As K8s fades into an implementation detail, understanding its ins and outs will no longer be the most critical competency for the cloud-native enterprise. While it’s still highly beneficial to have experts on board that understand it, it’s far more important to have enterprise leadership focused on treating platforms under their purview as a product. That means leveraging product management and DevOps principles to ensure low-friction integrations, runtime consistency, extensibility, automation, and developer self-service. And K8s, along with the vast ecosystem of vendors and community members that support it, is still at the core of what makes this work. After all, if Kubernetes is the consistent foundation for your platform, then for most of your workloads, your engineers don’t have to worry about customizing pipelines for every target environment — and you can rest easy knowing that every cloud provider supports deploying to a cluster. But enterprise leaders must remember that Kubernetes is one critical piece of a larger platform-as-a-product puzzle.
One Final Note On Innovation And Complexity
As application development continues to trend toward composable architectures, and as platform- engineering emerges as the critical enabler for encouraging development innovation and productivity, product teams must scrutinize where and how they accept complexity into their stacks. In a strategic sense, the answer is “only where you actually need it to deliver unique business value.” Often, only a relatively small piece of a new application represents something truly new. The rest is composed of open source and commercially available services. Platforms help developers bring those existing capabilities into their applications with less friction so that they can focus their expertise on what makes their app unique. And most enterprises can only modernize application development practices as quickly as the platforms that their developers depend on. If you are interested in hearing more about enabling developer innovation with platform-centric approaches, join us at this year’s Technology & Innovation North America Forum, where I’ll be talking about how to best leverage Kubernetes for application innovation.