Industry Use Case for Kubernetes
What is Kubernetes?
Kubernetes (also known as “K8S” or “Kube”) is an open-source container orchestration platform that automates many of the manual processes involved in deploying, managing, and scaling containerized applications.
In other words, we can cluster together groups of hosts running Linux® containers, and Kubernetes helps you easily and efficiently manage those clusters.
Why there is a need for Kubernetes in the DevOps world?
To understand what is Kubernetes and its use-case, we first need to understand why we need Kubernetes and what kind of challenges the companies are responsible for the development of this technology in the DevOps world.
No doubt, containers are fast, reliable, efficient, and scalable. By using containerization technology, you can provision almost any OS in just a few seconds because DevOps is all about how agile the technology is — how faster you can solve the use-cases of the current industry needs. Both Linux and Docker containers isolate the application from the host.
How does Kubernetes work?
A working Kubernetes deployment is called a cluster. You can visualize a Kubernetes cluster as two parts: the control plane and the compute machines, or nodes.
Each node is its own Linux® environment and could be either a physical or virtual machine. Each node runs pods, which are made up of containers.
The control plane is responsible for maintaining the desired state of the cluster, such as which applications are running and which container images they use. Compute machines actually run the applications and workloads.
Kubernetes runs on top of an operating system (Red Hat® Enterprise Linux®, for example) and interacts with pods of containers running on the nodes.
The Kubernetes control plane takes the commands from an administrator (or DevOps team) and relays those instructions to the computing machines.
How booking.com is using Kubernetes?
In 2016, Booking.com migrated to an OpenShift platform, which gave product developers faster access to infrastructure. But because Kubernetes was abstracted away from the developers, the infrastructure team became a “knowledge bottleneck” when challenges arose. Trying to scale that support wasn’t sustainable.
After a year of operating OpenShift, the platform team decided to build its own vanilla Kubernetes platform — and ask developers to learn some Kubernetes in order to use it. “This is not a magical platform,” says Ben Tyler, Principal Developer, B Platform Track. “We’re not claiming that you can just use it with your eyes closed. Developers need to do some learning, and we’re going to do everything we can to make sure they have access to that knowledge.”
Despite the learning curve, there’s been a great uptick in the adoption of the new Kubernetes platform. Before containers, creating a new service could take a couple of days if the developers understood Puppet, or weeks if they didn’t. On the new platform, it can take as few as 10 minutes. About 500 new services were built on the platform in the first 8 months.