Zum Inhalt springen
Blocify
All posts
Entwicklung6 Min. Lesezeit

Das Strangler-Muster in der Praxis

Ein System zu ersetzen, das nicht stehen bleiben darf, ist vor allem Routing und Abgleich. Die Neuentwicklung ist die leichtere Hälfte.

Jede Altsystem-Ablösung beginnt mit demselben Vorschlag: das Neue bauen, kurz parallel fahren, dann umschalten. Das überlebt fast nie den Kontakt mit einem Betrieb, der vierundzwanzig Stunden am Tag läuft und die Disposition nicht für ein Wochenende anhalten kann.

Das Strangler-Muster ersetzt den großen Schalter durch viele kleine. Eine Routing-Schicht sitzt vor beiden Systemen und entscheidet je Anfrage, je Region oder je Kunde, welches übernimmt. Sie verschieben den Verkehr in Scheiben, und das alte System schrumpft, bis es leer ist.

Die Routing-Schicht ist der ganze Trick, und sie muss stumpf sein. Ein Feature-Flag je Scheibe, ohne Deployment änderbar, mit warmem altem Pfad. Ein Rollback ist ein Schalterumlegen — damit hört die Entscheidung, eine Scheibe zu verschieben, auf, ein Karriererisiko zu sein, und wird ein Dienstag.

Den Abgleich lassen Teams aus. Solange beide Systeme laufen, müssen Sie ihre Ausgaben laufend vergleichen — gleiche Eingaben, gleiche Ergebnisse — und bei Abweichung mit genug Details alarmieren, um handeln zu können. Auf einer Frachtplattform hat das eine Rundungsdifferenz beim Treibstoffzuschlag gefunden, die sonst erst bei der Monatsrechnung aufgefallen wäre.

Die unangenehme Wahrheit ist, dass Sie zwei Systeme länger betreiben werden als geplant, und dass jemand die Disziplin des Fertigwerdens verantworten muss. Der Fehlermodus ist keine gescheiterte Migration, sondern ein dauerhafter Mischzustand, den niemand zu beenden wagt, weil die letzten zehn Prozent der schwierige Teil sind.

Richtig gemacht ist das Ergebnis unspektakulär. Auf der genannten Plattform kostete die Umstellung null Stunden Ausfall, weil es nie einen Moment gab, in dem etwas eingeschaltet wurde. Die letzte Region wechselte einfach, und die alte Datenbank bekam keinen Verkehr mehr.

Written by Fisnik Murati — Chief Technology Officer

Related services

More from the blog