Der Migrationstyp wird durch das bestimmt, was Sie bewegen, und durch die beteiligten Umgebungen. Jeder Typ hat seine eigenen technischen Überlegungen, Fehlermodi und Planungsanforderungen. Zu verstehen, welche Art – oder Kombination von Arten – auf Ihr Projekt zutrifft, ist eine der ersten Entscheidungen, die Ihre Migrationsstrategie treffen muss.
Datenbankmigrationen
Bei einer Datenbankmigration werden Daten oder Anwendungen zwischen zwei Datenbanksystemen übertragen, entweder um Anbieter zu wechseln oder die Datenbanksoftware zu aktualisieren. Häufige Auslöser sind Ankündigungen zum Ende der Lebensdauer von einem Datenbankanbieter, Änderungen der Lizenzkosten, Performance-Einschränkungen in der aktuellen Plattform oder ein Wechsel zu Open-Source-Alternativen.
Schemaunterschiede sind die Hauptursache für Komplexität. Zwei Datenbanken können konzeptionell ähnliche Daten auf strukturell inkompatible Weise speichern, wie z. B.:
- Verschiedene Datentypen
- Namenskonventionen
- Einschränkungen
- Indexierungsansätze
Gespeicherte Prozeduren und benutzerdefinierte Funktionen, die in den Dialekt einer Datenbank geschrieben werden, erfordern oft ein Neuschreiben für das Zielsystem.
Anwendungsabhängigkeiten stellen die Herausforderung dar. Die meisten Produktionsdatenbanken werden von mehreren Anwendungen verwendet, die von ihnen lesen und schreiben. Jede dieser Anwendungen muss vor der Umstellung anhand der Zieldatenbank getestet werden, und alle Abfragen, die auf anbieterspezifischem Verhalten basieren, müssen identifiziert und neu geschrieben werden. Dieser Schritt ist einer der häufigsten Gründe, warum Datenbankmigrationen die Validierung nachträglich fehlschlagen.
Worauf Sie achten sollten:
- Implizite Datentypkonversionen, die sich plattformübergreifend unterschiedlich verhalten
- Zeichencodierungsunterschiede (UTF-8 beispielsweise gegenüber Latin-1), die Textdaten beschädigen
- Sequenz- und Auto-Inkrement-Verhaltensweisen, die nicht sauber zwischen Anbietern übertragen werden
- Auslöser und gespeicherte Verfahren, die in anbieterspezifischen SQL-Dialekten geschrieben sind
Migrationen in die Cloud
Cloud-Migrationen verschieben Daten oder Anwendungen von lokalen Umgebungen in die Cloud-Infrastruktur oder zwischen Cloud-Anbietern. Sie sind oft die größten im Umfang und die organisatorisch komplexeste Migrationsart, da sie häufig Datenbankmigrationen, Storage-Migrationen und Anwendungsmigrationen umfassen, die parallel ausgeführt werden.
Lift-and-Shift-Migrationen – die Verlagerung von Workloads in die Cloud mit minimaler Änderung – sind am schnellsten durchzuführen, lassen aber oft Performance- und Kostenprobleme bereit. Die Verlagerung oder Umgestaltung von Workloads, um die Vorteile nativer Cloud-Services zu nutzen, erhöht die Komplexität der Migration, führt aber in der Regel zu besseren langfristigen Ergebnissen.
Compliance-Anforderungen, Regeln zur Datenresidenz und Netzwerklatenz fügen alle Dimensionen hinzu, denen reine lokale Migrationen nicht gegenüberstehen. DSGVO, HIPAA und andere Vorschriften können einschränken, wo Daten übertragen oder gespeichert werden können, selbst vorübergehend. Für Unternehmen, die große Datensätze verschieben, kann die Netzwerkbandbreite zu einem echten Engpass werden. Manche Migrationen sind mithilfe physischer Datenübertragungsservices schneller und billiger als eine drahtgebundene Übertragung.
Cloud-zu-Cloud-Migrationen (z. B. beim Wechsel zwischen AWS, Microsoft Azure und Google Cloud) werden immer häufiger, wenn Unternehmen die Beziehungen zu Anbietern neu bewerten oder Multi-Cloud-Umgebungen konsolidieren. Diese Migrationen erfordern das Verständnis der proprietären Serviceabhängigkeiten, die sich in der Quell-Cloud angesammelt haben, Objekt-Storage-APIs, verwalteten Datenbankservices und serverlosen Funktionen und das Bestimmen, ob gleichwertige Services am Zielort vorhanden sind.
Worauf Sie achten sollten:
- Ausweichkosten, die das Migrationsbudget erheblich übertreiben
- Proprietäre Serviceabhängigkeiten, die beim Zielanbieter nicht direkt gleichwertig sind
- Datenresidenz steht im Konflikt mit Compliance-Anforderungen
- Latenzauswirkungen auf Anwendungen, die für lokalen Zugriff mit geringer Latenz entwickelt wurden
Storage-Migrationen
Storage-Migrationen verschieben Daten von bestehenden Storage-Arrays auf neue Hardware. Sie gehören zu den häufigsten Migrationstypen in Unternehmensumgebungen, die von Hardware-Aktualisierungszyklen, Kapazitätserweiterungsanforderungen und dem Wechsel von rotierenden Festplatten zu All-Flash-Architekturen angetrieben werden.
Im Gegensatz zu Datenbank- oder Anwendungsmigrationen beinhalten Storage-Migrationen keine Datentransformation. Das Datenformat ändert sich nicht. Sie verschieben Blöcke oder Dateien von einem physischen Ort an einen anderen. Aber das operative Risiko ist genauso real. Jede Storage-Array-Migration, die den Zugriff auf Produktionsdaten unterbricht, wirkt sich je nach Storage auf jede Anwendung und jeden Benutzer aus.
Hostbasierte Migrationen verwenden Software, die auf dem Server ausgeführt wird, um Daten von der Quelle in den Ziel-Storage zu kopieren. Sie sind flexibel und benötigen keine spezialisierte Hardware, verbrauchen jedoch während der Migration Server-CPU- und Speicherressourcen. Array-basierte Migrationen nutzen in die Storage-Hardware integrierte Replikationsfunktionen, die in der Regel weniger hostseitigen Overhead erzeugen und unterbrechungsfreie Umstellungen unterstützen.
Für Unternehmen, die All-Flash-Arrays verwenden, fallen Storage-Migrationen oft mit einem breiteren Modernisierungsaufwand für die Infrastruktur zusammen. Der Wechsel von hybrid emoder rotierendem Platten-Storage zu All-Flash verändert die Performance-Merkmale erheblich. Anwendungen, die auf Storage mit höherer Latenz abgestimmt waren, müssen möglicherweise neu konfiguriert werden, um die Vorteile der neuen Umgebung voll auszuschöpfen.
Worauf Sie achten sollten:
- Host-Multipath-Konfiguration, die aktualisiert werden muss, wenn sich die Storage-Ziele ändern
- Anwendungen mit festcodierten Storage-Pfaden, die nach der Migration brechen
- Performance-Differenzen zwischen Quell- und Ziel-Arrays, die das Anwendungsverhalten beeinflussen
- Kapazitätsplanung, die unterschiedliche Datenreduktionsquoten zwischen alter und neuer Hardware berücksichtigt
Anwendungsmigrationen
Anwendungsmigrationen verschieben Anwendungen zwischen Umgebungen, lokal in die Cloud, in die Cloud oder auf eine neue SaaS-Plattform. Sie sind der komplexeste Migrationstyp, der zu planen und auszuführen ist, da sie fast immer Datenbank- und Storage-Migrationen als Abhängigkeiten auslösen.
Die Komplexität ist schnell verbunden. Die Migration eines ERP-Systems kann beispielsweise die Migration seiner zugrunde liegenden Datenbank, des Storage, auf dem es ausgeführt wird, der Netzwerkservices, von denen es abhängig ist, und der Integrationen, die es mit anderen Anwendungen pflegt, erfordern, von denen jede eigene Migrationsanforderungen und Sequenzierungsbeschränkungen hat.
Anwendungsmigrationen bergen auch das größte Geschäftsrisiko jeder Art von Migration, da sie sich direkt auf Benutzer und Geschäftsprozesse auswirken. Eine Storage-Migration, die schief gelaufen ist, ist ein Infrastrukturproblem. Eine schief gegangene Anwendungsmigration beeinträchtigt die Workflows, auf die sich die Mitarbeiter verlassen, um ihre Arbeit zu erledigen.
SaaS-Migrationen, die von einer selbstverwalteten Anwendung zu einem anbieterverwalteten Cloud-Service wechseln, stellen eine Reihe unterschiedlicher Herausforderungen dar. Sie wechseln oft in eine mandantenfähige Umgebung mit begrenzten Anpassungsoptionen, was bedeutet, dass Sie bewerten, ob die Zielplattform Ihre aktuellen Workflows tatsächlich unterstützen kann, bevor Daten verschoben werden.
Worauf Sie achten sollten:
- Integrationen von Drittanbietern, die über dokumentierte oder nicht dokumentierte APIs mit der Anwendung verbunden sind
- Benutzerauthentifizierungsabhängigkeiten (LDAP, Active Directory), die repliziert oder migriert werden müssen
- Benutzerdefinierte Konfigurationen und Erweiterungen, die möglicherweise nicht in die Zielumgebung übertragen werden
- Schulungsanforderungen für Endbenutzer, die im Projektzeitplan berücksichtigt werden müssen