Kubernetes, the Google-created open source software
Kubernetes project was started by a group of Google engineers as a way to expand upon Borg – the company’s infrastructure management software. It ended up becoming a massive phenomenon among software developers. It got tens of thousands of code contributions from programmers and has been adopted by many companies such as Spotify, Pizza Hut, Lyft, the New York Times, eBay & ‘Pokémon Go’ developer Niantic. It is now used by over half of the Fortune 500 firms.
Started in 2014, Kubernetes is one of the fastest-growing open source projects in the history. The software helps developers run their applications at massive scales across multiple clouds and servers. Because Kubernetes is open source, the code can be used, downloaded or modified by anyone for free. As a result of this freedom, it expanded beyond Google. Many technology companies – Google, Microsoft, Amazon, and a several smaller start-ups – now use Kubernetes as the core for commercial software products and services.
As the software gained traction, the tech giants started to acquire smaller companies focused on Kubernetes. Microsoft acquired Deis, a Kubernetes-based start-up founded by members of the original Google team that created it, in Apr 2017; Oracle bought Wercker in Apr 2017; Red Hat acquired CoreOS in Jan 2018; and Heptio, company founded by two of the original Kubernetes founders, got acquired by Vmware in Nov 2018. IBM’s $34bn acquisition of Red Hat also revolved around Kubernetes, which forms the core of their hybrid cloud strategy. The demand has even touched the job market, with Kubernetes becoming a high-demand skill. Since Sep 2018, job postings for Kubernetes have grown 230%, according to report from Indeed.
What is Kubernetes? The rise of Kubernetes is related to the success of “containers”, popularized by Docker. A software container lets developers package their application with everything it needs to run. Hence, the application works the same way on laptop as it does in the cloud. Developers needed a way for these containers to work with each other across servers and clouds, at massive scales. This is where Kubernetes comes in.
It organizes containers in a structural, consistent way. The smallest unit, container, has packages of code and what's needed to run it, so that each container could run on its own. The containers are organized into “pods”. Each “pod” of one or more containers gets clumped together into a “node”, which is then placed under a “master node”. Kubernetes is able to manage all these clusters of nodes at once, and keep the applications running continuously even as it organizes and re-organizes these containers on the fly. The end result is that developers can build, test, host, and run large-scale applications on the cloud, with the Kubernetes software doing much to keep everything running smoothly. Another advantage is that since Kubernetes runs on just about any kind of server and most of the major cloud platforms, it is easier for developers to take their application and move it from one cloud / server to the other.
The consensus in the industry is that Kubernetes is only going to keep getting more popular – it is already being used by several large enterprises. With the large technology firms investing in the software, it is expected that it will continue to mature in ways that will make it more easier to be adopted by the large and small firms alike.