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.

Kategorie:Softwareentwicklung

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.

  1. Umleitung einziehen: Eine Schicht vor dem Altsystem lenkt Anfragen gezielt um.
  2. Funktion neu bauen: Ein abgegrenzter Bereich wird als neue Komponente umgesetzt.
  3. Umschalten: Die Umleitung schickt diesen Bereich an die neue Komponente, der Rest bleibt vorerst beim Altsystem.
  4. Wiederholen: Bereich für Bereich wandert, bis das Altsystem leer ist.
  5. 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.