Lawrence Manickam
kuberiter
Published in
4 min readAug 5, 2018

--

Art Credit — Samuel Lawrence

The growth of Kubernetes (K8S) has constantly changed IT application release management strategies. Containers and Microservices that are provisioned through Kubernetes has created a bigger impact on standard ITIL, Scrum and other lean management processes.

This question is often asked by business leaders “What is Kubernetes?”. Executives and Senior Management in Marketing, Finance, Project Management, QA and other functional areas find it hard to ignore K8S’ discussions due to it’s overwhelming adoption by the industry. Though I have tried to explain Kubernetes in simple words to the business leads, it is evident that it has not been understood correctly. It is difficult for several conventional developers to understand K8S too. Unless you have a mix of experience with Development, Cloud and Conventional IT, then K8S is tough to comprehend.

The objective of the article is to explain ‘Kubernetes’ to business leaders.

History

Google built a massive Cluster Management system in 2003–2004 called ‘Borg’. It’s a software that automate, deploy and scale applications at tens of thousand of servers (or virtual machines) to provide 24x7 service to the customers.

This project came through many changes for a decade and was named as ‘Kubernetes’ in 2014. The first open source version of K8S committed into GitHub on the same year then many leading players (Red hat, Docker, IBM etc.) started contributing to grow this product further. In 2015, it was donated to CNCF (Cloud Native Computing Foundation).

Kubernetes (a greek word) means Helmsman. A helmsman is a pilot who steers a ship or any maritime vessel.

Virtual Machines Vs Containers

A container is a software virtual machine that has an application and other supporting libraries. It is not a complete virtual machine however can function as a virtual machine to give complete control to the software developers to develop an application. The following table summarizes the notable differences between virtual machines and containers.

The job of Kubernetes is to provision the containers into hundreds of virtual machines at the Cloud to provide 24x7 service.

Shipping Cargo Operations department

Most of us have seen the container ships at the port, movies and pictures. It carries containers (Truck size metal boxes) that has products to ship, a technique called Containerization.

A container ship is designed with hundreds of mechanical, space, weight, operational support machines such as a crane to place containers at the ship. It is also designed to accommodate the docking station standards at the specific port. A cargo planning department architect the placement of containers, how to buckle them with heavy metal rods, use twist locks as appropriate, maintain temperature, transport and other hundreds of operations. It’s a huge work.

There are many varieties of container ships, containers and loading methods that are beyond the scope of this article. However, watch this informative video from JeffHK to understand the cargo operations at container ships and imagine the same for software containers deployment.

Kubernetes

Kubernetes is a cargo Operations department that places the Containers (Lightweight virtual machines with applications) into the ships (virtual machines, bare metal). It also sails (Helmsman) the ship at the ocean (Cloud) monitoring the high-water currents (scalability, capacity increment, high availability).

Kubernetes is an Orchestration tool that provision the containers into the Cloud implementing the following;

Automatic binpacking

Automatically allocate CPU, RAM to containers without compromising high availability.

Horizontal scaling

Automatically scale up and down your application based on CPU usage.

Automated application roll outs and backups

K8S progressively rolls out your applications and configuration while monitoring application health without compromising 24x7 requirement.

Storage orchestration

Automatically mount the storage for your containers.

Self-healing

Automatically restart the failed containers.

Automatically replaces and reschedule the containers when node become unavailable.

Auto kill containers that don’t respond to user requests.

Service discovery and load balancing

Auto discovery of containers that has dependency with other containers. No need to write your own program logic.

Automatically assigns IP addresses to the containers and load balancing.

Secret and Configuration Management

Automatically deploys and updates your secrets and configuration without rebuilding the containers.

Jobs

Automatically manage your batch and CI workloads, replacing containers that fail, if desired.

Replication

Automatically replicate your application containers at the Cloud to provide 24x7 service to the customers.

I’m sure you are thrilled to see the word ‘Auto’ everywhere. That is one of the objectives of this article.

  • Kubernetes is an Auto Pilot DevOps tool.
  • Kubernetes handles your Nonfunctional factors in the Cloud automatically.
  • Kubernetes replicates your application containers in the Cloud to provide 24x7 service.

Kubernetes is complex. By inheriting most of the complex Cloud features into it, the developers do not need to write custom programs to manage their DevOps pipeline. It is designed with a purpose.

Lawrence Manickam is the Technical Founder of Kuberiter Inc, a Seattle based bootstrapped Start-up that provide Kubernetes as a Service for MultiCloud.

Please subscribe at www.kuberiter.com to try our DevOps SaaS Services.

--

--