Whether you are a part of an early stage startup, a midsize company or a Fortune 500 enterprise you hear people talking about microservices, containers or Kubernetes. Whether it’s a conversation about software, infrastructure or systems, they are mentioned. But, why the hype?
Before getting into further details, I’ll start by briefly explaining what these technologies are and what is the bigger problem.
infographic by Pavan Belagatti
What is a Container?
According to docker.com, a container is a standard unit of software that packages up the code and all its dependencies, so the application runs quickly and reliably from one computing environment to another.
What is Kubernetes?
According to kubernetes.io, Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a vast, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
What Problems Do They Solve?
Things change at the speed of light. This includes your workload patterns, your team dynamics, the technology stack, and, of course, how you deploy and run your software. Also, things get messy when you try to move software around or make changes.
Containers changed the way how software is packaged and run, giving it the portability it needs to move from one environment to another with minimal challenges. Container orchestration tools such as Kubernetes come to play to help the team manage their containers and infrastructure. It came out of Google as an open-source project in 2014, and it’s leading the market now. What a great technology it is, but it comes with a steep learning curve.
Why Containers? Why Kubernetes?
There are many reasons why companies adopt containers and Kubernetes. In this article, I’ll articulate some of the very common reasons that I heard talking to our users at Magalix and to the developer community.
1- Scale: Like a Boss
The containerized environment allows for easier scalability of the infrastructure. The agile nature of containers and Kubernetes allows users to automate scaling to match fluctuations in workloads easily. I know I made it sound simple while it’s not that easy, but with the right set of tools and expertise, you can reach a significant level of optimization and pay for the infrastructure you need rather than throwing money away with an underutilized infrastructure.
2- Portability: Software in a To-Go Box
Whether you are thinking multi-cloud, hybrid cloud or single cloud, Kubernetes makes it 100 times easier to achieve this strategy. It provides a fantastic layer of abstraction and works with all public cloud providers as well as on-premises, and this is why the rate of adoption by the enterprise has been incredible for the past few years.
3- Faster Time to Market: The Speed of Usain Bolt
Containerization gives you the agility to move much faster with software delivery. This allows you to ship more features faster to market with interruption of other services. This could also translate to cost savings and increased revenues.
4- The Community: The Superheroes
One of the superpowers of containerization is the fantastic community around cloud-native tools. For example, the Slack group for Kubernetes is the largest Slack group in the world with more than 60,000 users there. Have a question? Just post it there or at any of the other forums, and you will get an answer from an expert in no time.
With thousands of contributors with diverse backgrounds, this helped open source communities such as Kubernetes become incredibly innovative.
5- Cost Savings: Cash is King
With all the previously discussed benefits, I’ll conclude with what many people care about the most: cost. Using containers helps you better optimize your infrastructure resources.
Unlike VMs, you don’t need to have an OS on each container; therefore, it’s more lightweight and ultimately runs more apps on fewer resources. Containerization also simplifies maintenance management, which could save you a ton of money in terms of engineer productivity and hours spent on maintenance jobs.