How industries are using Kubernetes and what all use cases are solved by Kubernetes?

What is Kubernetes?
Before knowing about the Kubernetes, we also have to know about the containerization. What is containerization? Containerization is OS-based virtualization which creates multiple virtual units in the user space, known as Containers. Nowadays Docker is a famous platform for this containerization. It is used to package your application and all its dependencies together in the form of containers so to make sure that your application works seamlessly in any environment which can be development or test or production. Simply we can say that Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package. But this docker has lots of drawbacks. Actually it is not drawback, it is lack of some features.
While Docker provided an open standard for packaging and distributing containerized applications, there arose a new problem. How would all of these containers be coordinated and scheduled? How do you seamlessly upgrade an application without any interruption of service? How do you monitor the health of an application, know when something goes wrong and seamlessly restart it?
Here Kubernetes come to solve those kind of problems. Kubernetes is an orchestration tool for containerized applications. Starting with a collection of Docker containers, Kubernetes can control resource allocation and traffic management for cloud applications and microservices.
Kubernetes was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.
What does Kubernetes do?
✒️Deploying images and containers
✒️Managing the scaling of containers and clusters
✒️Resource balancing containers and clusters
✒️Traffic management for services
What types of the challenges were faced by the industries?
- Adform’s mission is to provide a secure and transparent full stack of advertising technology to enable digital ads across devices. The company has a large infrastructure: OpenStack-based private clouds running on 1,100 physical servers in 7 data centers around the world. Their private cloud was not really flexible enough. The biggest pain point is that their developers need to maintain their virtual machines, so rolling out technology and new software takes time.
- Adidas is a big company. They was happy with technological perspective. But they were facing problem to access all the tools at a time.
- Tinder was facing challenges of scale and stability. When scaling became critical, they often suffered through several minutes of waiting for new EC2 instances to come online.
- Even Google was facing some problems on scalability and automatic deployment before using Kubernetes.
- We all know the Spotify. It is a fabulous audio-streaming platform has grown to over 200 million monthly active users across the world. They have a small team working on the features and that was just not as efficient as adopting something that was supported by a much bigger community.
- WooRank is a super fast, super easy-to-use SEO audit and digital marketing tool. For two years, the infrastructure ran smoothly on Mesos, but there were still lots of their own libraries that they had to roll and applications that they had to bring in, so it was very cumbersome for them as a small team to keep those things alive and to update them.
- Ocado is the world’s largest online-only grocery retailer, developed the Ocado Smart Platform to manage its own operations, from websites to warehouses. To set up the first warehouses for the platform, Ocado shifted from virtual machines and Puppet infrastructure to Docker containers. They were looking for to bring all these disparate infrastructure services together in one unified API.
- IBM cloud offers public, private, and hybrid cloud functionality across a diverse set of runtimes from its Open Whisk-based function as a service (FaaS) offering, managed Kubernetes and containers, to Cloud Foundry platform as a service (PaaS). In 2017, the IBM Cloud Container Registry team wanted to build out an image trust service.
- An artificial intelligence research lab, OpenAI needed infrastructure for deep learning that would allow experiments to be run either in the cloud or in its own data center, and to easily scale. Portability, speed, and cost were the main drivers.
Why you need Kubernetes and what it can do
Containers are a good way to bundle and run your applications. In a production environment, you need to manage the containers that run the applications and ensure that there is no downtime. For example, if a container goes down, another container needs to start. Wouldn’t it be easier if this behavior was handled by a system?
That’s how Kubernetes comes to the rescue! Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more. For example, Kubernetes can easily manage a canary deployment for your system.
Kubernetes provides you with:
- Service discovery and load balancing Kubernetes can expose a container using the DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.
- Storage orchestration Kubernetes allows you to automatically mount a storage system of your choice, such as local storages, public cloud providers, and more.
- Automated rollouts and rollbacks You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state to the desired state at a controlled rate. For example, you can automate Kubernetes to create new containers for your deployment, remove existing containers and adopt all their resources to the new container.
- Automatic bin packing You provide Kubernetes with a cluster of nodes that it can use to run containerized tasks. You tell Kubernetes how much CPU and memory (RAM) each container needs. Kubernetes can fit containers onto your nodes to make the best use of your resources.
- Self-healing Kubernetes restarts containers that fail, replaces containers, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.
- Secret and configuration management Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and SSH keys. You can deploy and update secrets and application configuration without rebuilding your container images, and without exposing secrets in your stack configuration.
Kubernetes was created to automate most of the tasks associated with deploying many clustered services across many infrastructure components. Kubernetes provides the following capabilities:
- Automatic deployment of application services
- Automatic configuration of application network
- Automatic distribution of services across infrastructure
- Automatic resource allocation for application services
- Automatic load balancing between application components
- Automatic replication of application components
- Automatic failover of application components
- Easily scale out application services when required
- Sharing of storage across multiple containers
Kubernetes is certainly a great automation tool for deploying and managing distributed containerized application services. It would be very labor intensive and time consuming to try to achieve the same results manually, if possible at all. Kubernetes has solved many use cases faced by many industries.

Kubernetes helps Adform’s business a lot because their features are coming to market faster. The release process went from several hours to several minutes. Auto-scaling has been at least 6 times faster than the semi-manual VM bootstrapping and application deployment required before. The team estimates that the company has experienced cost savings of 4–5x due to less hardware and fewer man hours needed to set up the hardware and virtual machines, metrics, and logging. Utilization of the hardware resources has been reduced as well, with containers notching 2–3 times more efficiency over virtual machines.

Adidas found the solution with containerization, agile development, continuous delivery, and a cloud native platform that includes Kubernetes and Prometheus. Just six months after the project began, 100% of the adidas e-commerce site was running on Kubernetes. Load time for the e-commerce site was reduced by half. Releases went from every 4–6 weeks to 3–4 times a day. With 4,000 pods, 200 nodes, and 80,000 builds per month, adidas is now running 40% of its most critical, impactful systems on its cloud native platform.

Tinder solved interesting challenges to migrate 200 services and run a Kubernetes cluster at scale totaling 1,000 nodes, 15,000 pods, and 48,000 running containers. They often suffered through several minutes of waiting for new EC2 instances to come online. Containers now schedule and serve traffic within seconds as opposed to minutes. Scheduling multiple containers on a single EC2 instance also provides improved horizontal density. As a result, they have projected substantial cost savings on EC2 in 2019 compared to the previous year.

The biggest service of Spotify is currently running on Kubernetes takes about 10 million requests per second as an aggregate service and benefits greatly from auto-scaling. Before Kubernetes, their teams would have to wait for an hour to create a new service and get an operational host to run it in production, but with Kubernetes, they can do that on the order of seconds and minutes. In addition, with Kubernetes’s bin-packing and multi-tenancy capabilities, CPU utilization has improved on average two- to threefold.

The WooRank’s number one concern was immediately erased: Maintaining Kubernetes takes just one person on staff, and it’s not a fulltime job. Infrastructure updates used to take two active working days; now it’s just a matter of a few hours of passively following the process. Implementing new tools — which once took weeks of planning, installing, and onboarding — now only takes a few days. With Kubernetes and the other CNCF tools they use, they have achieved about 30% in cost savings. Plus, the rate of deployments per day has nearly doubled.

With Kubernetes, the speed from idea to implementation to deployment is amazing to Ocado now. In the old world, a new application deployment could easily take over a month. And because there are no longer restrictive deployment windows in the warehouses, the rate of deployments has gone from as few as two per week to dozens per week. Ocado has also achieved cost savings because Kubernetes gives the team the ability to have more fine-grained resource allocation.

The image trust service of IBM, called Portieris, is fully based on the Cloud Native Computing Foundation (CNCF). Portieris is a Kubernetes admission controller for enforcing content trust. Users can create image security policies for each Kubernetes namespace, or at the cluster level, and enforce different levels of trust for different images. This enables users to be able to have their IKS cluster verify that the image they’re loading containers from contains exactly what they expect it to, and Portieris is what allows an IKS cluster to apply that verification.

OpenAI began running Kubernetes on top of AWS in 2016, and in early 2017 migrated to Azure. They use Kubernetes mainly as a batch scheduling system and rely on our auto-scaler to dynamically scale up and down our cluster. The company has benefited from greater portability because Kubernetes provides a consistent API, they can move their research experiments very easily between clusters.
Conclusion:-
“It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community.”
— Kubernetes
Thanks everyone for reading my article.
Keep Learning, Keep Sharing…
Thank you.