How do you choose the right Kubernetes platform for today and the future? We've put together a guide on the most important aspects, along with how Weave Kubernetes Platform (WKP) solves them.
Like many, I'm a 'maximizer', I like to consider all of the options. I've been known to create a spreadsheet to score my local pizza options! Many decisions have short-term impacts (like pizza options) and don't deserve such rigour. But for those that have long-term impacts - such as choosing an enterprise Kubernetes platform - it's worth taking a more considered approach.
Using the right Kubernetes platform has long-term impacts and brings significant benefits as every application can use the same operating model. We reduce development friction with containers, and operations complexity with Kubernetes. Choosing the right Kubernetes platform is important as it will improve operability, agility and portability. Conversely, platforms are difficult to change, making the wrong choice is costly and limiting.
1. GitOps operability
The costs and needs of applications take place through their entire life-cycle, which is why we need to consider the costs of management through all phases.
GitOps is a significant step forward. It's the critical piece to providing an effective 'modern operations' system for cloud native applications. GitOps provides a way of thinking, tooling and operating DevOps with Kubernetes. Using GitOps, developers collaborate to build and release their applications quickly - the pay-off is increased business agility and faster time to market. NatWest's Mettle team found that developer productivity improved by 65% - that's increasing the teams’ effort focused on getting features to market by two-thirds! The benefits aren't just restricted to developers - for operators, GitOps enables disaster recovery and safe self-service platforms - the pay-off is increased reliability and efficiency. Using GitOps we have the complete configuration of the platform - again the Mettle team found that they reduced MTTR (Mean Time To Recovery) to just 20 minutes.
The take-away is that thinking through the operations life-cycle should be the first consideration for selecting a Kubernetes platform.
2. Multi-Cloud portability
Applications and infrastructure requirements often change over the course of their operational life-time: today in a data-center, next year in the cloud or across many regions. As the business needs change the operational capabilities have to adapt. That's why portability is so important. One of Kubernetes strengths is that it's a portability layer. Used correctly, it can free us from being locked into infrastructure choices. The benefit is we run applications with greater cost-effectiveness - choosing the best environment for the best performance. In Weave Kubernetes Platform (WKP) we support running in the data-center, in virtualized environments and in the cloud.
My recommendation is to consider portability and the lifetime of your platform; check that the Kubernetes platform you're selecting supports a range of environments.
3. Self-Service agility
An enterprise Kubernetes platform enables self-service for development teams. Releasing them from the friction of requesting resources and giving them the freedom to innovate faster. It also frees operations teams from the 'adminis-trivia' of small changes. The pay-off is more agility and effectiveness. The challenge is doing this in a way that is cost-effective, secure and controlled. In WKP we provide guard rails that prevent users from going beyond boundaries. Individual teams can work within team workspaces that provide them with freedom and isolation, enabling a true multi-tenancy approach.
My recommendation is to consider that the platforms you're selecting will enable agility in the enterprise; check that the right controls and guardrails can be put in place.
4. Supported reliability
An enterprise application platform is complicated and a critical dependency for the business. If there are problems it represents a single point of failure that could ultimately lead to loss of business and reputation.
When considering a support SLA there's three vectors to consider:
- the teams’ skill level,
- their customer experience and
- their availability to you
As Kubernetes is changing rapidly, a support vendor needs to be a specialist, their team needs to have the specialist technical skills to augment yours: one way to evaluate that is their involvement in the Kubernetes community. The second factor is that experience across a range of customers speeds up the resolution of problems: it's very different playing with a technology in the lab from implementing it across a range of customers. The final consideration is whether those skills and experiences will be available to you when there's a problem - do you really want to be trying to get hold of someone on Slack in your hour of need?
WKP comes with true 24/7 support. Critical issue help is just a phone call away. For larger enterprise deployments, we provide Customer Reliability Engineers (CRE) who get to know your environment and provide personal care.
My recommendation is to think through your teams’ capabilities and support needs as you evaluate your options.
5. Cost-effective scalability
As the platform is more widely adopted, the number of clusters and applications being deployed will increase. This is the measure of success - but there's also risk in the increased complexity. Complexity increases as we scale to larger clusters, or more clusters. It ramps up remorsefully as more teams and applications use the platform. This leads to fragmentation across teams and ultimately reduces visibility and security. In our experience, the ultimate impact is very large bills as cost management becomes difficult. In WKP, we've built GitOps Models that extend the declarative concept of Kubernetes so we can manage many clusters and components.
There's little value in moving from 'servers as pets' to 'clusters as pets', that's why thinking through how the platform will handle essential complexity and avoid accidental complexity as it grows is worthwhile.
These are some of the most important considerations, and to round them out we've gathered together the 15 crucial elements when selecting an Enterprise Kubernetes Platform. These come from our experiences implementing platforms of all shapes and sizes, informed from the lessons we've learned. We've compared those elements in Weave Kubernetes Platform, Rancher and Red Hat OpenShift to give contrasting approaches. Every business has slightly different context and constraints, but I hope these give you a strong start as you consider your Kubernetes platform journey.
Download the whitepaper to learn more about our 15 enterprise Kubernetes requirements