Blog on industry use case for Kubernetes.

Blog on industry use case for Kubernetes.

What Is Kubernetes? An Introduction To Container Orchestration Tool

We all know how important Containers have become in today’s fast-moving IT world. Pretty much every big organization has moved out of their traditional approach of using virtual machines and started using Containers for deployment. They are looking for trained Kubernetes professionals who have in-depth knowledge about containerization and orchestration tools. So, it’s high time you understand what is Kubernetes. Following are the topics covered in this blog:

  1. What is Kubernetes ?
  2. Why use Kubernetes ?
  3. Features of kubernetes
  4. Case-Study: Kubernetes powering Pokemon Go.
  5. Kubernetes architecture

1.What Is Kubernetes?

No alt text provided for this image


Kubernetes is an open-source container management (orchestration) tool. It’s container management responsibilities include container deployment, scaling & descaling of containers & container load balancing.

Note: Kubernetes is not a containerization platform. It is a multi-container management solution.

Going by the definition, you might feel Kubernetes is very ordinary and unimportant. But trust me, this world needs Kubernetes for managing containers, as much as it needs Docker for creating them.

Why Use Kubernetes?

Companies out there maybe using Docker or Rocket or maybe simply Linux containers for containerizing their applications. But, whatever it is, they use it on a massive scale. They don’t stop at using 1 or 2 containers in Prod. But rather, 10’s or 100’s of containers for load balancing the traffic and ensuring high availability.

Keep in mind that, as the traffic increases, they even have to scale up the number of containers to service the ‘n’ no of requests that come in every second. And, they have to also scale down the containers when the demand is less. Can all this be done natively?

Well to be honest, i’m not sure it can be done. Even if it can be done, it is only then its only after loads of manual effort for managing those containers. So, the real question is, is it really worth it? Won’t automated intervention make life easier? Absolutely it will!

No alt text provided for this image


That is why, the need for container management tools is imminent. Both Docker Swarm and Kubernetes are popular tools for Container management and orchestration. But, Kubernetes is the undisputed market leader. Partly because it is Google’s brainchild and partly because of its better functionality.

If I could choose my pick between the two, then it would have to be Kubernetes. The reason simply being: Auto-scaling of containers based on traffic needs. However, Docker Swarm is not intelligent enough to do Auto-scaling.

Features Of Kubernetes

This is the right time to talk about Kubernetes’ features because, you already know what it does and how it compares against Docker Swarm.

No alt text provided for this image


Kubernetes Features – What Is Kubernetes

No alt text provided for this image

1. Automatic Binpacking

Kubernetes automatically packages your application and schedules the containers based on their requirements and available resources while not sacrificing availability. To ensure complete utilization and save unused resources, Kubernetes balances between critical and best-effort workloads.

2. Service Discovery & Load balancing

No alt text provided for this image


With Kubernetes, there is no need to worry about networking and communication because Kubernetes will automatically assign IP addresses to containers and a single DNS name for a set of containers, that can load-balance traffic inside the cluster. 

3. Storage Orchestration

No alt text provided for this image


With Kubernetes, you can mount the storage system of your choice. You can either opt for local storage, or choose a public cloud provider such as GCP or AWS, or perhaps use a shared network storage system such as NFS, iSCSI, etc.

4. Self-Healing

No alt text provided for this image


Personally, this is my favorite feature. Kubernetes can automatically restart containers that fail during execution and kills those containers that don’t respond to user-defined health checks. But if nodes itself die, then it replaces and reschedules those failed containers on other available nodes.

5. Secret & Configuration Management

No alt text provided for this image


Kubernetes can help you deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.

6. Batch Execution 

No alt text provided for this image


In addition to managing services, Kubernetes can also manage your batch and CI workloads, thus replacing containers that fail, if desired.

7. Horizontal Scaling

No alt text provided for this image


Kubernetes needs only 1 command to scale up the containers, or to scale them down when using the CLI. Else, scaling can also be done via the Dashboard (kubernetes UI).

8. Automatic Rollbacks & Rollouts

No alt text provided for this image


Kubernetes progressively rolls out changes and updates to your application or its configuration, by ensuring that not all instances are worked at the same instance. Even if something goes wrong, Kubernetes will rollback the change for you.

These were some of the notable features of Kubernetes. Let me delve into the attractive aspects of Kubernetes with a real-life implementation of it and how it solved a major industry worry.

Case Study: How Kubernetes was at the center of Pokemon Go’s evolution

No alt text provided for this image


I’m pretty sure everyone reading this blog would have played this famous smartphone game. Or atleast you would have heard of this game. I’m so sure because this game literally smashed every record set by gaming applications in both the Android and iOS markets.

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.

Pokemon Go:– Game backend with Kubernetes

No alt text provided for this image


The app backend was written in Java combined with libGDX. The program was hosted on a Java cloud with Google Cloud Bigtable NoSQL database. And this architecture was built on top of Kubernetes, making it their scaling strategy.

Rapid iteration of pushing updates worldwide was done thanks to MapReduce and in particular Cloud Dataflow for combining data, doing efficient MapReduce shuffles, and for scaling their infrastructure.

The actual challenge: For most big applications like this is horizontal scaling. Horizontal scaling is when you are scaling up your servers for servicing the increasing the number of requests from multiple players and playing environments. But for this game in particular, vertical scaling was also a major challenge because of the changing environment of players in real-time. And this change also has to be reflected to all the others playing nearby because reflecting the same gaming world to everyone is how the game works. Each individual server’s performance and specs also had to be scaled simultaneously, and this was the ultimate challenge which needed to be taken care of by Kubrenetes.

Conclusion: Not only did Kubernetes help in horizontal and vertical scaling of containers, but it excelled in terms of engineering expectations. They planned their deployment for a basic estimate and the severs 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.

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.

Kubernetes Architecture

No alt text provided for this image


So, now on moving onto the next part of this ‘what is Kubernetes’ blog, let me explain the working architecture of Kubernetes.

Since Kubernetes implements a cluster computing background, everything works from inside a Kubernetes Cluster. This cluster is hosted by one node acting as the ‘master’ of the cluster, and other nodes as ‘nodes’ which do the actual ‘containerization‘.

CASE STUDY: Babylon

No alt text provided for this image


Babylon's mission is to put accessible and affordable healthcare services in the hands of every person on earth.

Since its launch in the U.K. in 2013, the startup has facilitated millions of digital consultations around the world. In the U.K., patients were typically waiting a week or two for a doctor's appointment. Through Babylon's NHS service, GP at Hand—which has more than 75,000 registered patients—39% get an appointment through their phone within 30 minutes, and 89% within 6 hours.

That's just the start. "We try to combine different types of technology with the medical expertise that we have in-house to build products that will help patients manage and understand their health, and also help doctors be more efficient at what they do," says Jérémie Vallée, AI Infrastructure Lead at Babylon.

A large number of these products leverage machine learning and artificial intelligence, and in 2019, researchers hit a pain point. "We have some servers in-house where our researchers were doing a lot of AI experiments and some training of models, and we came to a point where we didn't have enough compute in-house to run a particular experiment," says Vallée.

Babylon had migrated its user-facing applications to a Kubernetes platform in 2018, "and we had a lot of Kubernetes knowledge thanks to the migration," he adds. To optimize some of the models that had been created, the team turned to Kubeflow, a toolkit for machine learning on Kubernetes. "We tried to create a Kubernetes core server, we deployed Kubeflow, and we orchestrated the whole experiment, which ended up being a really good success," he says.

Based on that experience, Vallée's team was tasked with building a self-service platform to help Babylon's AI teams become more efficient, and by extension help get products to market faster. The main requirements: (1) the ability to give researchers and engineers access to the compute they needed, regardless of the size of the experiments they may need to run; (2) a way to provide teams with the best tools that they needed to do their work, on demand and in a centralized way; and (3) the training platform had to be close to the data that was being managed, because of the company's expansion into different countries.


CASE STUDY: Booking.com

No alt text provided for this image


Booking.com has a long history with Kubernetes: In 2015, a team at the travel platform prototyped a container platform based on Mesos and Marathon.

Impressed by what the technology offered, but in need of enterprise features at its scale—the site handles more than 1.5 million room-night reservations a day on average—the team decided to adopt an OpenShift platform.

This platform, which was wrapped in a Heroku-style, high-level CLI interface, "was definitely popular with our product developers," says Ben Tyler, Principal Developer, B Platform Track. "We gave them faster access to infrastructure."

But, he adds, "anytime something went slightly off the rails, developers didn't have any of the knowledge required to support themselves."

And after a year of operating this platform, the infrastructure team found that it had become "a knowledge bottleneck," he says. "Most of the developers who used it did not know it was Kubernetes underneath. An application failure and a platform failure both looked like failures of that Heroku-style tool."

Scaling the necessary support did not seem feasible or sustainable, so the platform team needed a new solution. The understanding of Kubernetes that they had gained operating the OpenShift platform gave them confidence to build a vanilla Kubernetes platform of their own and customize it to suit the company's needs.


Kubernetes Architecture – What Is Kubernetes

Master controls the cluster, and the nodes in it. It ensures the execution only happens in nodes and coordinates the act. Nodes host the containers; in-fact these Containers are grouped logically to form Pods. Each node can run multiple such Pods, which are a group of containers, that interact with each other, for a deployment. 

Replication Controller is Master’s resource to ensure that the requested no. of pods are always running on nodes. Service is an object on Master that provides load balancing across a replicated group of Pods.

So, that’s the Kubernetes architecture in simple fashion.

要查看或添加评论,请登录

Bhupendra Tale的更多文章

  • Machine learning

    Machine learning

    What Is Machine Learning? Machine learning (ML) is the study of computer algorithms that improve automatically through…

  • Bash Shell Scripting

    Bash Shell Scripting

    ?? What is shell scripting? ---> In Linux we write command and the program who is taking this and process it behind the…

  • What is OpenShift and use case

    What is OpenShift and use case

    What is OpenShift? OpenShift is a cloud development Platform as a Service (PaaS) hosted by Red Hat. It's an…

  • what is Ansible and its use case

    what is Ansible and its use case

    What is Ansible and what can it automate? You can use Ansible to automate three types of tasks: Provisioning: Set up…

  • What is Jenkins ans its use case

    What is Jenkins ans its use case

    What is Jenkins? Jenkins is an open-source Continuous Integration server written in Java for orchestrating a chain of…

  • What is AWS SQS – Benefits, Queue & Function

    What is AWS SQS – Benefits, Queue & Function

    What Is Amazon SQS Amazon Simple Queue Service (SQS) is a fully managed message queuing service in AWS cloud that…

  • Industry Use Cases with Demonstration on Kubernetes (Industry Experts Session)

    Industry Use Cases with Demonstration on Kubernetes (Industry Experts Session)

    #Expert_Session Summery:- 1.Centralized Version System (CVS): CVS is mainly used for version control system wherein the…

  • What is AWS? Introduction to Amazon Web Services

    What is AWS? Introduction to Amazon Web Services

    Amazon Web Services Amazon Web Services (AWS) is a cloud service from Amazon, which provides services in the form of…

  • RedHat Expert Session on Kubernetes and OpenShift

    RedHat Expert Session on Kubernetes and OpenShift

    What is OpenShift? OpenShift is a family of containerization software products developed by Red Hat. Its flagship…

  • ??? Research for industry usecases of Azure Kubernetes Service

    ??? Research for industry usecases of Azure Kubernetes Service

    What is Azure? The Azure cloud platform is more than 200 products and cloud services designed to help you bring new…

    6 条评论

社区洞察

其他会员也浏览了