Kubernetes is a fast growing technology that is helping engineering teams have an easier time with utilizing containers to build their infrastructure with microservices. To really explain what Kubernetes is it helps to have a foundation with microservices and containers. So, let’s start with Microservices, or otherwise known as microservice architecture. Simply put, this is an approach where an application is structured as a collection of services that are loosely coupled as opposed to a monolithic approach. The system is divided into smaller, independent services that communicate with each other through APIs. Some of the benefits of a microservice architecture are: it is easier to build apps, it improves speed, and it facilitates scalability.
So where do containers come into the equation? According to Docker, a container is “a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.” Because containers package up everything needed to run an application you can put your microservices in dedicated boxes and deploy them independently. This containerized approach negates any problems between languages, libraries, or frameworks and makes them compatible.
Once the concept of containers was born and started to become widely adopted the ability to manage these containers became an important problem to solve. Manually orchestrating containers in an environment is a brutally difficult task. That’s why Kubernetes was created. It is a container orchestration system that automates the deployment, scaling, and management of containerized applications.
Kubernetes was started by Google engineers Joe Beda, Brendan Burns, and Craig McLuckie. Brendan Burns came up with the idea while working in ops at Google. The word Kubernetes stems from a Greek word that means helmsman or pilot. Some people also call it K8s because there are eight letters between the k and the s in the name, similar to other naming conventions for things like observability (011y), or accessibility (a11y). It was first announced at Google Cloud Summit in 2014, but took about a year for version 1.0 to launch on July 10, 2015. Also, in 2015, Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF) and contributed Kubernetes as a seed technology to the CNCF. Today Kubernetes has become the most popular container orchestration platform in the world and is used by thousands of companies.
The best way to understand why you should think about using Kubernetes is to look at real world use cases. The first one we’ll talk about is Reddit’s migration to Kubernetes. Back in early 2016 Reddit’s team was relatively small at 20 engineers. They were deployed on a static monolithic architecture. The infrastructure team at Reddit worked on provisioning and configuring all infrastructure, operating most of the systems, and responding to most incidents. In the middle of 2016 though they decided to scale. They immediately saw problems in scaling development with their monolithic architecture so they decided to move away from the monolith to a service-oriented architecture. As soon as they made that decision they ran into immediate problems they worked on solving. One of the biggest problems was that the engineering teams became too dependent on the infrastructure team. They were able to use Kubernetes and some other processes to empower their engineers to become service owners that are now able to develop, deploy, and operate their service regardless of their engineering background.
Another great example of a company using Kubernetes is Capital One. They wanted to build a provisioning platform to deploy applications on AWS that use streaming, big-data decisioning, and machine learning. Some of these applications handle millions of transactions and are making critical business processes like fraud detection and credit decisions possible. Using Kubernetes they can now provide a basic decisioning app in a couple weeks, instead of a whole quarter. They’ve also saved an enormous amount of money. You can read more about their experience here.
As one of the easiest, fastest, and most effective ways to monitor Kubernetes, Blue Matador is continually producing content to help engineers learn more about the platform. We use it ourselves and have found numerous benefits from implementing it, so you could say we are fans. Our content aims to teach people just getting started, more experienced engineers, and anyone else looking to figure out what Kubernetes is and how it can help.