Migration mit Strangler Fig
Grundprinzip
Das bestehende System wird schrittweise umwachsen,
statt es in einem Big-Bang neu zu bauen.
Der neue Teil übernimmt Stück für Stück Funktionalität,
bis der alte Teil überflüssig wird.
Der Name stammt aus der Natur:
Eine Würgefeige wächst um einen bestehenden Baum herum,
bis dieser verdrängt ist.
Ziel
- Risiko minimieren
- Business-Kontinuität sichern
- Schrittweise Ownership aufbauen
- Migration in kontrollierbaren Inkrementen durchführen
Strangler Fig ist keine Refactoring-Technik.
Es ist eine Evolutionsstrategie für Architektur.
Architekturelles Prinzip
Kernaussage:
- Ein zentraler Routing-Punkt entscheidet
- Alt- und Neuwelt existieren parallel
- Migration erfolgt kontrolliert über Traffic-Steuerung
Typische Schritte
1️⃣ Domäne und Schnittgrenzen definieren
- Klare Fähigkeit wählen (kein technischer Layer!)
- Abhängigkeiten identifizieren
- Ownership klären
Fehler: „Wir extrahieren das User-CRUD.“
Richtig: „Wir extrahieren die Fähigkeit X mit klarer Business-Verantwortung.“
2️⃣ Thin Slice wählen
Eine vertikale Scheibe mit:
- klar messbarem Nutzen
- begrenzter Abhängigkeit
- überschaubarem Risiko
Kein „Infrastruktur-Service“ zuerst.
3️⃣ Anti-Corruption Layer (ACL)
Der neue Service darf das Altmodell nicht übernehmen.
Der ACL:
- übersetzt Datenmodelle
- kapselt Legacy-Logik
- verhindert implizite Kopplung
Ohne ACL entsteht:
Verteilter Monolith statt Evolution.
4️⃣ Neue Fähigkeit vollständig bauen
Nicht nur Code:
- Monitoring
- Logging
- SLOs
- Rollback-Strategie
- Deployment-Pipeline
Migration ohne Betriebsreife erzeugt technische Schulden.
5️⃣ Traffic schrittweise umlegen
- Canary Releases
- Prozentuale Umschaltung
- Shadow Traffic
- Feature Toggles
Stabilität ist messbar, nicht gefühlt.
6️⃣ Altfunktion entfernen
Erst wenn:
- Gleichstand erreicht
- SLOs stabil
- Rollback getestet
- Incidents analysiert
Alten Code aktiv löschen – nicht „deprecated“ liegen lassen.
Exit-Kriterien pro Schritt
- Funktionaler Gleichstand für den migrierten Scope
- SLOs für neue Strecke eingehalten
- Observability vollständig
- Incident- und Rollback-Pfad getestet
- Altcode deaktiviert oder entfernt
- Ownership klar beim neuen Team verankert
Typische Fehler
- Migration rein technisch, ohne Team-Ownership
- Zu große Schnitte („Wir extrahieren gleich alles“)
- Kein Routing-Layer, sondern direkter Zugriff
- Shared Database bleibt Integrationsweg
- Alter Code wird nie gelöscht
- Mehr neue Services als aktive Teams
Organisatorische Realität
Strangler Fig funktioniert nur, wenn:
- Teams langfristig Ownership übernehmen
- Plattform-Reife vorhanden ist
- Monitoring und Resilienz mitziehen
Ohne organisatorische Anpassung bleibt es ein Parallelbetrieb.
Wann Strangler sinnvoll ist
- Großer Legacy-Monolith
- Hoher Änderungsdruck
- Wunsch nach schrittweiser Modernisierung
- Kein Budget für Big-Bang-Neubau
Fazit
Strangler Fig ist:
- inkrementell
- risikominimierend
- evolutionsorientiert
Es ist kein Migrations-Shortcut, sondern ein diszipliniertes Architektur-Vorgehen.
Erfolgreich ist es nur, wenn Technik und Ownership gemeinsam wachsen.