backgroundradial

The Rise of the Monolith

Was Kubernetes a 0-interest-rate phenomenon?

syrusakbary avatar
syrusakbary
Syrus Akbary

Founder & CEO

docker

November 28, 2023

arrowBack to articles
Post cover image

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:

CNCF complex landscape

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 avatar
Syrus Akbary
Syrus Akbary

Founder & CEO

Read more
Post cover image

wasmerwasmer edgerustprojectsedgeweb scraper

Build a Web Scraper in Rust and Deploy to Wasmer Edge

RudraAugust 14, 2023

wasmer edge

Wasmer Edge (Beta) is now Generally Available

Syrus AkbaryOctober 5, 2023

engineeringwasmer edgeedge computing

The Cloud is dead, long live the Cloud! Announcing Wasmer Edge

Syrus AkbaryJune 15, 2023

javascriptSpiderMonkeywasmer edge

Announcing WinterJS

Syrus AkbaryOctober 27, 2023