2021-01-12

Empowering development teams to make the most of Kubernetes’ potential

Kubernetes is democratizing and commoditizing infrastructure for software developers, serving as the core for modern, cloud-native applications.

Its standard APIs and the standardized container image format it uses ensure that Kubernetes is Kubernetes, regardless of the underlying infrastructure or cloud platform.

Unfortunately, many see running Kubernetes as a technical challenge that they need to overcome. And as we’ve talked about before (https://www.spectrocloud.com/blog/kubernetes-needs-infrastructure-flexibility/), running Kubernetes yourself may sometimes make sense, but usually it doesn’t.

Managed Services are the way to go

Managed service offerings are widespread with many cloud providers and PaaS-like platforms dipping their toes in, creating a win for customers of every size and cloud-native maturity and adoption level.

These are great, because they take away the heavy lifting of designing, implementing and operating a Kubernetes environment. If done correctly, Kubernetes clusters become almost ephemeral and single-use. Instead of upgrading or changing configuration, deploy a new cluster. This reduces operational burden, configuration drift and technical debt, all of which help keep development teams agile and nimble, and keep Kubernetes out of the way of changing business requirements quickly and swiftly.

etrplus 2019 q2 w10 smooth sailing mobile

Sounds simple, right? The reality is that teams are often stuck on some technical component, spending time on keeping the lights on or fixing issues, even if they’re using a managed Kubernetes service.

It’s this way, because a production-grade container platform is so much more than just Kubernetes, and it’s often those other solutions stacked on top of Kubernetes for things like networking, storage or security, that cause the head-aches.

Most Managed Services still require DIY

And so, one way or the other, teams are still trapped in the busy cycle of DIY. It’s like when you ask your co-worker how they are and they reply with ‘busy!’.

And we see with many engineering teams that this reply isn’t unusual at all, often caused by a DIY part of the container platform. It’s almost as if it’s normal to have some part of the infrastructure chronically broken, and we have this compulsion to be the hero and keep fixing it, trapped by the break-fix cycle of fragile infrastructure components.

And with so many different components, it’s no surprise that DIY solutions break easily. From identity providers and single sign-on providers, to distributed tracing sidecars; from monitoring integrations to complex CI/CD pipelines: any container platform is built on dozens of individual products, each requiring multiple integrations into other products. With DIY, it’s on you to make the decisions for products and maintain the integrations, but running a bespoke and custom container platform may well not be your expertise or core-business.

Technical complexity is often at the core of being trapped, taking up an inordinate amount of time, causing regular activities like security patches and version upgrades, and day-to-day support tickets to start piling up, leading to additional technical debt. This vicious circle makes it harder and harder to get out of the DIY hole and makes Ops, and teams dependent on Ops, unhappy.

And worse, we’re not just trapped in this cycle, but it also has a serious downside: we miss out on what the platform could be. Inflexibility because of limitations of what you realistically can do yourself comes at a cost in terms of what outcomes you can achieve, which limits the business value teams can get out of Kubernetes.

Understand that this ‘snowflake effect’ is not a technical or IT-focused issue: it impacts the business directly. That means development teams can’t change and move the way they need to, and business lacks the speed and agility to stay competitive.

Opportunity cost kills business agility

Because in the real world, time kills all deals, and not being able to respond quickly to changes in the market means you’re trailing behind even before you’ve started.

And suboptimal use of technology is a major cause. And in particular, being trapped in the DIY Kubernetes busy trap is a sound way of making sure technical debt prevents your business from responding quickly and adequately to a changing market and business climate.

The opportunity cost can be significant, from crucial deals lost to losing market share, or losing customers due to bad user experience or non-competitive prices. So the question is, how do we get out of this technical ‘busy trap’, and start empowering development teams to make the most of Kubernetes’ potential?

Getting out of the DIY trap

Getting out of the DIY trap is easier said than done, and you need a little more situational awareness to figure out your gameplan.

Ask yourself and your team why you’re trapped. Is the root cause organizational, like a corporate policy, technical, like specific dependencies or compatibility with existing systems, or people-related, like missing skills and experience?

Only by addressing each factor individually and specifically, can you get out of the DIY trap. Take your time analyzing the different contributing factors, and write these down. Create a plan for each and create a realistic timeline.

One thing’s for sure: delegate when it makes sense

But whatever the specific step-by-step is, delegating the DIY parts is a sensible direction to go in. Chances are, running and maintaining infrastructure is not your core business. So stop multitasking, and let the experts run and operate infrastructure. Managed service providers have the specific know-how across many technical domains that make up an enterprise-ready container platform to make the right choices in storage, distributed tracing, identity providers, single sign-on, metrics and service mesh, security and more.

That way, teams don’t have to think about the nitty-gritty of storage, networking, security, operating systems, kernel modules, cluster versions and upgrade workflows, monitoring, logging, load balancing and many, many more details that have a big impact on how well your container platform runs.

Instead, the managed service provider can leverage the economies of scale to attract the best talent and invest in technical capabilities of the platform, which you wouldn’t be capable of doing DIY’ing a container platform for your own use. The provider can invest more time and money in self-service capabilities, better integration of components, better operational procedures and automation, and more.

But what sets the good service providers apart from the great providers is the level of flexibility they pass on to their customers. One-size-fits all managed solutions can be hit-and-miss and aren’t suitable for all situations. It’s great if it is, but nearly impossible to be a happy customer in the long term as technical debt and the number of clunky workarounds to close the gap between service offering and consumption builds up.

And especially for container platform technology that is a core part of your company it needs to adapt to the organization, not vice-versa. In Kubernetes’ case, that means having the choice in security, storage, service mesh, monitoring and many more components, and having the flexibility to make different decisions for each of these for different environments (like dev/test) and business units or even specific teams. With this innate ability to breathe with, instead of against, the organization, while providing the benefits of a managed solutions technical debt does not build up and teams can tailor Kubernetes clusters completely to their needs, creating new clusters and discarding old ones.

The Bigger Picture

Because if we look at the bigger picture, we see that an enterprise-grade container platform is crucial for offering digital products and services to your customers and developing modern, cloud-native software.

In that sense, the opportunity cost of not making the most of the container platform and Kubernetes could affect your bottom line, your competitiveness and what customers think of you.

The success of adoption of a container platform completely depends on your development teams, and whether they are happy to work with the platform. Now, ‘happy’ means many things, ranging from the ability to tailor cluster configurations to specific needs, reduction of operational work, platform resilience, ease of creating new clusters and changing existing ones on-demand, self-service capabilities so they can work without filing tickets or going through change advisory boards (CABs), etc.

The key theme for these teams is ‘less is more’. By getting out of the day-to-day of running a bespoke and unsustainable version of Kubernetes, teams can focus on the outcomes Kubernetes enables. By maximizing Kubernetes’ potential, they maximize the outcomes.

That does mean the responsibility of a container platform still exists. The question is, are you equipped to handle the complexities of creating and operating such a platform with its many components and integrations?

To make the most of a container platform, the wiser decision is to adopt one that is enterprise-ready, managed and completely removes the need for keeping a platform operations team on staff. Spectro Cloud hits the mark on all three key points, taking a fresh approach on the ability to customize and tailor cluster configurations, so that developers can create on-demand clusters that fit their needs for every new project or application. This approach to creating and tailoring cluster configurations is unique, and immensely valuable to empower self-service of development teams, so they can make the most of your container platform.