The cloud computing world might be a different place if Google hadn’t open-sourced Kubernetes and donated the project to the Cloud Native Computing Foundation two years ago today. Instead, Kubernetes looks like it will be a future cornerstone for software development teams that are rapidly modernizing their software development practices.
Kubernetes is open-source container-orchestration software that lets companies take advantage of the infrastructure management lessons Google learned over years of running the most popular destination on the internet. It’s a powerful way to manage your computing resources, and despite a deserved reputation for frustrating the hell out of users during the setup process, it’s quickly becoming the go-to method for managing containers and could be the path away from cloud vendor lock-in.
— Google Cloud (@googlecloud) July 21, 2017
This is a very new market, especially when you consider that a lot of mainstream IT organizations haven’t gotten around to around to deploying containers and microservices at the heart of their development strategies. But once companies start to understand how containers can make their apps more reliable and how quickly updates can be applied, they tend to start using more and more of them, at which point you need something to manage all that activity. That’s where Kubernetes comes in.
Now comes the hard part. Kubernetes has drawn the attention of all the major cloud companies, and they’re jockeying for position to take advantage of the technology. The degree to which they embrace Kubernetes versus trying to compete with it could have huge impacts on the project and the dozens of startups that have sprung up to help people use Kubernetes.
Moreover, the major contributors to Kubernetes need to decide when to take their foot off the gas pedal and bring a sense of maturity to the project, which will encourage more companies to build their development strategies around it. And whoever nails the user interface experience to Kubernetes (something its creators admit was not their strong suit) will be rewarded.
Kubernetes began as a project inside Google by Joe Beda, Brendan Burns, and Craig McLuckie, who between them had quite a few years of experience working inside of what was at the time (and arguably still is) the most advanced distributed systems company in the world. Operating at “Google-scale” is now fairly common for mobile and web apps, but Google had to invent a lot of the techniques it wound up using to make sure its services were instantly available anywhere in the world as internet usage exploded over the last fifteen years. (It called that system “Borg,” after the sinister robot army in the Star Trek series.)
“People who are new to distributed systems problems haven’t spent enough time to understand the challenges they face,” said McLuckie, who now runs Heptio, a Kubernetes-oriented startup in Seattle. “We solved problems for organizations operating at scale.”
Google worked on the project in house for a few years, and then released it to the world on July 21, 2015. The same release also created the Cloud Native Computing Foundation to oversee the project, and over time the CNCF began adding other projects that solved parts of the Kubernetes story.
“We had perspective and scale to manage containers as the workload unit, and wanted to share that information in a way that would become ubiquitous,” said Google’s Sarah Novotny, program manager of the Kubernetes Community open-source group. Two years ago, Google was responsible for 73 percent of contributions to the project, and while Google has increased its overall investment in contributing to Kubernetes, that percentage has fallen to about 50 percent as community contributions have surged.
It’s not entirely clear how many people are actually using Kubernetes, but the venture capitalists have been paying attention, and Kubernetes startups have been acquired at a steady rate over the last year. It’s not exactly a scientific study, but the a survey of developers at the CloudNativeCon/KubeCon conferences (which are run by the CNCF) earlier this year indicated that 77 percent of attendees who are evaluating container orchestration products are using Kubernetes. Last year, The New Stack surveyed developers on container orchestration products, and Kubernetes was the leading product.
Demand for Kubernetes is a follow-on effect from the boom in containers. Developers have fallen in love with containers, which allow them to package their applications into distinct components that can run anywhere and require far less resources than a virtual machine, last decade’s method for squeezing more performance out of hardware.
Companies like Google had been using containers for years, but after Docker came up with an easy-to-use way for developers to containerize their applications, usage exploded. Docker became one of the fastest-growing enterprise software technologies we’ve ever seen, and after years of testing containerized applications, more companies (and larger companies) are starting to use this approach in their production applications.
Now they’re looking for a way to manage all these containers, which is where Kubernetes comes in. Kubernetes allows administrators to avoid conflicts between different containerized applications running on the same hardware by packaging the containers themselves into groups called “pods,” and it also helps them scale their applications as demand warrants. And because containers can be deployed just about anywhere, it also makes multicloud and hybrid cloud strategies more effective.
“Kubernetes is another two to four years out from being basic plumbing that is sort of assumed to be everywhere,” said Alex Polvi, CEO of CoreOS, who bet his company on Kubernetes after watching it in action years ago.
Handle me with care
But while Kubernetes fills the hearts of grizzled systems engineers with joy, if you haven’t tried to manage applications across big distributed systems before, it’s is going to give you a headache the first time you sit down with it.
“I think Kubernetes has a fantastic Day Two experience,” joked Dan Kohn, executive director of the CNCF, acknowledging the difficulty that even experienced software developers can run into while getting started with Kubernetes. McLuckie described it as a “zero to ten miles an hour” problem that disappears once you find second gear, but several people interviewed for this story noted that Kubernetes hasn’t matched Docker when it comes to the initial user experience.
That is a potential problem for the long-term health of the project. Right now, most of the people interested in running Kubernetes are people who aren’t afraid of the work required to implement a complex software package. But that will change as containers become more widely adopted, and Docker’s success shows that focusing on the developer experience has a big impact on adoption.
Docker has its own product for managing containers called Swarm that provides an easier onboarding experience, but it hasn’t gotten as much traction as Kubernetes. Mesosphere also offers a product that manages containers but it is mostly focused on the big data and data analytics markets.
As usual, the elephant in this room is Amazon Web Services. You can run Kubernetes on AWS, but the public cloud leader also has its own container orchestration product called EC2 Container Service (ECS) that abstracts a lot of the implementation work if you want to run on AWS. However, even Amazon might be contemplating a “if you can’t beat ‘em, join ‘em” strategy, according to a recent report that said AWS is considering building a product on top of Kubernetes or making ECS more Kubernetes friendly.
But Kubernetes has a huge head start, considering both its feature set and its strong community, Polvi said.
“That’s why i think it’s unstoppable,” he said. “Companies that try to compete with it will start to copy the features over time. And on the community side, i don’t know how you copy that.”
Time to settle down?
There are several factors that will dictate the path Kubernetes takes over the next two years. For one thing, the user experience problems need to be solved.
“Your initial exposure to the project is grounded in a lot of friction,” McLuckie acknowledged. “That’s just a result of what we were really good at, and frankly, it was something we weren’t really good at.” A lot of the work that Heptio and a constellation of Kubernetes-oriented startups are doing is centered around making this experience easier for developers to get up and running with Kubernetes.
At some point, the project also needs to decide which parts of Kubernetes should form part of a stable core, and start farming out newer ideas to the edge of the project, Polvi said. McLuckie agreed: “As we start looking at this project. Kubernetes is a seed crystal for something much bigger and bolder.”
The CNCF has been very careful to avoid approaching its flagship project with a top-down oversight approach, Kohn said, so this maturation process is going to be something the Kubernetes community has to figure out on its own.
“Looking to the future, a lot of the interesting things that are going to happen are not inside the core of Kubernetes,” McLuckie said. That’s what companies like CoreOS and Heptio are betting on, and if the cloud world settles on Kubernetes as a standard the way other open-source projects have become ubiquitous — like Hadoop or even Linux itself — there is going to be a lot of commercial opportunity.