DEV Community

Cover image for When and why you should use Kubernetes?
Sotiris Kourouklis
Sotiris Kourouklis

Posted on • Updated on • Originally published at sotergreco.com

When and why you should use Kubernetes?

Some of you, when you hear the word "Kubernetes" or "K8S," might think it's a complex application only large enterprises use. While that is often the case, smaller companies can also benefit from using K8S.

We are going to explore situations where you might need Kubernetes and why.

Prerequisites

Before we dive into where Kubernetes (K8S) is useful, it's important to note that setting up a cluster can be challenging for those without experience in Linux or DevOps.

This is where platforms like Vultr, Digital Ocean, or AWS come into play, as they assist in setting up the infrastructure. However, Kubernetes still requires special configuration files, and monitoring your cluster might also require a platform like Rancher.

Despite the steep learning curve, once you become proficient, Kubernetes can help you solve many problems.

Use Cases

  • Digital Agencies: If you have multiple clients you might know that managing them can be tough.

  • Subdomains: If you need Containerization K8S will be a life-saver for. Companies like Shopify, Hashnode and others.

  • Financial Services: In industries where security and compliance are crucial, such as banking or insurance, Kubernetes can provide robust isolation and security features.

  • Video Streaming Services: For platforms that offer video streaming, Kubernetes helps in managing the distribution and scaling of video content to a large number of users simultaneously.

Now let's explore some benefits of K8S you might find useful.

High Availability

If you run an agency with multiple clients who need high uptime throughout the year and constant monitoring, Kubernetes (K8S) might be the right solution for you.

Firstly, with proper setup, you can achieve as high as 99.9999% uptime. For those unfamiliar, four nines indicate very high reliability. This is similar to how Shopify maintains high uptime, ensuring that stores rarely go offline.

In a single cluster, if you have three small nodes, each with 4GB of RAM, your application will almost never stop working.

Containerization

This is one of the most important features of K8S. Let's say you create an application like Hashnode where each user has their own subdomain. Putting every user in the same database might not be the best approach.

Firstly, if you have a single application for all users and one part gets hacked or fails, all other parts will likely go down as well.

By having a unique API, database, and frontend for each user, in the worst case, you will only experience partial downtimes in your application.

Even if broken code is released into production, it will not be deployed across all stores immediately. Instead, it will be gradually deployed to some stores, allowing you to ensure that nothing breaks.

Self-Healing

Kubernetes has self-healing capabilities. When one of your containers fails, it automatically spins up a new one. Thanks to the architecture with multiple nodes, you won't experience downtime. The load balancer will simply redirect all traffic to a working node.

Conclusion

In conclusion, Kubernetes offers a robust solution for managing complex applications across various industries. Whether you're running a digital agency with high uptime requirements, a financial service needing secure transactions, or a video streaming platform requiring scalable distribution, Kubernetes can significantly enhance your operational capabilities.

Its features like high availability, containerization, and self-healing not only ensure continuous service but also improve the overall security and efficiency of your applications.

Thanks for reading, and I hope you found this article helpful. If you have any questions, feel free to email me at kourouklis@pm.me, and I will respond.

You can also keep up with my latest updates by checking out my X here: x.com/sotergreco

Top comments (0)