Replatforming
Migration einer Anwendung auf eine neue Plattform mit geringfügigen Codeanpassungen zur Verbesserung von Betrieb und Skalierung.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Unvollständige Abhängigkeitsanalyse führt zu Laufzeitfehlern
- Kostenüberschreitungen durch ungeplante Cloud-Ressourcen
- Ungenügendes Testing verursacht Regressionen im Betrieb
- Beginnen mit nicht-kritischen Komponenten
- Automatisierung und Tests früh einbinden
- Monitoring und Metriken vor Cutover bereitstellen
I/O & Ressourcen
- Architecture- und Deployment-Dokumentation
- Abhängigkeits- und Leistungsanalyse
- SLA- und Compliance-Anforderungen
- Aktualisierte Plattform-Architektur und Deploymentscripts
- Test- und Rollback-Pläne
- Monitoring- und Observability-Konfiguration
Beschreibung
Replatforming bezeichnet die Migration einer Anwendung auf eine neue Plattform mit minimalen Codeänderungen, um Betriebs- oder Skalierungsanforderungen zu verbessern. Diese Methode fokussiert auf Plattformoptimierungen (z. B. Container, PaaS oder Cloud-Services) ohne vollständiges Re-Engineering. Sie reduziert Risiko und Zeit gegenüber kompletter Neu-Entwicklung.
✔Vorteile
- Schnellere Migration im Vergleich zu kompletter Refaktorierung
- Reduziertes Risiko bei gleichzeitiger Plattformverbesserung
- Verbesserte Betriebs- und Skalierungsfähigkeit
✖Limitationen
- Begrenzt, wenn tiefere Architekturprobleme bestehen
- Nicht geeignet für umfangreiche funktionale Neuentwicklungen
- Kann technische Schulden maskieren statt lösen
Trade-offs
Metriken
- Time-to-migrate
Gesamtdauer von Planung bis produktivem Cutover.
- Fehlerquote nach Cutover
Anzahl der Incidents pro Zeit nach Migration.
- Betriebskostenveränderung
Vergleich der laufenden Kosten vor und nach Replatforming.
Beispiele & Implementierungen
Containerisierung einer internen API
API wurde ohne Funktionsänderung in Container überführt und in vorhandene CI/CD-Pipeline integriert.
Wechsel zu PaaS für Hintergrundprozesse
Batch-Jobs wurden auf verwaltete PaaS-Dienste portiert, Administration reduziert.
Optimierung einer Webshop-Plattform
Teile des Webshops auf skalierbare Containerumgebung migriert, Lastspitzen besser abgedeckt.
Implementierungsschritte
Analyse und Inventarisierung
Zielplattform definieren und Kriterien festlegen
Prototyp für kritische Komponenten erstellen
Automatisierte Tests und CI/CD anpassen
Schrittweiser Rollout und Monitoring
⚠️ Technische Schulden & Engpässe
Tech Debt
- Alte Konfigurationsmuster bleiben erhalten
- Nicht adressierte monolithische Schnittstellen
- Temporäre Adapter, die nie entfernt werden
Bekannte Engpässe
Beispiele für Missbrauch
- Replatforming statt notwendigem Refactoring bei schlechter Code-Qualität
- Verschieben aller Komponenten gleichzeitig ohne Tests
- Auswahl einer inkompatiblen PaaS-Lösung aus Kostengründen
Typische Fallen
- Unterschätzung versteckter Abhängigkeiten
- Nicht berücksichtigte Betriebskosten in der Cloud
- Unzureichende Rollback-Strategie
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Begrenzte Zeitfenster für Cutover
- • Regulatorische und Compliance-Anforderungen
- • Vorhandene SLA-Vorgaben