Strangler-Ansatz
Der Strangler-Ansatz (engl. Strangler Fig Pattern) ist eine Strategie zur schrittweisen Modernisierung oder Ablösung von Altsystemen. Der Name stammt von der Würgefeige (Strangler Fig), die einen Baum langsam umwächst, bis dieser vollständig ersetzt wird.
Strangler-Ansatz
Grundidee
Anstatt ein bestehendes System komplett neu zu entwickeln („Big Bang Migration“), werden einzelne Funktionen nach und nach durch neue Komponenten ersetzt.
Vorgehen
- Bestehendes System bleibt in Betrieb.
- Neue Funktionen werden außerhalb des Altsystems entwickelt.
- Anfragen werden schrittweise auf die neuen Komponenten umgeleitet.
- Alte Funktionen werden nach und nach abgeschaltet.
- Am Ende existiert nur noch das neue System.
Vorteile
- Geringeres Projektrisiko
- Kontinuierliche Auslieferung möglich
- Keine lange Parallelentwicklung
- Schnelles Feedback von Nutzern
- Einfachere Fehlerbehebung
Nachteile
- Höhere Komplexität während der Übergangsphase
- Zwei Systeme müssen parallel betrieben werden
- Routing und Integration können aufwendig sein
Beispiel
Ein Online-Shop besteht aus einem alten Monolithen:
- Produktverwaltung
- Warenkorb
- Bestellung
- Kundenverwaltung
Zuerst wird die Produktverwaltung als eigener Microservice ausgelagert. Danach folgen Warenkorb und Bestellung. Nach und nach schrumpft der Monolith, bis er vollständig ersetzt ist.
Ähnliche Ansätze
1. Big Bang Migration
Konzept
Das alte System wird komplett ersetzt und an einem festgelegten Termin umgeschaltet.
Vorteile
- Keine lange Übergangsphase
- Klare Architektur
Nachteile
- Hohes Risiko
- Große Ausfallgefahr
- Fehler betreffen sofort das gesamte System
Geeignet für kleine Systeme oder wenn nur wenige Nutzer betroffen sind.
2. Parallel Run
Konzept
Altes und neues System laufen gleichzeitig.
Vorteile
- Ergebnisse können verglichen werden
- Hohe Sicherheit
Nachteile
- Doppelte Infrastrukturkosten
- Synchronisation erforderlich
Typisch bei Banken oder Versicherungen.
3. Branch by Abstraction
Konzept
Zwischen alter und neuer Implementierung wird eine Abstraktionsschicht eingeführt.
Anwendung
↓
Abstraktion
↙ ↘
Alt Neu
Vorteile
- Schrittweise Migration
- Weniger Code-Konflikte
Nachteile
- Zusätzliche Komplexität
Häufig in Continuous-Delivery-Projekten.
4. Feature Toggle / Feature Flags
Konzept
Neue Funktionen werden per Schalter aktiviert oder deaktiviert.
Vorteile
- Schnelle Aktivierung
- Einfaches Rollback
Nachteile
- Technische Schulden durch viele Flags
Oft als Ergänzung zum Strangler-Ansatz verwendet.
5. Anti-Corruption Layer (ACL)
Konzept
Eine Übersetzungsschicht schützt neue Systeme vor Altlasten.
Neues System
↓
Anti-Corruption Layer
↓
Altsystem
Vorteile
- Saubere Domänenmodelle
- Entkopplung
Nachteile
- Zusätzlicher Entwicklungsaufwand
Wird häufig in Domain-Driven-Design-Projekten eingesetzt.
6. Event Interception / Event Strangling
Konzept
Statt Funktionen direkt zu ersetzen, werden Ereignisse abgefangen und an neue Services weitergeleitet.
Beispiel:
Bestellung erstellt
↓
Event Bus
↙ ↘
Alt Neu
Geeignet für eventgetriebene Architekturen.
Vergleich
| Ansatz | Risiko | Aufwand | Übergangsphase |
|---|---|---|---|
| Strangler Pattern | Niedrig | Mittel | Lang |
| Big Bang | Sehr hoch | Hoch | Kurz |
| Parallel Run | Niedrig | Sehr hoch | Lang |
| Branch by Abstraction | Niedrig | Mittel | Mittel |
| Feature Flags | Niedrig | Gering | Mittel |
| Anti-Corruption Layer | Niedrig | Mittel | Lang |
| Event Strangling | Niedrig | Hoch | Lang |
Empfehlung
Für die Modernisierung großer Monolithen gilt der Strangler-Ansatz heute als Best Practice, oft kombiniert mit:
- Anti-Corruption Layer zur Entkopplung
- Feature Flags für kontrollierte Freischaltung
- Branch by Abstraction für die technische Umsetzung
Dadurch lassen sich selbst sehr große Legacy-Systeme schrittweise und mit deutlich geringerem Risiko modernisieren.
Community
0 Kommentare
Praxisbeispiele, Rückfragen und Ergänzungen können anderen Lesern helfen, Begriffe und Zusammenhänge schneller einzuordnen.