Kubernetes is an orchestration tool that makes the packaging and running of applications that are based on containers much easier to deploy, and then manage once deployed.
The containers that Kubernetes manages are based on the same fundamental idea as shipping containers. Shipping containers make it easy to package goods and move them around in a standard way that fits on any transport that is designed to support them, without any changes.
Similarly, software containers let you create a container with your application code and everything you need to run it. You can then "ship" that container to any laptop, server, virtual machine or cloud provider that can run containers and will be safe in the knowledge that, like a shipping container, it will just be able to be loaded without any changes to your container or the system running it.
Where Kubernetes comes in, is that a container is just one thing. It does not know how much load it is under, how many copies for high availability it has or even if it is running at all! Kubernetes will put containers in multiple locations to cope with failure, it will add more containers and redirect users when load increases, it will reduce containers when things get quieter and even manage dependencies by making sure the right services come up in the right order.
Kubernetes makes the goal of having small and independent services that are less complex than a single large system a reality; change is easier to control, things can grow where they need to in much smaller steps, developers can develop, test and release quicker while services can be re-used more readily.
What does that mean for your business? You can:
- React faster to business opportunities, whether you’re launching a new product or improving an existing business process. It’s easier and faster to create, update and deploy when you are only changing a small part of the environment
- Release more reliable services to your customers. With an environment where each service is largely responsible for itself, you can test more frequently and more broadly, catching errors quicker and getting to working solutions faster.
- Be confident your applications are “always on”. Kubernetes manages scale and availability, automatically moving, growing and shrinking application capacity to keep running even if the underlying infrastructure starts to fail.
- Avoid vendor lock-in. Kubernetes is open source and runs in almost any cloud or data centre, so you’re free to move your applications to another cloud provider or even back on-premises in the future with much less work than moving traditional servers and infrastructure.
- cut your costs. Kubernetes typically lets you run with fewer resources than with traditional virtual machines. Containers are smaller so the density you can run on a single server is much greater, and because a container tends to have a smaller incremental load when things do start to scale. Niantic—the company behind games such as Pokemon GO, with millions of users—cut its infrastructure costs to one-fifth of the gaming industry average, while being able to rapidly scale new games, by moving to containers on Google Cloud Platform (GCP).
With all those benefits, it’s no wonder more than half of Fortune 100 companies are already using Kubernetes in some form. Google itself has been using Kubernetes and its predecessors for more than a decade to run billion-user applications like Gmail and YouTube. Many other organisations are taking advantage of Kubernetes through Google Kubernetes Engine, a fully managed Kubernetes service running on top of Google that allows you to quickly deploy a fully managed, auto-scaling and highly secure container environment.
Updated August 2019
First published January 2019