How Kubernetes is used in Industries and what all use cases are solved by K8s?
What is Kubernetes?
Kubernetes, also known as K8s, is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
In other words, you can cluster together groups of hosts running Linux containers, and Kubernetes helps you easily and efficiently manage those clusters.
Kubernetes was originally developed and designed by engineers at Google. Google was one of the early contributors to Linux container technology and has talked publicly about how everything at Google runs in containers. (This is the technology behind Google’s cloud services.)
What can you do with Kubernetes?
The primary advantage of using Kubernetes in your environment, especially if you are optimizing app dev for the cloud, is that it gives you the platform to schedule and run containers on clusters of physical or virtual machines (VMs).
More broadly, it helps you fully implement and rely on a container-based infrastructure in production environments. And because Kubernetes is all about automation of operational tasks, you can do many of the same things other application platforms or management systems let you do—but for your containers.
With Kubernetes you can:
- Orchestrate containers across multiple hosts.
- Make better use of hardware to maximize the resources needed to run your enterprise apps.
- Control and automate application deployments and updates.
- Mount and add storage to run stateful apps.
- Scale containerized applications and their resources on the fly.
- Health-check and self-heal your apps with auto-placement, auto-restart, auto replication, and autoscaling.
Kubernetes is a great platform to exit safely the traditional virtual machine shield and go to the cloud. It brings dynamism, reduces the sysadmin cost, and pushes the service to a level of quality that would hard to achieve in any other way. Many traditional issues like networking and data protection can be overcome by the advanced configuration of Kubernetes itself.
Here’s a list of benefits this solution brings.
- Scalability- You only have to deploy a container. Then, without any effort, you can set the scaling policies. The only thing you have to worry about is having enough money on your credit card.
- Transparency- Each container does one thing. All relation between containers is mapped onto configuration files. There’s no way to miss something or hide some behavior.
- Time savings- The process is extremely simple. Any steps are easy to reproduce.
- Version control- By design, each deployment is versioned. With little effort, you can map your infrastructure in a source file you can version on Git.
Kubernetes- 7 Use Cases
- Deploying a Simple App: To deploy a simple app, you can use Kubernetes. Yes, from a purely practical point of view this would be not very reasonable. you can deploy such an app using other, less expensive solutions. But there is an educational purpose that shouldn’t be overlooked. In undertaking such a deployment, you will learn how to run a Kubernetes cluster and deploy applications on it.
- Microservices: orchestrating complicated app based on microservices architecture with many components
- Lift and shift: from server to clouds: Facilitating the moving of on-prem apps to the cloud
- Cloud-native Network Functions (CNF): Managing containers with encapsulated network functions
- Machine Learning: Managing machine learning workflows to deploy faster AI-based apps.
- Heavy Computing: Enabling computing heavy tasks. 7. CI/CD: CI/CD tasks are easier to perform with k8s.
HOW KUBERNETES IS USED IN INDUSTRIES?
Case Study- Pokemon GO
Pokémon Go is a 2016 augmented reality mobile game developed and published by Niantic in collaboration with Nintendo and The Pokémon Company for iOS and Android devices.
The record-breaking online gaming app Pokémon GO was the perfect test case, how to update Google Container Engine and Kubernetes Cluster Orchestration on the fly in a real-life million user rollout.
Pokemon Go developed by Niantic Labs and was initially launched only in North America, Australia & New Zealand. In just a few weeks upon its worldwide release, the game reached 500+ million downloads with an average of 20+ million daily active users. These stats bettered, those set by games like Candy Crush and Clash of Clans.
**Let’s understand how Pokemon GO solved challenges using Kubernetes services:
How was ‘Pokemon Go’ able to scale so efficiently & became so successful? The answer is Kubernetes. Pokemon Go was developed and published by Niantic Inc. with 500+ million downloads and 20+ million daily active users.
Pokemon Go engineers never thought their user base would increase exponentially to surpass expectations within a short time. it was 50 times more than the actual assumption. They were not ready for it, and the servers couldn’t handle this much traffic.
Challenge Pokemon Go faced a severe challenge when it came to vertical and horizontal scaling because of the real-time activity by millions of users worldwide. Niantic was not prepared for this.
Solution The magic of containers. The application logic for the game ran on Google Container Engine (GKE) powered by the open-source Kubernetes project. Niantic chose GKE for its ability to orchestrate its container cluster at a planetary scale, freeing its team to focus on deploying live changes for their players. In this way, Niantic used Google Cloud to turn Pokémon GO into service for millions of players, continuously adapting and improving. This gave them more time to concentrate on building the game’s application logic and new features rather than worrying about the scaling part.
Edward Wu, Director of Software Engineering, at Niantics said,
We knew we had something special on hand when these were exceeded in hours." "We believe that people are healthier when they go outside and have a reason to be connected to others.
Pokemon Go surpassed all engineering expectations by 50x times and has managed to keep running despite its early launch problems. This became an inspiration and a benchmark for modern-day augmented reality games as it inspired users to walk over 5.4 billion miles in a year. The implementation at Niantic Labs thus made this the largest Kubernetes ever deployed
- Pokémon GO was the largest Kubernetes deployment on Google Container Engine ever. Due to the scale of the cluster and accompanying throughput, a multitude of bugs was identified, fixed, and merged into the Open-Source Project.
- To support Pokémon GO’s massive player base, Google provisioned many tens of thousands of cores for Niantic’s Container Engine cluster.
Conclusion Not only did Kubernetes help in the horizontal and vertical scaling of containers, but it excelled in terms of engineering expectations. They planned their deployment for a basic estimate and the servers were ready for a maximum of 5x traffic. However, the game’s popularity rose so much that, they had to scale up to 50x times. Ask engineers from other companies, and 95% of them will respond with their server meltdown stories and how their business went down crashing. But not at Niantic Labs, the developers of Pokemon Go.