Strangler-Pattern - Altsysteme schrittweise ablösen
Das Strangler-Pattern ersetzt ein Altsystem schrittweise durch ein neues, während es weiterläuft - geringes Risiko statt Big-Bang-Neubau, nach Martin Fowler.
Das Strangler-Pattern (englisch: Strangler Fig Pattern) ist ein bewährtes Vorgehen, um ein Altsystem schrittweise durch ein neues zu ersetzen, ohne es abzuschalten. Der Begriff wurde von Martin Fowler geprägt und geht auf die Würgefeige zurück: Diese Pflanze wächst um einen Baum herum, übernimmt nach und nach dessen Struktur, bis der ursprüngliche Baum schließlich nicht mehr gebraucht wird.
Das Prinzip
Übertragen auf Software bedeutet das: Man baut das neue System nicht neben dem alten, um es dann in einem großen Umschalttermin zu ersetzen. Stattdessen legt man eine Umleitungsschicht (oft ein API-Gateway oder ein Proxy) vor das Altsystem. Jede Anfrage läuft zunächst weiter ins Altsystem. Nach und nach werden einzelne Funktionsbereiche neu gebaut, und die Umleitung schickt die betreffenden Anfragen an die neue Komponente. Mit jedem Schritt übernimmt das neue System mehr, das Altsystem "verdorrt", bis es am Ende komplett abgeschaltet werden kann.
- Umleitung einziehen: Eine Schicht vor dem Altsystem lenkt Anfragen gezielt um.
- Funktion neu bauen: Ein abgegrenzter Bereich wird als neue Komponente umgesetzt.
- Umschalten: Die Umleitung schickt diesen Bereich an die neue Komponente, der Rest bleibt vorerst beim Altsystem.
- Wiederholen: Bereich für Bereich wandert, bis das Altsystem leer ist.
- Abschalten: Das ausgehöhlte Altsystem wird stillgelegt.
Vorteile gegenüber dem Big Bang
Ein Komplettneubau bei laufendem Betrieb ("Big Bang") entwickelt das neue System oft jahrelang im Verborgenen und schaltet dann in einem riskanten Moment um. Das Strangler-Pattern vermeidet genau diese Risiken:
- Geringes Risiko: Jeder Schritt ist klein und für sich testbar; geht etwas schief, ist nur ein kleiner Bereich betroffen.
- Kontinuierlicher Nutzen: Verbesserungen gehen laufend in Produktion, statt erst nach Jahren.
- Immer lauffähig: Das Gesamtsystem funktioniert zu jedem Zeitpunkt, weil Alt und Neu parallel arbeiten.
- Umkehrbar: Einzelne Umschaltungen lassen sich zurücknehmen, ohne das ganze Projekt zu gefährden.
Risiken und Voraussetzungen
Das Pattern ist kein Selbstläufer. Die Umleitungsschicht muss zuverlässig sein, sonst wird sie selbst zum Engpass. Alt und Neu greifen während der Übergangszeit oft auf dieselben Daten zu, was sorgfältige Abstimmung erfordert. Und die Phase, in der beide Systeme parallel laufen, verursacht vorübergehend doppelten Betriebsaufwand. Automatisierte Tests sind auch hier das Sicherheitsnetz, das jeden Umschaltschritt absichert.
Das Strangler-Pattern ist damit eine der wichtigsten Techniken der Legacy-Modernisierung und ein häufiger Baustein beim Refactor-Weg der Anwendungsmodernisierung. Es hilft zugleich, angesammelte technische Schuld gezielt und ohne Totalausfall abzubauen.
Strangler-Pattern bei Elasticbrains
Bei Elasticbrains setzen wir das Strangler-Pattern ein, um Altsysteme risikoarm und bei laufendem Betrieb abzulösen. Wir schneiden sinnvolle Funktionsbereiche zu, sichern sie mit Tests ab und schalten sie kontrolliert auf die neuen Komponenten um - Schritt für Schritt, bis das Altsystem abgeschaltet werden kann. Mehr dazu auf unserer Seite zur Legacy-Modernisierung.
Weitere Glossarbegriffe
Technische Schuld - was sie kostet und wie man sie abbaut
Technische Schuld beschreibt die Mehrkosten einer schnellen, unsauberen Lösung: Wie ein Kredit fallen Zinsen an. Abbau durch gezieltes Refactoring und Tests.
Legacy-Modernisierung - Altsysteme zukunftsfähig machen
Legacy-Modernisierung ist der planvolle Umbau alter Software, damit sie wartbar, sicher und erweiterbar bleibt - schrittweise statt Big Bang, oft per Strangler.
Anwendungsmodernisierung (Application Modernization)
Anwendungsmodernisierung erneuert bestehende Software systematisch - je Anwendung eine R-Strategie: Rehost, Replatform, Refactor oder Rebuild.