The Rise of the Monolith
Was Kubernetes a 0-interest-rate phenomenon?
Syrus Akbary
Founder & CEO
November 28, 2023
Kubernetes, the container orchestrator, has been great for the Cloud providers. But has it been as good for your company wallet or increased development speed in any way?
If you are not running a multi-billion dollar company, I’ll adventure and anticipate that probably Kubernetes is not good for your use case. For two main reasons:
- The immense amount of complexity that it adds (that now you need to manage, if you don’t leverage that into the Cloud providers)
- The immense amount of dollars that it adds to your bills (if you leverage that into the Cloud Providers)
Please keep reading, I hope by the end of the article you'll be ready to take on the next architecture paradigm...
Why does Kubernetes add so much complexity?
We’ll start with a recap on why we are here, I’ll do a quick summary of what I posted in Hacker News a few years ago.
Kubernetes adds a vast amount of complexity, because it centers scaling abstraction on the wrong unit (the Operating System).
Docker introduced a great level of abstraction and reproducibility over platforms. However, Docker (or OS-based containers) are the most atomic unit of computation on Kubernetes. Which causes centering scaling on the Instance, instead of the Application or even the functions.
This leads to a lot of unintended side-effects. Of which complexity is the most evident since now you need to handle scaling, monitoring and compliance on the upper side of the VM layer (Docker) rather than the inner layer: the functions or the app.
A historic analysis: How did we get here?
About 10 years ago it was incredibly common to develop apps as monoliths, where you just separate the compute (API), from the storage (DB).
But this started changing as soon as Docker made it easy to split the logic not inside the app, but now as new isolated services.
And the microservice architecture was born…
So we started splitting the logic of the monolith into multiple microservices.
Then, because each of the microservices created was indeed a Docker container, the management responsibility (observability, monitoring, meshing, distribution, …) started shifting from the app to the upper layer (the CNCF/Kubernetes layer).
That means, that the logic that used to live in your application as libraries (pre-Kubernetes), now it lives in the layer between your microservices, brewing up a new ecosystem.
An ecosystem where libraries are no longer libraries but microservices, and all your infrastructure becomes a bloated set of spaghetti dependencies, with the microservices now at mercy of CNCF projects to manage them:
The warning signs
Uber was one of the first companies that started warning of this trend once they reached more than a thousand microservices running simultaneously on their infra:
But it was too late to change course…
Cloud providers were incredibly incentivized to keep you using this scheme… is their piggy bank, even after being public recognizing the side-effects of Kubernetes. Why would they change this scheme?
Not only the Cloud providers though, also the CNCF (managing entity behind Kubernetes) is incredibly incentivized to keep this happening: big-tech companies are paying to keep their seats of influence over their child projects. And small companies behind those projects are happy to sell seats of influence for a chance of being used in Big Tech providers.
There’s hope…
However, the new economic panorama and the disappearing 0 interest rate is making a dent on the big-tech strategy.
Right now, if you use Kubernetes it's likely you will be surpassed by leaner companies that can iterate faster and have a better ratio of accomplishments met per dollar spent.
And as such, companies are now starting to look into using a Kubernetes-less strategy for distributing and scaling their apps.
But you don’t need to trust my word, there is an ever-growing list of new computing providers that no longer aim to fit the status-quo and are instead focused on solving the complexity for the user: Cloudflare Workers, Amazon Lambda, Fly.io, Render and even our newly created service: Wasmer Edge (shameless plug here, sorry!).
It’s clear that this trend is not just starting, but it will get much bigger over time.
What do you think? Was Kubernetes worth it for you, now that we can analyze things in retrospective?
Please comment in the Hacker News thread with your thoughts!
About the Author
Syrus Akbary is an enterpreneur and programmer. Specifically known for his contributions to the field of WebAssembly. He is the Founder and CEO of Wasmer, an innovative company that focuses on creating developer tools and infrastructure for running Wasm
Syrus Akbary
Founder & CEO
Why does Kubernetes add so much complexity?
A historic analysis: How did we get here?
The warning signs
There’s hope…
Read more
wasmerwasmer edgerustprojectsedgeweb scraper
Build a Web Scraper in Rust and Deploy to Wasmer Edge
RudraAugust 14, 2023
engineeringwasmer edgeedge computing
The Cloud is dead, long live the Cloud! Announcing Wasmer Edge
Syrus AkbaryJune 15, 2023