This post was part of developer enablement activities at Camunda. My team had a question about Kubernetes benefits, and the content of this post was the answer I wrote to that question.
What are the benefits of using Kubernetes?
---
1. Why was Kubernetes created?
First, we need to know the problem that Kubernetes is trying to solve.
When Docker containers were introduced in 2013, and many companies adopted the new technology, everything changed. Literally, everything, from how the code works to deployment, monitoring, and operations.
Hence, the need for a new system emerged to deal with this unique ecosystem. And that was exactly what happened. Many systems were born to solve this problem ... "How to manage the containers in production?", which implies "**How to create and manage Cloud-native software?**".
Many systems entered the race, but Kubernetes was the winning horse of that race! Since then, Kubernetes (aka K8s) has been the leading platform for managing containers.
2. What are Kubernetes' features?
2.1 Open-source!
Because K8s is an open-source project, it's been grown so fast and supported by many big companies like Google, Red Hat, IBM, Microsoft, VMware, and many others. The fact that K8s is an open-source project affects and touches many other features.
2.2 No vendor lock-in
Mainly because it's open-source, anyone can use it anywhere, on-premise, private Cloud, public Cloud, or even on your laptop! So K8s can work on multi-cloud and be installed and migrated from one provider to another easily (compared to many other systems).
2.3 Maturity
As mentioned, K8s was the winning horse of the container orchestration race, and many companies have adopted it in production workloads. Also, as an open-source project, K8s has a mature steering committee. So it's less likely to have crazy changes affect the project (or changes that serve some companies' goals).
2.4 Big community and ecosystem
For those historical reasons, now K8s is considered the leading open-source platform to manage containers, and it's used everywhere. Thus, no need to reinvent the wheel for common use cases but focus on business logic. And when help is needed, it's easy to find it.
2.5 Extensible architecture
One of the most outstanding features of K8s is extensibility! There is a clear and straightforward way to extend K8s. No need for crazy hacks nor to have external systems to support custom use cases (many other projects have failed just because of that!) And for the exact same reason, we don't need to do everything ourselves, and we can use what the community and other companies provide to extend K8s.
3. How do Kubernetes help us?
All of that sounds like "features" more than "benefits" right?
Using Kubernetes, those features are translated to the following benefits:
- Support a lot of common ops use cases out of the box.
- Easy to automate manual tasks and processes.
- Increased productivity and speed up the development cycle.
- Help to manage massive infrastructure with less effort.
- Efficiency to manage infrastructure and reduce costs.
- Scalability and modularity are supported easily.
---
Finally, check out this interesting report about world container usage.