Loading...

My War on Kubernetes

5. März 2024
2 Minuten Lesezeit
Beitrag teilen:

Hi,

Ich muss direkt ein Geständnis machen: Ich bin auf Kriegsfuß mit Kubernetes.

Dabei trifft Kubernetes gar keine Schuld. Meine Projekte sind es. Beziehungsweise die Teams, in denen ich mich bewege.

Es sind Teams mit maximal 30 Software-Entwicklern, noch ein paar Business-Menschen und Designer oben drauf. Aber es sind nicht soooo viele Entwickler.

Diese Teams brauchen kein Kubernetes!

Nein. Noch deutlicher: Diese Teams können kein Kubernetes halten!

“Aber Marcus. Das ist doch kein Problem. Ich habe das doch schon bei XY gemacht, und es war so einfach, wenn man sich an YX hält und das ZY-Prinzip einhält.”

Ja. Ich meine auch nicht den technischen Aspekt. Du brauchst nur ein paar relativ clevere und motivierte SRE/Admins/DevOps, und dann wird der technische Teil von Kubernetes wenig Probleme machen. Oder zumindest nicht mehr als die klassische Administration.

Doch das eigentliche Problem mit Kubernetes ist der sprunghafte Anstieg der Gesamtkomplexität.

Plötzlich MUSST du gitOps praktizieren. Plötzlich MUSST du blue/green Deployment machen. Plötzlich MUSST du die Abstraktion BareMetal->VM->Node->Pod->Container->JVM verstehen. Plötzlich MUSS deine Applikation stateless sein.

Du betreibst kein Kubernetes mit einer einzelnen Komponente. Du hast auf einen Schlag haufenweise Komponenten in deinem System. Und jede ist ein mögliches Bottleneck. Jede Komponente in deinem System ist ein Single Point of Failure.

Natürlich weißt du das. Du bist ja von Kubernetes überzeugt. Also muss alles redundant betrieben werden. Also noch mehr Komponenten im System. Wie mache ich eigentlich eine Datenmigration mit redundanten Systemen? Die Frage muss ich mir auf einmal stellen.

All das sind natürlich lösbare Probleme. Ich habe sie schon oft gelöst. Es gibt haufenweise Literatur dazu.

Aber brauchst du das wirklich? In den Teams von 30 Software-Entwicklern oder weniger brauchst du das nicht. Behaupte ich.

Wenn du “nur” 30 Entwickler beschäftigst, dann hast du einfach noch keinen so großen Use-Case, der ein Kubernetes mit all seiner Komplexität rechtfertigt. Du hast ganz andere Sorgen. Du musst dein Produkt an den Start bringen. Du musst es am Markt groß machen. Du hast konkrete Feature-Wünsche, die umgesetzt werden müssen.

Dir geht es noch nicht darum, ein System zu bauen, an dem hunderte von Entwicklern arbeiten können. Dir geht es noch nicht darum, ein System zu bauen, das vollständig ohne Downtime auskommt. Du brauchst noch kein System, das mit Teilausfällen klar kommt.

Dein größtes Problem ist, den Bedarf deiner Kunden zu decken. Darauf musst du dich konzentrieren. Darauf musst du all deine Ressourcen investieren. Kubernetes ist diese Investition noch nicht wert.

Rule the Backend,

~ Marcus

Top