Kubernetes is becoming the hottest topic in cloud computing. As Kubernetes specialists, we interacted with many business leaders and software engineers and learned only a handful of them are aware of Kubernetes.
To help those that want to learn more, we decided to run a vlog series on Kubernetes! In the “Kubernetes Vlog” series, we will go over its documentation and help you become familiar with it. On Medium, we will share a recap of each video.
Kubernetes Vlog will be in English AND Spanish. Cuemby has been hosting a Meetup group with 300+ members in Colombia and found great interests in the Spanish speaking community, but fewer resources are available in Spanish. That’s why we will be offering the series in Spanish as well!
In this article, we will be sharing with you what is Kubernetes and some of its high-level benefits.
Before we go into learning more about Kubernetes, let’s do a quick history recap about application deployments to make more sense about Kubernetes’ benefits and why there is so much “hype” around it.
Before Kubernetes was on the horizon, companies and organizations used to run applications on physical servers (believe me, some companies still do!).
Running applications on the bare metal, people were facing resource allocation issues because of the lack of resource boundaries between applications. Meaning that if multiple applications run on the same physical server, there’s a possibility that one application can take up a majority of the resources, which could result in other applications underperforming or even crashing the server.
To solve this issue, organizations would run each application on a dedicated physical server. This solution was costly as they needed to maintain many physical servers, not scalable, and most resources were underutilized.
Then, Virtualization came to the scene. With virtualization, people can run multiple Virtual Machines (VMs) on a single physical server, which enables isolation between applications and VMs. This allows people to easily create or dispose of a cluster of virtual machines with a predefined set of resources. Think of VM as a machine that is running its own operating system and all other components on top of the virtualized hardware.
Virtualization also allows:
Now is the time for the container revolution! Containers are similar to a VM, but “lighter” they are isolated from the host and other containers.
Therefore, Containers are known as “lightweight” as they have a lower overhead than VMs.
Containers also give service isolation between containers, which is why containers can have limited resource access. Because containers are not tied to the infrastructure in which they run, you can move them across clouds and OS distributions.
With the rise of containerized applications, we are now entered into the era of Kubernetes. Kubernetes is an open-source orchestration system to manage containerized workloads and services. It allows applications to automate deployment, scaling, management, resource allocation, and more. It was originally created by Google from fifteen years of experience working with distributed systems, now is supported by a solid, growing ecosystem called CNCF (which Cuemby is a silver member) whose main purpose is to create sustainable ecosystems for cloud-native software. Kubernetes has been implemented by large companies such as Spotify, Capital One, Pinterest, Uber, and more check more case studies here: (https://kubernetes.io/case-studies/).
Even though Kubernetes is not a Platform as a Service, Kubernetes operates at the container level, not at the hardware level, which allows Kubernetes to give some features of what typical PaaS would provide, such as automated deployment, scaling, load balancing, logging, monitoring and so on. Kubernetes gives software engineers greater flexibility to pick and choose its features that fit their needs.
When building distributed systems, using containers, are the way to go! But managing containers in distributed systems is complicated and messy.
Who likes to wake up at 3 am because a container or service crashed on production?
Certainly not me! That’s why you need a platform like Kubernetes that helps create and manage distributed systems painless.
By using Kubernetes for your applications, you can enjoy the benefits such as:
In a nutshell, Kubernetes helps you manage containerized workloads efficiently, set you up with a framework for automation, which allows you to be more productive and able to reduce cost by optimizing your resources.
When you hear about Kubernetes, now you have a bit of a better understanding of what it is. In the following articles, we will be covering the Kubernetes documentation step by step and help you gain an even better understanding of Kubernetes.
Subscribe to us or sign up for newsletter (here) for a notification when a new article comes out.
If you are interested in the video version of our post, check out our vlog (here).