Industry use cases and case study !!
In 2013 Docker began to gain popularity by allowing developers to quickly create, run and scale their applications by creating containers. In just two years, Docker had been able to turn a niche technology into a fundamental tool within everyone’s reach thanks to its greater ease of use. But if the number of applications grows in the system, it becomes complicated to manage. Google is probably the first company that realized it needed a better way to implement and manage its software components to scale globally, and for years developed Borg (later called Omega) internally. In 2014, after almost a decade of intensive internal use, Kubernetes was publicly presented as an Open Source system based on learning using large-scale services.
Kubernetes is an open source software to implement and manage those containers on a large scale. It enables any number of servers of many types at the same time, separated by distance, to share workloads for a common tenant.
Imagine a situation where you have been using Docker for a little while, and have deployed on a few different servers. Your application starts getting massive traffic, and you need to scale up fast, how will you go from 3 servers to 40 servers that you may require? And how will you decide which container should go where? How would you monitor all these containers and make sure they are restarted if they exit?
This is where Kubernetes comes in.
- The ability to automatically place containers according to your resource requirements, without affecting availability.
- Service discovery and load balancing: no need to use an external mechanism for service discovery as Kubernetes assigns containers their own IP addresses and a unique DNS name for a set of containers and can balance the load on them.
- Planning: it is in charge of deciding in which node each container will run according to the resources it requires and other restrictions. It mixes critical and best-effort workloads to enhance resource utilization and savings.
- Enable storage orchestration: automatically set up the storage system as a public cloud provider. Or an on-premise networked storage system such as NFS, iSCSI, Gluster, Ceph, Cinder and others.
- Batch execution: in addition to services, Kubernetes can manage batch and IC workloads, replacing failed containers.
- Configuration and secret management: sensitive information such as passwords or ssh keys are stored in Kubernetes hidden in ‘secrets’. Both the application’s configuration and secrets are deployed and updated without having to rebuild the image or expose sensitive information.
- Self-repair: restart failed containers, replace and re-program them when nodes die. Also remove unresponsive containers and do not publish them until they are ready.
- Execution of automated deployments where changes to the application or its configuration are progressively implemented, while its status is monitored. This ensures that you do not delete all your instances at once. If something goes wrong, Kubernetes will reverse the change.
Advantages and disadvantages:-
- Using Kubernetes and its huge ecosystem can improve productivity.
- Using Kubernetes along with good native cloud technology attracts talent. For example, many software engineers want to work in companies that use modern and interesting technologies.
- Kubernetes is a feasible solution for many years to come.
- Kubernetes helps an application run more stably.
- Kubernetes can be cheaper than other alternatives, especially if you have large computing resources.
While all of these advantages sound quite attractive, not all companies are using Kubernetes, and this may be the result of an assessment of their disadvantages:
- Kubernetes can be too much for simple applications: If you do not intend to develop something complex for a large audience, or do not have large computing resources, you do not take full advantage of this technology.
- Kubernetes is very complex and can reduce productivity: Kubernetes is known for its complexity. Especially for developers who are not familiar with infrastructure technologies, it can be very difficult to work with them.
- The transition to Kubernetes can be cumbersome: If you have software and want to adapt it to Kubernetes, it must take time to run smoothly, which is difficult to estimate.
- Kubernetes can be more expensive than other alternatives: This is because all of the above disadvantages cost engineers time that is not spent creating new “tangible” business value.
Industry Using Kubernetes:-
Tinder’s move to Kubernetes:-
Tinder’s move to Kubernetes
Due to high traffic volume, Tinder’s engineering team faced challenges of scale and stability. What did they do?
Kubernetes — Yes, the answer is Kubernetes.
Tinder’s engineering team 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.
Was that easy? No ways. However, they had to do it for the smooth business operations going further. One of their Engineering leaders said, “As we onboarded more and more services to Kubernetes, we found ourselves running a DNS service that was answering 250,000 requests per second.” Fantastic culture, Tinder’s entire engineering organization now has knowledge and experience on how to containerize and deploy their applications on Kubernetes.
Reddit’s Kubernetes story
Reddit is one of the top busiest sites in the world. Kubernetes forms the core of Reddit’s internal Infrastructure.
From many years, the Reddit infrastructure team followed traditional ways of provisioning and configuring. However, this didn’t go long until they saw some huge drawbacks and failures happening while doing the things the old way. They moved to ‘Kubernetes.’
Pinterest’s Kubernetes story
With over 250 million monthly active users and serving over 10 billion recommendations every single day, that is huge. (The numbers might have changed now) As they knew these numbers are going to grow day by day, they began to realize the pain of scalability and performance issues.
Their initial strategy was to move their workload from EC2 instances to Docker containers; hence they first moved their services to Docker to free up engineering time spent on Puppet and to have an immutable infrastructure.
And then the next strategy was to move to Kubernetes:) Now they can take ideas from ideation to production in a matter of minutes whereas earlier they used to take hours or even days. They have cut down so much of overhead cost by utilizing Kubernetes and have removed a lot of manual work without making engineers worry about the underlying infrastructure.
Around the world, many CIO’s and technologists have chosen to use Kubernetes, and it is expected to evolve much more in the years to come.
Containers are becoming more and more popular in the software world and Kubernetes has become the industry standard for deploying containers in production. We will expect a high growth rate of Kubernetes this year too.