Today, June 6th 2024, is being marked as the 10th birthday of the Kubernetes project, with “Kuber-10-es” parties across the world, the primary of which will be at the Google headquarters in California.
As the second largest open source project in the world (after the Linux kernel) and the largest Golang project, it deserves some recognition. It has truly changed the way that software is deployed, run and managed in a cloud-native world and has brought together the world’s largest tech companies in collaboration.
But why has it been so successful, where other projects haven’t?
Perhaps one factor is where the project was born. Google have been running large scale, globally distributed applications for many years, and had developed a tool called “Borg” to orchestrate these. In the early days of Docker containerisation, Google employees Joe Beda, Brendan Burns, and Craig McLuckie sought to write a simpler version of Borg, based container technology. Docker at the time was gaining a lot of popularity as a means of building and distributing software, but lacked the means to run these applications at scale. Other projects, such as MesoSphere, Nomad and Docker’s own Swarm tried to compete with the project, but with Google teaming up with the Linux Foundation to create the vendor-neutral Cloud-Native Computing Foundation (CNCF), no other project could match its appeal.
Running Kubernetes has always been a daunting task (demonstrated by Kelsey Hightower’s book “Kubernetes, the hard way”), so cloud providers have been keen to offer hosted versions of the platform. This allows users to deploy their applications using a Kubernetes “control plane” without having to manage the infrastructure, and being able to connect up compute and storage resources just for the “data plane”; where applications are running. This separation of concerns is one of the key reasons I believe that Kubernetes has become so successful.
Although some concepts of container orchestration have been around since the start, Kubernetes has enabled customisation through Custom Resource Definitions and custom Controllers and Operators. These allow higher-level control of complex resources in Kubernetes’ declarative style. Just check out my ToasterController as an example of how things other than containers can be managed by Kubernetes!
Being the second-largest open source project, and a vendor-neutral one, requires a lot of collaboration and process, and the Kubernetes project has developed sophisticated mechanisms for managing itself. Its features are managed by a number of “Special Interest Groups”; from documentation to architecture and release teams. Anyone can take part in these teams, but to lead one, you must first apply to become a “shadow” of the current lead. This ensures that there is a constant pipeline of succession and that no single person, or company, holds too much power over decisions. This future-proofing and sustainability commitment is another key reason why Kubernetes continues to thrive.
So it has been a meteoric rise for Kubernetes into the mainstream of application deployment; being responsible for hosting some of the world’s best known applications (although you wouldn’t know it). The future of the project is being carefully considered by the maintainers, so I hope to be able to Kubernetes’ birthday ten more years from now!
a community we’ve proudly supported for over a decade
Discover MoreThis event will explore and promote strategies for increasing accessibility to technology careers for individuals from disadvantaged communities.
Discover More“This week has been an eye-opening experience. I’ve learned so much from Alan and the team, not just about engineering but also about how our work can make a real difference. It’s been incredibly inspiring,”
Discover More