The world’s leading publication for data science, AI, and ML professionals.

Five good reasons for using Kubernetes

Don't be scared about Kubernetes, learn 5 good reasons for embracing it

Kubernetes is the leading solution for container orchestration. In this article, we will learn 5 simple reasons for using it. These reasons are technical and strategic. In fact, we will learn that using Kubernetes we can not only solve technical problems but also helps in cloud transformation.

Choosing only 5 points was quite hard, considering all the benefits of using Kubernetes. Anyway, you could reply to this post and add your own motivation.

Made with ❤️ from the author
Made with ❤️ from the author

1. Free Cloud Solution

Having something for free is not required in enterprises, but it is welcome. All we know that free is just a utopia, nothings cames for free. But with Kubernetes, we have something without any licensing costs. That’s a great starting point. The good quality of Kubernetes is that its "free of charge" nature remains when we migrate to the cloud. In fact, most of the bigger public vendors give us the Kubernetes service for free, applying pricing only for the resources we will use. That’s ethic and convenient. So, even if Kubernetes is free of charge but not free of costs, we will be happy to pay for the resources we use.

I found it a very democratic solution: you can host on-prem, taking in charge hosting and maintenance, or going cloud. In the first case, you will pay your hardware and the Maintainance of the full system (datacenter and Kubernetes). Otherways, you can migrate your solution into the cloud. Here you have only the resource pricing. This lets you start implementing your solution and be free to decide where to place, basing on your TOC (Total Ownership Cost).

So, Kubernetes if free, and this freeness brings to your freedom: the freedom to decide where to deploy based on your needs.


2. Same solution for all the problems

Kubernetes allows you to manage all the project in the same way. This impact on the set of skill you have to mature inside your organization. When you are working in a tech company that manages just one product, everything is easy. You define the stack, you learn it, and you are set. But what when you have multiple projects to deliver? Or you work in an IT service company where each customer has differents peculiarities?

Well, Kubernetes helps a lot for keeping a standard layer across all the project.

These standards come mostly from the adoption of containers, that let us manage applications abstractly. So, most of the merit is to Docker, but Kubernetes offers us a predefined solution to deploy them.

Summarizing, you can have a common way **** to proceed on each project and this speed up your work because you don’t need to study a new technical solution all the time.


3. A new way to do the same things

Kubernetes is a great tool because it allows us to break out our comfort zone without leaving it. It seems a contradiction but this is what can happen. Most of the sysadmins used virtual machines and data centres for implementing application infrastructures. What happens in Kubernetes is very similar, because you define all the network details, the services (that take the place of containers or VM) and the deployment process. In poor words, you can do the same things, but without the pain of physically fighting with networking, deployments and so on.

Using Kubernetes you can handle your cluster like it was a server farm, but only using configuration files.

You can recreate logical parallelism between servers and your cluster components. Instead of virtual machines, you have pods and services. Same thing for networking and storage. This ensures a deep control of components but using hi-level tools.


4. Architectural advantages

Kubernetes brings dynamism; it makes you architecture more responsive to the change. It reduces global sysadmin costs and improves the service quality that would hard to a level that would be hard to achieve differently. The advanced configuration of Kubernetes itself can overcome many traditional issues like networking and data protection.

Here’s a list of architectural benefits from Kubernetes:

  • Scalability. Kubernetes scales by design. The service decouples resources you host on it, so, when the load became hight, you just have to buy more resources. All you have to do to support this process is to start using containers on your development. Then, the scaling policies are just a money question.
  • Transparency. Each container has a single responsibility. All relationship between components is mapped black on white into configuration files. As a problem occur, it will be clear where to look.
  • Time savings. The process is straightforward. The process is automated by design, and this is remunerative in the long term.
  • Version control. Using container repository, your application is versioned. Moreover, just by versioning Kubernetes config files, you can also version the infrastructure.

5. Simplified DevOps and performance

When we are talking about the platform, we need to include the deployment part. Nowadays, any application cannot go live without a good automate DevOps solution. Well, Kubernetes is straightforward to manage because automates most of the process. This simplification brings near to a NoOps solution. This configuration reduces the friction between dev and operation teams and makes clear the separation of responsibility, with full transparency.

Some other cherries on the cake:

  • Horizontal autoscaling. Kubernetes can scale automatically, jus by adding physical resources.
  • Clever updates. When you change a container, the old one is replaced cleverly. The pod will be active until they finish to serve the pending requests.
  • No development caveat. Every containerizable software can be deployed in a click. This means your dev doesn’t have to learn new things.

Conclusions

Kubernetes is now the leading solution for container orchestration. It is easy to learn and has some tangible benefits. Be free of charge may be a pro, but it has to be chosen for all other benefits that bring.

Kubernetes can run on every public cloud. This doesn’t mean that you can change providers every day, because each cloud provider has some different small detail, and migration is not always like a clicking a button (even if you can create a script that does all the job for you). Anyway, if you stay on the standard, this makes possible a move with low effort and low downtime. That’s a good compromise about vendor lock-in.

Advantages Recap

What advantages brings Kubernetes in few sentences:

  • great compatibility with the past
  • great control about what happens
  • less vendor locking.
  • ability to fine-tune every single component
  • On-Prem Option
  • Prediction of costs.

Five reasons are not enough

I’m very sorry for what I missed. Compressing all the advantages of Kubernetes in only 5 point is quite hard, and I had to make some choice. For example, I left out the vendor lock-in that may be important for many companies.

What I ask if you come here and you have something to add is to reply to this article and add your own motivation about why you adopted Kubernetes.

Insights and references

I already talk about Kubernetes in my past articles; I can suggest some of them for deeper insight about Kubernetes.


Related Articles