Should Startups Use Kubernetes?


“Startups and Kubernetes is not a fit” – that is at least what many people will say. And they have good reasons for saying such things. One main characteristic and also a benefit of startups is that they are agile and flexible making it possible to iterate fast and to try many different things at an unrivaled pace. Kubernetes, however, is a very complex technology and it necessarily takes a while to understand and master it. For this, adopting Kubernetes at a very early stage of a startup will almost always slow down the development speed of your startup, which is clearly not what is desired.
However, most startups aspire to and often have to scale fast, especially if they raised venture capital. To scale fast, it is obviously necessary to be scalable and this means, among many other things, to have the technological setup that is able to handle a large number of users. Kubernetes, originally developed by Google as successor of its internal Borg system, is a technology that allows exactly this. With Kubernetes, it is possible to scale relatively easily and to provide your software at global scale. For such tasks, Kubernetes has become the standard technology that all major cloud providers already fully support.
For this, I believe that it is wrong to say that startups should never even look at Kubernetes. It is at least worth considering, so let’s take a closer look at potential benefits of Kubernetes for tech startups.
For a general analysis of the advantages and disadvantages of Kubernetes, also take a look at my other post.
Overall, with the clear trend towards Kubernetes by many significant players in the software world, a startup should expect to adopt Kubernetes at some point at the latest when it reaches a massive scale. For this, it is more a question of when than if to use Kubernetes.
You can see the adoption of Kubernetes as an investment: You will face some upfront cost associated with its adoption, e.g. training your engineers, necessary changes of the existing software and thus reduced short-term productivity. However, over time, you will earn “interest” for this investment such as more stability for your system, shorter release cycles or lower computing resource cost.
As with every investment, you now need to analyze if it is worth investing and if yes, when to invest. Assuming that at some time you need to invest in the Kubernetes adoption to be able to scale further, you should keep in mind for your evaluation that the cost for the adoption increases over time. This is because your company gets bigger and bigger, you have more engineers that need to be trained, a more elaborate software that needs to be adapted and more users that need to be migrated to a new system. Tinder, as an example, moved to Kubernetes when it already reached significant scale and it then took them 2 years to finish the whole migration. If you are still working on pretty much a green field, it will be much faster and easier.
Still, an increasing price for the investment does not necessarily mean that you should invest immediately. You rather have to compare the price to your opportunity cost, i.e. the cost associated by investing your time and money in adopting Kubernetes instead of on focusing on other parts of your business. It can thus be very hard to exactly determine when to take this step but I will try to give you a recommendation for what you should consider and what is the best timing from my point of view.
For most startups, time is a very scarce resource. You may have a short runway and need to reach some milestones to get the next funding or fear that competition may catch up with you. As described, adopting Kubernetes will cost some time that you will hopefully get back later by improved productivity. For this reason, I believe you should not adopt Kubernetes when time is most critical and this is typically in the very early stages of a startup.
If you are still looking for product-market-fit or even the right idea, you should focus on product validation and build MVPs as fast and simple as possible to get feedback and maybe some initial traction. Some people even recommend to not even build anything at this point and just get user feedback for ideas, e.g. by asking potential customers or having a website with a waiting list for interested users. In any case, this stage of the startup life is usually too early to look at Kubernetes as it will probably distract you and its benefits of scalability and stability are not relevant yet.
Once you found product-market-fit, the next step for startups is to scale. At this point, Kubernetes becomes interesting and relevant even if it is possible to master the initial scaling phase with other technologies. Especially for technology-focused startups, I believe this is a good time to start with Kubernetes as the transition is still manageable and you do not have a too complicated system yet.
Here, you will face the challenge to actually make the investment to rebuild parts of your system as it is very easy to find reasons to postpone it until after the next round of financing, the next feature release or any other artificial milestone. However, delaying this step further and further makes it only harder to make and you will build an ever-increasing legacy system that becomes more and more difficult to migrate later on.
I won’t go into much technical detail how to adopt Kubernetes here, but there are some general recommendations that will help you to do it with the right approach.
My company, for example, provides the tool DevSpace, that helps you to streamline your dev process and allows software development directly in Kubernetes without much previous knowledge.
My company also provides a commercial tool called loft, that allows developers to create namespaces in a shared Kubernetes cluster on-demand, e.g. for machine learning/AI experiments, for testing with CI/CD and GitOps or to directly develop inside a Kubernetes cluster.
Overall, you should never adopt Kubernetes because it is “cool” and everybody does it. You should rather find the right point in time and have a clear strategy why and how you want to adopt it. When you go for it, use simple solutions with open source software, existing tools and public clouds at the beginning to avoid as many mistakes as possible.
If you have a tech startup and aspire to scale it massively, you should expect to encounter Kubernetes at some point. Especially for scaling purposes, it is a very solid, future-proof solution and thus might be the last infrastructure technology you will ever need. Since it becomes more and more effort to adopt Kubernetes if your system grows, it often makes sense to invest some time into it relatively soon after you found product-market-fit. At the beginning, you should try to keep it as simple as possible and use pre-made solutions such as open source software and public clouds whenever possible.
Photo by Startup Stock Photos from Pexels
Deploy your first virtual cluster today.