# Migration & Portabilität

> Lift & Shift gegen Replatform, Exit-Pfad und Lock-in nüchtern bewerten.

Track: [Cloud Infrastructure & Platform Engineering](https://physar.tech/learn/cloud-infra)  
Kanonische Fassung: https://physar.tech/learn/cloud-infra/migration-portability  
Stand: 2026-09-13  
Interaktiver Teil: 8 Checks (nur im Browser)

## Migration und Exit als messbare Übergänge planen

### Die Migrationsstrategien und was sie wirklich kosten

Für eine bestehende Anwendung gibt es eine überschaubare Zahl von Wegen in die Cloud. Der Unterschied liegt nicht in der Technik, sondern darin, **wann** man welchen Preis zahlt: sofort beim Umzug oder dauerhaft im Betrieb.

|  |  |
| --- | --- |
| Lift & Shift (Rehost) | Schnell, geringes Umzugsrisiko, kaum Änderung. Der Betrieb bleibt so teuer und so manuell wie vorher — der Nutzen der Plattform bleibt ungenutzt. |
| Replatform | Einzelne Bausteine gegen verwaltete Dienste tauschen (Datenbank, Nachrichtenwarteschlange, Lastverteiler). Mittlerer Aufwand, spürbare Entlastung im Betrieb. |
| Refactor | Die Anwendung auf das Modell der Plattform umbauen. Höchster Aufwand und höchstes Risiko, größter Ertrag — und die stärkste Bindung. |
| Retire / Retain | Abschalten oder bewusst stehen lassen. Die beiden am häufigsten übersehenen Optionen — und oft die wirtschaftlichsten. |

Die häufigste Fehlentscheidung ist nicht die Wahl einer falschen Strategie, sondern **eine Strategie für alles**. Ein Anwendungsbestand ist heterogen: Ein Drittel lohnt oft nur die Abschaltung, ein Drittel den schlichten Umzug, und nur ein kleiner Teil rechtfertigt den Umbau.

> **Merksatz:** Vor jeder Migration steht die Bestandsaufnahme mit einer unbequemen Frage pro Anwendung: Braucht sie überhaupt noch jemand?

### Lock-in ist ein Gradient, keine Grenze

„Vendor Lock-in“ wird meist als Ja/Nein-Frage diskutiert und ist in Wahrheit eine Skala mit sehr unterschiedlichen Wechselkosten. Nützlich ist die Frage: **Wie viele Personentage kostet der Wechsel, und was hängt daran?**

- **Daten** sind die teuerste Bindung: Volumen, Ausgangskosten, Konsistenz während des Umzugs, Stillstandszeit.
- **Zustandsbehaftete verwaltete Dienste** binden mittel bis stark — die Schnittstelle ist oft standardnah, das Betriebsverhalten nicht.
- **Identitäts- und Netzmodell** binden stärker, als es scheint: Sie durchziehen jede Konfiguration.
- **Rechenlast** bindet am wenigsten — Container laufen fast überall.
- **Betriebswissen und Werkzeuge** sind die stillste Bindung: Ein Team kann nur betreiben, was es kennt.

Wichtig ist die Gegenrechnung: Bindung zu vermeiden kostet ebenfalls — meist dauerhaft, in Form von Abstraktionsschichten, verzichtetem Funktionsumfang und selbst betriebenen Ersatzlösungen. Wer konsequent den kleinsten gemeinsamen Nenner mehrerer Anbieter nutzt, zahlt jeden Tag für eine Option, die er vielleicht nie einlöst.

_[Abbildung: Bindung ist eine Investitionsentscheidung: Ertrag heute gegen Wechselkosten später.]_

### Der Exit-Pfad: nicht Portabilität, sondern Handlungsfähigkeit

Ein brauchbarer Exit-Pfad verlangt nicht, dass alles jederzeit umziehen kann. Er verlangt, dass ihr im Ernstfall — Preisänderung, Vertragsende, regulatorische Auflage, dauerhafte Qualitätsprobleme — **handlungsfähig** seid. Das lässt sich auf drei Fragen reduzieren, die man beantworten können muss, bevor man sie braucht.

**Kommen wir an unsere Daten heran — in einem verarbeitbaren Format, in vertretbarer Zeit?** → Kennen wir die Kosten des Datenabzugs und die nötige Stillstandszeit? → Ist beschrieben, welche Dienste wodurch ersetzt würden — und von wem?

Die erste Frage ist die einzige, die man wirklich **testen** muss: ein regelmäßiger, tatsächlicher Export mit gemessener Dauer. Alles andere ist Papier — und Papier ist an dieser Stelle ausdrücklich ausreichend, solange es aktuell ist.

> **Antipattern:** Eine anbieterneutrale Abstraktionsschicht bauen, um portabel zu sein. Sie kostet dauerhaft, reduziert den Funktionsumfang auf den kleinsten Nenner — und beim echten Wechsel stellt sich heraus, dass die Datenmigration das Problem war, nicht die API.

### Umstellung ohne Sprung

Migrationen scheitern selten an der Zieltechnik, sondern am **Umschaltmoment**. Der belastbare Weg ist derselbe wie bei jeder riskanten Änderung: erweitern, parallel betreiben, schrittweise umschalten, aufräumen — statt eines großen Stichtags.

- Beidseitiges Schreiben oder Replikation, bis der Zielstand nachweislich stimmt — die Prüfung erfolgt auf Daten, nicht auf Zusicherungen.
- Umschalten in Anteilen, mit einem benannten Abbruchkriterium und einem Rückweg, der geübt ist.
- Die Altumgebung nicht sofort abschalten — aber mit **Datum**, sonst läuft sie noch Jahre und verdoppelt die Kosten.
- Netzlatenz zwischen alt und neu ist während der Parallelphase der häufigste unerwartete Faktor.

> **Gleich im Check:** In den folgenden Entscheidungen wählst du Strategien für einen gemischten Bestand, bewertest Bindung nüchtern und legst einen Exit-Pfad fest, der im Ernstfall trägt.

### Der Betriebsvertrag braucht messbare Invarianten

**Betriebsinvariante:** Eine Aussage über eine Workload mit Daten, Identitäten, Integrationen, Betriebswissen und geschäftlichem Veränderungsziel, die vor und nach einem erlaubten Übergang nachweisbar wahr sein muss.

Ein technisches Feature wird erst dann zu einem Betriebsvertrag, wenn Sollzustand, Verantwortlicher, Messpunkt und Reaktion zusammenpassen. Für eine Workload mit Daten, Identitäten, Integrationen, Betriebswissen und geschäftlichem Veränderungsziel besteht der prüfbare Kern aus **Strategieentscheidung, Abhängigkeitskarte, Wellenplan, Cutover-Runbook und Exit-Nachweis**. Der Vertrag nennt außerdem den gültigen Scope und die Bedingungen, unter denen ein Übergang abgebrochen wird. Das verhindert, dass Teams dieselben Wörter verwenden, aber unterschiedliche Garantien erwarten. der Business- und Workload-Owner für Ziel und Risiko, unterstützt durch Plattform- und Datenverantwortliche bestätigt nicht nur eine Konfiguration, sondern die Fähigkeit, ihre Wirkung zu beobachten und bei Abweichung zu handeln.

Invarianten müssen von außen prüfbar sein. Eine Aussage wie **ist sicher** hilft nicht; eine Aussage wie **jede schreibende Operation trägt cutover-id, stammt aus einer freigegebenen Identität und erzeugt innerhalb des Messfensters einen Auditnachweis** kann getestet werden. Neben dem positiven Pfad gehören negative Fälle in die Abnahme: unzulässiger Scope, fehlende Freigabe, veraltetes Artefakt und nicht erreichbare Kontrollabhängigkeit. Erst diese Gegenproben zeigen, ob die Grenze technisch durchgesetzt oder nur dokumentiert ist.

**Kurzcheck:** Welche Beschreibung ist für eine Workload mit Daten, Identitäten, Integrationen, Betriebswissen und geschäftlichem Veränderungsziel als Invariante geeignet?

- [x] Jeder erlaubte Übergang ist über cutover-id, Owner, Scope und Ergebnis korrelierbar
- [ ] Das Team arbeitet vorsichtig und hält sich normalerweise an die gemeinsame Dokumentation
- [ ] Die eingesetzte Cloudfunktion gilt allgemein als zuverlässig

> Die Aussage benennt prüfbare Merkmale und lässt sich automatisiert oder im Review widerlegen.

### Grenzen und Eigentum entscheiden über den Blast Radius

Die wirksame Grenze liegt bei **Quell- und Zielplattform, Datenreplikation, Namensauflösung, Identitätsabbildung und Integrationsvertrag**. Sie bestimmt, welche Ressourcen, Daten und Teams von einer fehlerhaften Entscheidung gemeinsam betroffen sein können. Organigramme und Repository-Grenzen sind dafür nur Hinweise. Maßgeblich ist, wo Identitäten, Zustand, Kapazität oder Kontrollpfade tatsächlich geteilt werden. Portabilität kostet laufend Abstraktion und Tests; ein konkreter Export- und Wiederanlaufpfad kann wirtschaftlicher sein als vollständige Austauschbarkeit Diese Abwägung wird explizit dokumentiert, damit eine spätere Konsolidierung nicht unbemerkt mehrere unabhängige Fehlerbereiche wieder koppelt.

Eigentum bedeutet Entscheidungs- und Reaktionspflicht. der Business- und Workload-Owner für Ziel und Risiko, unterstützt durch Plattform- und Datenverantwortliche legt fest, wer den Sollzustand ändern, wer eine Ausnahme genehmigen und wer im Vorfall handeln darf. Ein RACI ohne technische Rechteprüfung reicht nicht. Regelmäßig wird verglichen, ob Gruppen, Pipeline-Identitäten und Notfallrollen noch zum dokumentierten Modell passen. Gemeinsame Komponenten erhalten einen eigenen Service-Owner, SLO und Eskalationsweg, weil sonst jedes konsumierende Team nur seine lokale Sicht optimiert.

> **Grenztest:** Frage für jede gemeinsame Abhängigkeit: Welcher maximale Teil des Dienstes fällt aus, wenn genau diese Abhängigkeit falsche Daten liefert, nicht erreichbar ist oder kompromittiert wird?

### Der Normalablauf wird als kontrollierte Zustandsmaschine beschrieben

Ziel klären → Bestand entdecken → **Strategie wählen** → Abhängigkeiten testen → Koexistenz aufbauen → Daten synchronisieren → Cutover ausführen und Altpfad kontrolliert stilllegen

Der Ablauf ist eine Zustandsmaschine und keine lose Checkliste. Jeder Schritt besitzt Eingangsdaten, einen ausführenden Prinzipal, ein Ergebnis und eine Abbruchbedingung. Ein nachfolgender Schritt darf nur starten, wenn das vorherige Ergebnis unverändert referenziert wird. Dadurch kann ein Review nicht versehentlich ein anderes Artefakt prüfen als die Automatisierung später verwendet. Wiederholungen müssen entweder idempotent sein oder eine eindeutige Vorgangskennung erkennen, damit ein Timeout nicht zu einer zweiten konkurrierenden Änderung führt.

Für Eine zustandsvolle Anwendung wird zunächst replatformt, während Daten über Wochen synchronisiert und Verbraucher schrittweise umgestellt werden wird der Ablauf zuerst in einem kleinen, repräsentativen Scope ausgeführt. Die Plattform protokolliert Eingaben und Ergebnis, aber keine Secrets oder unnötigen Nutzdaten. Menschliche Freigaben beziehen sich auf Digest, Plan oder Version, nicht auf einen veränderlichen Namen. So bleibt die Kette auch dann prüfbar, wenn zwischen Review und Ausführung Zeit vergeht oder ein anderer Runner übernimmt.

### Vorbedingungen und Gates stoppen unsichere Übergänge

Ein Gate ist nur sinnvoll, wenn sein Ergebnis die Ausführung tatsächlich stoppt. Mindestgates prüfen Identität und Scope, Vollständigkeit des Artefakts, bekannte Richtlinien, verfügbare Kapazität sowie einen beobachtbaren Rückweg. Das Gate liefert **bestanden**, **abgelehnt** oder **befristete Ausnahme** mit maschinenlesbarem Grund. Warnungen, die bei jedem Lauf ignoriert werden, sind keine Kontrolle; sie werden entweder in eine harte Bedingung, einen befristeten Behebungsauftrag oder eine bewusst entfernte Regel überführt.

Die Vorbedingungen müssen zum Risiko passen. Portabilität kostet laufend Abstraktion und Tests; ein konkreter Export- und Wiederanlaufpfad kann wirtschaftlicher sein als vollständige Austauschbarkeit Deshalb wird nicht jede Änderung durch denselben schweren Prozess geschickt. Kleine, reversible Schritte mit engem Scope können automatisiert freigegeben werden. Irreversible Datenänderungen, neue Vertrauensbeziehungen oder eine Vergrößerung der Fehlerdomäne verlangen zusätzliche Evidenz und unabhängiges Review. Die Risikoklasse stammt aus der beobachtbaren Wirkung, nicht aus der Zahl geänderter Codezeilen.

- Ist das Ziel eindeutig und der Scope kleiner als die maximal erlaubte Fehlerdomäne?
- Sind Eingaben und Abhängigkeiten unveränderlich referenziert?
- Existieren Abbruchsignal und benannter Owner?
- Ist der Rückweg technisch möglich und mit aktuellen Daten geprobt?
- Wird die Wirkung nach dem Übergang gegen eine Baseline geprüft?

### Fehlerbilder werden vor dem Ernstfall operationalisiert

Die wichtigsten Fehlerbilder sind **ein R für das gesamte Portfolio, unterschätzte Datenmenge, harte Identitätskopplung, fehlender Rückweg und Abschaltung vor fachlicher Abnahme**. Für jedes Bild wird festgehalten, wie es erkannt wird, welche automatischen Schutzmechanismen greifen und welche manuelle Entscheidung übrig bleibt. Ein Runbook, das erst mit der Ursachenanalyse beginnt, kommt zu spät. Zuerst werden Nutzerwirkung und Ausbreitung begrenzt; danach wird die Hypothese mit möglichst kleinen, reversiblen Tests geprüft. Änderungen an mehreren Grenzen gleichzeitig sind zu vermeiden, weil ihr Ergebnis keine Ursache mehr isoliert.

Übungen testen nicht nur den glücklichen Failover. Ein sinnvoller Versuch nimmt zusätzlich eine Kontrollabhängigkeit weg, verzögert Telemetrie oder lässt einen Schritt nach erfolgreicher Außenwirkung mit Timeout enden. Das Team muss dann erkennen, ob die Operation wiederholt, fortgesetzt oder gestoppt werden darf. Beobachtet werden sowohl technische Metriken als auch die Qualität der Entscheidung: Zeit bis zur klaren Führung, Anzahl konkurrierender Änderungen und Vollständigkeit der Evidenz.

### Fehlerprobe mit begrenztem Scope

Eine zustandsvolle Anwendung wird zunächst replatformt, während Daten über Wochen synchronisiert und Verbraucher schrittweise umgestellt werden

**Anforderungen**

- Explizite Hypothese und erwartetes Signal
- Begrenzter Zielscope mit Abbruchschwelle
- Aktueller Rückweg und erreichbarer Owner
- Zeitlich korrelierbare technische und fachliche Messung

**Schritte**

- Baseline sichern
- Eine Fehlerannahme auslösen
- Schutzreaktion beobachten
- Kontrolliert wiederherstellen
- Abweichungen als Arbeit erfassen

**Merksatz:** Eine bestandene Übung beweist den geprobten Fall unter den beobachteten Bedingungen, nicht die Abwesenheit aller Risiken.

### Telemetrie verbindet technische Signale mit Nutzerwirkung

Für den Betrieb werden **Migrationsdurchsatz, Replikationsverzug, Fehlerquote, offene Abhängigkeiten, Rückfallrate, Doppelbetriebskosten und erreichter Umkehrpunkt** gemeinsam betrachtet. Einzelne Messwerte ohne Scope und Zeitbezug sind gefährlich: Ein globaler Durchschnitt kann einen vollständigen Ausfall einer Zone verdecken, eine erfolgreiche API-Antwort kann eine verzögerte Wirkung verschleiern. Jede Metrik nennt Quelle, Dimensionen, erwartete Aktualität und Verhalten bei Messlücken. Fehlende Telemetrie gilt bei kritischen Übergängen als eigener Fehlerzustand und kann die Fortsetzung blockieren.

Alarme werden an einer konkreten Handlung ausgerichtet. Ein Alarm nennt betroffenen Scope, beobachtete Invariante, wahrscheinlichen Owner und den ersten sicheren Prüfschritt. Tickets eignen sich für langsamen Kapazitäts- oder Complianceabbau; Paging bleibt akuter Nutzerwirkung oder unmittelbar drohendem Kontrollverlust vorbehalten. Dashboards und Auditabfragen verwenden dieselben IDs wie cutover-id, damit Einsatzleitung, Plattform und Workload-Team nicht drei widersprüchliche Zeitlinien rekonstruieren.

> **Messlücke:** Wenn ein Übergang erfolgreich gemeldet wird, seine erwartete Wirkung aber nicht innerhalb des Messfensters beobachtbar ist, bleibt der Zustand unbekannt. Unbekannt ist kein Erfolg.

### Recovery beginnt mit einem sicheren Kontrollpunkt

Der Recovery-Vertrag lautet: **Änderungsfenster stoppen, Datenrichtung festlegen, Verkehr zum stabilen Pfad zurückführen, Differenzen abgleichen und erst danach einen neuen Cutover planen**. Er nennt den letzten sicheren Kontrollpunkt, die Reihenfolge der Schritte und die Daten, die nach einer Umschaltung fachlich geprüft werden müssen. Rollback ist nur dann ein Rückweg, wenn alte Software, Konfiguration und Datenzustand noch kompatibel sind. Andernfalls ist ein kontrollierter Roll-forward oft sicherer. Diese Entscheidung wird vor dem Vorfall für die wichtigsten Änderungsklassen getroffen.

Backups und Exportdateien zählen erst nach einem Restore-Test als Recovery-Fähigkeit. Ebenso zählt eine sekundäre Umgebung erst, wenn Identität, Quotas, Netzpfade, Schlüssel und Telemetrie dort unter realistischer Last funktionieren. Die Übung protokolliert erreichten Wiederherstellungspunkt, Dauer, Datenabweichung und manuelle Abhängigkeiten. Ein verfehltes Ziel führt zu einer priorisierten Architektur- oder Prozessänderung; das bloße Herabsetzen des Zielwerts benötigt eine fachliche Risikoentscheidung.

Schreibende Änderungen stoppen → **Sicheren Kontrollpunkt bestimmen** → Abhängigkeiten und Zielkapazität prüfen → Kleinste wirksame Recovery-Maßnahme ausführen → Technische und fachliche Konsistenz messen → Schrittweise in den Normalbetrieb zurückkehren

### Änderungsevidenz macht Entscheidungen später prüfbar

Evidenz ist ein Produkt des Ablaufs. Strategieentscheidung, Abhängigkeitskarte, Wellenplan, Cutover-Runbook und Exit-Nachweis werden über cutover-id verbunden und in einem Speicher abgelegt, den der ausführende Prinzipal nicht nachträglich unbemerkt verändern kann. Die Aufbewahrung richtet sich nach Betriebs-, Sicherheits- und Nachweisanforderungen. Sensible Werte werden minimiert oder maskiert; ein Audit-Log darf nicht selbst zum Secret- oder Personendatenarchiv werden.

Ein Abschlussnachweis beantwortet sechs Fragen: Wer löste den Übergang aus, was wurde freigegeben, welcher Scope war betroffen, welche automatischen und menschlichen Gates griffen, welche Wirkung wurde gemessen und welcher Restfehler blieb? Diese Struktur beschleunigt sowohl Incident-Diagnose als auch regelmäßige Reviews. Sie erlaubt außerdem, wiederkehrende manuelle Ausnahmen, lange Wartezeiten und häufige Abbrüche als Signale für eine schlechte Plattform-Schnittstelle zu erkennen.

Für die technische Abnahme wird eine kleine Nachweismatrix gepflegt. Ihre Zeilen sind Normalbetrieb, Grenzfall, abgelehnter Fall, Kontrollausfall und Recovery; ihre Spalten sind Eingabe, erwarteter Zustand, Messpunkt, Frist und Owner. Dabei werden **Rehost, Replatform, Refactor und Exit** getrennt betrachtet, weil eine erfolgreiche Probe der einen Klasse keine Aussage über die anderen liefert. Als gemeinsame Referenzen dienen `Workload-ID, Migrationswelle und Cutover-ID`. Die IDs müssen bereits bei der Ausführung entstehen und durch Telemetrie, Ticket und Auditstrom weitergereicht werden. Nachträgliches Zusammenführen anhand ungefähr gleicher Uhrzeiten ist nur eine schwache Ersatzlösung. Die Matrix wird bei einer neuen Abhängigkeit, einem geänderten Scope oder einer geänderten Wiederherstellungsannahme aktualisiert und als Teil des Changes geprüft.

Der wichtigste Abnahmesatz lautet, dass **Datenstand, Identitätsabbildung und Verkehrsweg am Umkehrpunkt konsistent sind**. Um ihn zu widerlegen, braucht der Test mindestens einen erlaubten und einen bewusst unerlaubten Fall. Zusätzlich wird geprüft, was bei einem Timeout nach bereits eingetretener Wirkung geschieht. Die Automatisierung darf einen solchen Schritt nicht blind wiederholen. Sie liest zuerst den beobachtbaren Zustand und entscheidet dann zwischen Fortsetzen, kompensierender Aktion und Eskalation. Für schreibende Übergänge existiert ein Idempotenzschlüssel oder ein fachlich gleichwertiger Schutz. Dadurch wird aus einem Transportfehler kein doppelter Infrastruktur-, Daten- oder Berechtigungseingriff.

Die regelmäßige Betriebsprüfung nimmt anschließend reale Veränderungen in den Blick. Sie vergleicht dokumentierte Owner mit aktiven Berechtigungen, erwartete mit beobachteten Abhängigkeiten, vereinbarte mit gemessenen Wiederherstellungszeiten und geplante mit tatsächlich genutzten Ausnahmen. Abweichungen werden nach möglicher Nutzerwirkung und verbleibendem Zeitfenster priorisiert. Ein Befund gilt erst als geschlossen, wenn die technische Ursache behoben, die Kontrolle erneut ausgeführt und die Evidenz am selben Objekt verknüpft wurde. Wiederholte manuelle Eingriffe sind ein Signal für eine fehlende Plattformfähigkeit und werden in einen standardisierten Self-Service-Pfad oder eine bewusst akzeptierte Sonderverantwortung überführt.

## Quellen

- AWS: Migration strategies (the 7 Rs) — https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/migration-strategies.html
- Microsoft Azure Cloud Adoption Framework: Migrate — https://learn.microsoft.com/azure/cloud-adoption-framework/migrate/
- Google Cloud: Migration to Google Cloud — Getting started — https://cloud.google.com/architecture/migration-to-gcp-getting-started
- AWS Well-Architected Framework, Cost Optimization Pillar — https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html
- Google Cloud Architecture Framework: System design — https://cloud.google.com/architecture/framework/system-design
- Microsoft Azure Cloud Adoption Framework: Strategy — https://learn.microsoft.com/azure/cloud-adoption-framework/strategy/
