Recently, I joined an in-depth discussion about the state of Kubernetes in the Enterprise, courtesy of Cloud Native Now, bringing in the expertise from practitioners in the space. As Kubernetes gains in adoption and more workloads are running in production, we discussed what we have seen so far and what’s coming next. This post summarizes some of the insights about Kubernetes in the Enterprise from Mike Vizard, Chief Content Officer at Techstrong Group, Maz Tamadon, Director of Product and Solution Marketing at Kasten by Veeam, Frank J. Ohlhorst, Editor at Large, Mostafa Radwan, Principal at Road Clouds, Alex Nauda, CTO at Nobl9, and me, co-chair of the CNCF Cartografos Working Group and VP at Fairwinds.
The State of Kubernetes Maturity
Kubernetes maturity varies. Some organizations are super sophisticated Kubernetes users. Adobe, Wayfair, and Boeing, for example, are doing cool things. These orgs are creating and sharing open source projects, as Intuit did with Argo, which is awesome for the cloud native community. But a lot of organizations are just starting out with one or two containerized applications using Kubernetes. Many are not advancing fast enough, and cloud native maturity is all over the place. We discussed some of the most frequent questions we see in the Kubernetes community and how to address them.
1. Is Provisioning Kubernetes Easy?
Some orgs have a vision and a strategy of where to go with this, and teams are willing to fail a couple of times at first and follow the crawl, walk, and run approach. Usually, those teams end up doing well over time because they understand that adopting Kubernetes is a journey. Many of them follow the cloud native maturity model. That offers a great starting point and the pathway for enterprises to follow. Those who start with a cluster here and a cluster there often find themselves in a situation where it is necessary to make substantial changes to become successful deploying Kubernetes at scale.
2. Is a Higher Level of Abstraction Needed to Manage Kubernetes?
Everybody has a different framework for using Kubernetes. One of the biggest reasons Kubernetes is a challenge is because of its inherent complexity. There is a lot of knowledge needed to work in a Kubernetes environment because there are so many ways to do it. A platform that standardizes how you manage, deploy, and upgrade will make it a lot easier. The Cloud Native Computing Foundation (CNCF) says that 91% of the enterprises use Kubernetes in production, but there are no statistics on what percentage are using it successfully or are happy with it.
A lot depends on how teams want to use Kubernetes technology and at what level. For organizations that already have significant software expertise and a software team in place, it’s possible to manage Kubernetes and maintain it in-house. If you don't have that, you may want a managed Kubernetes service. So much depends on the expertise you have and how much control you have across the entire value chain.
3. How Are Teams Getting Started with Kubernetes?
At the very beginning, it’s best to keep it simple and small. You can take advantage of both add-ons and extended features of Kubernetes and follow the crawl, walk, and run principle. Originally, many expected to have a handful of large clusters that everybody shared. Instead, many teams started with a small cluster and built application-level clusters. Now organizations are talking about managing fleets of Kubernetes clusters. It's important to have a good measure on how well it's working for you so you can iterate on it.
4. Are Enterprises Building New Applications or Migrating Old Apps to Kubernetes?
It really depends, because some organizations are born in the cloud and are cloud native all the way. Others have more traditional applications and are trying to move to Kubernetes. There’s a lot of decision making for traditional apps and services, which is where platform engineering teams can really play a huge role. The core platform engineering team can create a paved road for development teams — so that when migrating applications, platform teams offer a Kubernetes platform, or internal development platform (IDP), that has guardrails in place to make it easy for developers to use Kubernetes safely.
5. Are Developers Intimidated by Kubernetes?
Kubernetes can be complicated, leading many to ask whether developers need to know anything about Kubernetes and what needs to be in place for them to deploy applications successfully. IDPs or having a center of experts to reach out with questions can help devs do this and really improve the developer experience (DevEx). Many developers know how to containerize an app and deploy it, but devs shouldn't need to dig into tons of YAML files and the nitty gritty details of deployments and infrastructure to deploy apps and services successfully.
6. Do Platform Teams and DevOps Work Together?
Platform engineering is critical to providing a great DevEx, but application leaders also rely on a DevOps practice. DevOps helps developers to adopt a code it, build it, run it approach, which relies on the platform team that makes it easy for devs to operate within defined guidelines. A robust platform can provide tools that deliver:
-
Observability
-
Management
-
Security
-
Cost Management
-
FinOps tools
-
And more...
Platform teams want it to be easy to manage Kubernetes and measure success. The right tools can enable platform teams and DevOps to experiment and try new observability techniques to measure success. Is the organization meeting the service level agreements (SLA) defined for clients or users? Are the teams meeting the service level objectives (SLOs) identified? As Kubernetes gains in adoption, it’s important to understand whether these teams are achieving good metrics and adhering to security policies, all while managing costs and ensuring reliability.
Kubernetes Adoption Is Growing
Kubernetes is still an emerging technology, even as adoption is growing in the enterprise. Many organizations are putting more workloads into production. As adoption grows, organizations committed to implementing Kubernetes and other cloud-native technologies must investigate and implement cloud native solutions that provide guardrails to help developers deploy apps and services quickly while still meeting reliability requirements, maintaining security, and managing cloud spend.
Watch the full discussion on demand on Cloud Native Now: Kubernetes in the Enterprise.