3 reasons why I recommend Kubernetes for pre-growth start-up

I've been operating the Kubernetes cluster in my company since I joined. Let me share my opinion about why I recommend Kubernetes to pre-growth start-up companies.

Before I explain, I'm not crazy about Kubernetes. I understand to choose some other ways, depending on the company, the business environment, the team philosophy, and so on.

About two years ago, I joined the current start-up company. First of all, I discuss with our development engineers what's the best way to grow our service? As a result, I decided to use EKS which is a managed Kubernetes service by AWS for the following reasons.

  • I already learned about Kubernetes when I worked in my previous company.
  • The engineers who already joined before were trying to containerize.
  • I explained the advantages of Kubernetes to the engineers and they agreed with that.
  • They have to move their system to AWS.

As you know, it's difficult to learn Kubernetes so I don't recommend it to people who haven't learned yet. And also, it depends on the company or team member's skill, there's some other option like ECS, docker swarm and more.

So, I've operated the Kubernetes cluster for about 2 years. And these are its advantages.

  1. Scalability
  2. Container orchestration tool will be needed soon
  3. Portability

Let me explain one by one.

First, there's a possibility that start-up companies will grow rapidly and suddenly. At the time, the infrastructure team should avoid becoming a hindrance to growth. When the system scales to 100x bigger, if it takes time 100x to set up, that's kind of a horrible system. And also, when it's an emergency, scale the system by infrastructure engineer only by adding nodes, pods, and scaling up DB. On the other hand, modify the application to fit Kubernetes, it'll be scalable because it's necessary to eliminate all dependencies on the running server.

Second, sooner or later some container orchestration tools will be necessary. It will be hard to move to Kubernetes from another environment like docker-compose because it's different terminology and philosophy. So it's better to use and get used to it before growth.

Last, sometimes the start-up company will need to move their system to the other cloud provider when they get some monetary support or because of some investor's intention. At that time, if the servers are not reproducible, it must be a nightmare. Of course, if they use some cloud provider's managed service like RDS, it will take time but if most of the applications are running on the Kubernetes cluster, it will be helpful. Even though the provider's managed orchestration service like ECS is good, it will bring hard work in that situation.

As I explained above, I highly recommend Kubernetes to pre-growth start-up companies but it's conditional. And as I said at the beginning, this is not the only way in every environment and organization. So I understand some people disagree with my option.