This is a guest post for Computer Weekly Open Source Insider written by Bruno Andrade in his roles as CEO at Shipa.io — a company known for its technology that provides a developer-centric portal to manage and operate Kubernetes applications.
As we know, Kubernetes is a powerful and reliable platform that has conquered the mainstream to become a ubiquitous option for enterprise software deployment.
But argues Andrade, as enterprises find out sooner or later, Kubernetes is tremendously complex to operate and maintain. This status, as a challenging-to-manage yet de facto path forward, prompts him to ask the big question: will Kubernetes remain a key point of focus for enterprise software delivery teams? Or can (and will) it fade into a commodity service that demands negligible attention?
Andrade writes as follows…
In discussions with enterprise development and operations teams around these questions and the impact of Kubernetes from their various perspectives, here’s how I think this will play out.
First, let’s consider the developer perspective.
Developers: complexity isn’t simple
The enterprise developers I’ve spoken with fall into two camps.
On one side are the fierce proponents of Kubernetes, who point to the advantages of leveraging the reliable, generic platform for software deployment. In the second camp are those well familiar with the limitations imposed by complexity, which for Kubernetes’ benefits must be considered a defining feature. These are enterprise developers with experience of facing production issues, who keenly believe that simplicity is essential to make solutions workable. This opinion is especially popular among developers that have caused production issues themselves due to challenging complexities.
From the perspective of this latter group of developers, Kubernetes is rife with risk, as its complexity absorbs resources and attention that could otherwise serve support development innovation and success. I think it’s a fairly indisputable fact that Kubernetes requires a sizable budget and a dedicated platform team to really run and self-manage effectively – otherwise enterprises will exhaust their time, money, and stakeholder good will before achieving worthwhile results.
On the Ops side, enterprise teams there offer the most grounded perspectives (in my opinion), due to the fact that they’re the ones fixing issues in the middle of the night as a result of other teams kicking problems on down the road.
Operations is rarely the source of such issues, but it’s always where the buck stops in dealing with them. This is largely because other teams have little incentive to ensure workability on their ends, since most organisational structures naturally pass problems down to the operations team.
Many Ops personnel like how Kubernetes separates workloads from infrastructure, since it brings clarity to the root causes of issues and enables more accurate and effective push back. As a generic platform, Kubernetes standardises methods for packaging, running and monitoring workloads, reducing pains across these processes. However, Kubernetes complexity introduces its own set of pain points, including a lack of visibility that hides security risks and makes maintenance and troubleshooting that much more difficult.
As several enterprise Ops professionals I spoke with were quick to point out, when a cluster or application exhibits abnormal behavior, Kubernetes often only makes issues harder to understand.
Kubernetes integration & infrastructure visibility
Enterprises with dedicated platform teams focused on customising and operating Kubernetes have every chance of managing it well and reaping its benefits. Managed services, like GKE or EKS, can alleviate some but not all of that operational burden. (And it’s worth noting the release last month of GKE Autopilot.) However, building up Kubernetes capabilities within an organisation doesn’t add specific value beyond the orchestration Kubernetes provides. Fundamentally, it’s overhead that demands to be externalised.
The promise of the cloud is to externalise the challenges of operating reliable generic infrastructure. Kubernetes fits squarely into that category. Infrastructure is fast becoming invisible to teams delivering software. Already we’ve seen the cost and complexity of racking and stacking datacentre equipment fade into cloud abstraction.
For these reasons, I predict that Kubernetes will similarly disappear into a transparent commodity for most enterprise software delivery teams.
Kubernetes offers such a generic platform that there’s little justification for it to remain an in-house concern. Just as most organisations lack the scale to rationalise running their own datacentres, Kubernetes will be rightly judged as too difficult, time-consuming, and costly for most enterprises to engage in themselves. Not when commoditised managed services will be able to deliver the full value of Kubernetes so much more easily… which is our future in-waiting.