Strangler-Pattern - Altsysteme schrittweise ablösen

Das Strangler-Pattern (Strangler Fig Pattern) ist ein Vorgehen, um ein Altsystem schrittweise durch ein neues zu ersetzen, während es weiterläuft. Neue Komponenten übernehmen nach und nach einzelne Funktionen; das Altsystem "verdorrt", bis es abgeschaltet werden kann. Der große Vorteil gegenüber einem Big-Bang-Neubau: geringes Risiko, kontinuierlicher Nutzen und jederzeit ein lauffähiges System. Der Begriff geht auf Martin Fowler zurück.

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.

Weitere Glossarbegriffe

Technische Schuld - was sie kostet und wie man sie abbaut

Technische Schuld (Technical Debt) beschreibt die zukünftigen Mehrkosten, die entstehen, wenn eine schnelle, unsaubere Lösung heute gewählt wird statt einer sauberen. Wie bei einem Kredit fallen "Zinsen" an: Jede weitere Änderung wird langsamer und riskanter. Ursachen sind Zeitdruck, fehlende Tests oder veraltete Technik. Abbauen lässt sich technische Schuld durch gezieltes Refactoring, Tests und kontinuierliche Pflege - nicht durch einen einmaligen Kraftakt.

Legacy-Modernisierung - Altsysteme zukunftsfähig machen

Legacy-Modernisierung bezeichnet den planvollen Umbau bestehender, in die Jahre gekommener Software, damit sie wartbar, sicher und erweiterbar bleibt. Statt eines riskanten Komplettneubaus (Big Bang) werden veraltete Technik, Wartungsstau und fehlende Schnittstellen schrittweise abgebaut - oft mit dem Strangler-Pattern. Ziel ist ein System, das weiterhin den Geschäftsbetrieb trägt, aber neue Anforderungen wie Integrationen oder KI-Funktionen aufnehmen kann.

Software-Wartung - mehr als Fehler beheben

Software-Wartung ist die kontinuierliche Pflege einer Anwendung nach dem Go-live. Sie umfasst weit mehr als das Beheben von Fehlern: Man unterscheidet korrektive, adaptive, perfektive und präventive Wartung. Dazu gehören Security- und Dependency-Updates ebenso wie kleine Verbesserungen und das Vorbeugen künftiger Probleme. Ohne Wartung altert Software, häuft technische Schuld an und wird zum Sicherheitsrisiko - oft im Rahmen eines Retainers organisiert.