Why programmers & businesses are so kicked about Kubernetes

As businesses move to the cloud, enabler technologies are seeing a quantum leap in terms of innovation and adoption. Kubernetes, a five-year-old open source project started by Google and currently owned by the Linux subsidiary CNCF (Cloud Native Computing Foundation), is one such technology. Some believe it will become the operating system of the cloud.

What does Kubernetes do? In plainspeak, it ensures maximum utilisation of available computing infrastructure on the cloud. It makes applications very easy to deploy and manage. It takes a call on scaling (up or down) an application at speed. For example, Kubernetes helps e-commerce applications handle the huge rush on a big sale day, or Swiggy to manage its peak-hour orders. Fast deployment and scaling is directly linked to profitability. And so enterprises and startups are excited. And that’s creating a huge demand for Kubernetes specialists.

Kubernetes and similar technologies like Docker Swarm, Amazon Elastic Container Service (ECS), and Apache Mesos are technically known as container orchestration platforms. Their growth is intrinsically linked to the story of the rise of containers.

Initially, software used to be written as a monolith of code, and it used to be an arduous task whenever changes or updates had to be made to a single entity within that monolith. To tackle this, there was a change in software architecture. Monoliths were replaced by microservices, which is writing software in pieces. For example, services like payment option or the shopping cart began to be written as separate pieces of software. The final product took shape during deployment when every developer would have finished coding for each microservice.

Microservices used to be deployed in what are called virtual machines (VMs), hosted in the cloud or on-premise servers. All these VMs — which are basically software computers with the same functionality as physical computers (many VMs can be created from one physical computer) — were managed by a layer called the hypervisor. Containers came as an upgrade to this system of managing infrastructure. Containers are platform- and hostagnostic, which meant microservices written in varying languages could be run as a final product on different operating systems without any hassle. And they are much faster than VMs.

Kubernetes manages clusters of these containers, and are a critical piece of technology for businesses that need to deploy an application quickly and scale on demand. “Containers are hosted by multiple bare metals (physical machines) or in the cloud. Kubernetes manages these containers distributed in several clusters. When there is a sudden spike in demand, for example, Kubernetes takes an internal call and scale up the number of containers,” says Neependra Khare, founder of CloudYuga, a cloud consultancy and a CNCFcertified trainer in Kubernetes.

A survey by HR technology solutions provider EdGE Networks shows that the demand for talent trained in Kubernetes grew at a CAGR of 85% over the period 2012-2018.

Edtech firm Simplilearn’s chief product officer Anand Narayanan says the spike should be seen in the light of increasing demand for DevOps engineers. DevOps is the modern way of software development, where developers as well as the testing and operations teams work simultaneously to ensure continuous development and integration of code, significantly bringing down the software development time. “This is having a direct or indirect impact on the demand for people trained in technologies such as Docker (container) and Kubernetes. In software development, Kurbernetes comes in towards the end, when the code is ready for deployment. It’s the logical conclusion to DevOps,” says Narayanan.

The two Kubernetes roles are those of developer and administrator. A developer is expected to know how to deploy code using Kubernetes. The administrator or the operations person’s role is much larger — it includes creating the cluster of VMs (in which containers are deployed), deploying and patching them, scaling up, adding storage, etc.

Running and managing applications via Kubernetes involves technical challenges. Not many companies would want to invest in a huge army of specialists to manage their containers. So that job is typically outsourced. That’s one of the reasons why Red Hat’s OpenShift, a platformas-a-service built around Docker containers orchestrated and managed by Kubernetes, has been a hit with enterprises. And the reason why VMware, which pioneered VMs, is investing heavily into a Kubernetes strategy named Tanzu. Amazon Web Services (AWS), too, offers customers an array of options to run Kubernetes.