Migration

Eine Migration oder Portierung ist in der Informationstechnik ein Umstellungsprozess in Datenverarbeitungssystemen.

Begriffsabgrenzung

Der Begriff der Migration ist vielschichtig. Er kann sowohl die Umstellung insgesamt als auch jeden darin eingeordneten Anpassungsprozess einzelner Bestandteile des Systemsbezeichnen. Beispielsweise bedeutet bzw. beinhaltet Migration von einem Betriebssystem auf ein anderes in der Regel zugleich die Migration von Anwendungssoftware und Daten.

Bei Abgrenzung der Ausdrücke Migration und Portierung wird ersterer als allmähliche Veränderung in vielen bzw. kleinen Schritten gedeutet, letzterer als gröberer Umbruch.

Daneben ist der Begriffder Portierung spezifisch im Bereich der Softwaretechnik etabliert und bedeutet dort:

  • Umarbeiten einer bereits vorhandenen Software zur Verwendung in einer anderen Laufzeitumgebung oder Plattform
  • Umstellen des Entwicklungsprozesses einer bestimmten Software auf eine andere Programmiersprache oder Entwicklungsumgebung

Medienmigration

Medienmigration bezeichnet einen Vorgang, bei dem das physische Datenträgermedium eines Datenobjekts innerhalb eines Archivs geändert wird. Sie ist damit eine Verfahrensart zur Erhaltung eines Bitstreams.

In der Durchführung unterscheidet man vier Arten:

  1. Refreshment: hier werden Daten lediglich auf einen Datenträger gleichen Typs kopiert. Es finden keine Änderungen an Daten oder der Speicherinfrastruktur statt.
  2. Replication: hier werden ebenfalls, wie beim Refreshment, Daten von einem Träger auf einen neuen kopiert. Hierbei kann es sich aber auch um einen anderen, neueren Datenträger handeln. Der Unterschied zum Refreshment besteht damit in der Änderung der Speicherinfrastruktur.
  3. Repackaging: hier wird ein Archivpaket verändert, d. h. es werden Datenobjekte selbst umgeschrieben.
  4. Transformation: hier werden, ähnlich dem Repackaging, ebenfalls Datenobjekte selbst umgeschrieben. Allerdings werden hier die Inhalte des Archivpakets verändert.

Bei Refreshment und Replication geht es ausschliesslich den Erhalt von bestehenden Daten durch Wechsel der Speichermedien. Sie stellen damit Medienmigration im engeren Sinnedar.

Hingegen wird bei Repackagung und Transformation auch der Inhalt der Daten verändert. Es liegt also eine doppelte Funktion vor. Zum einen wird mit der Änderung des Datenformats ein neues Datenobjekt erstellt, dass in der Regel auf einem neuen Datenträger abgespeichert wird. Allerdings erfolgt hier die Migrationsmassnahme auch mit Blick auf die zukünftige Interpretierbarkeit, d. h. Lesbarkeit der Daten. Deswegen spricht man hier von Medienmigration im weiteren Sinn oder Formatmigration.

Software-Migration

Softwaremigration lässt sich als Prozess der Umstellung von einer bisherigen zu einer neuentechnologischen Umgebung definieren.

Die Migration geht über eine einfache Aktualisierung bzw. ein Upgrade hinaus und bezeichnet vielmehr einen grundlegenden Wechsel der Software-Infrastruktur. Basis einer Migration bilden Migrationsstrategien. Im Idealfall stehen Dienstprogramme zur weitestgehend automatisierten Umstellung zur Verfügung.

Häufigste Gründe für die Durchführung einer Softwaremigration sind die Überalterung der Softwareoder das bestehende Altsystem („Legacy-System“) ist nicht mehr in der Lage, neue Anforderungen an Hard- und Software zu erfüllen. Letzteres kann besonders in Organisationen gegeben sein, wenn geeignetes IT-Fachpersonal für ältere Software fehlt.

Datenmigration

Unter einer Datenmigration wird das Ersetzen einer Plattform verstanden, mit welcher Daten verwaltet und vom Altsystem übernommen werden. Bei der Plattform kann es sich dabei z. B. um physische Datenspeicher oder eine Datenbanksoftware handeln.

Beispiele:

  • Eine Bank ersetzt ein selbstentwickeltes System durch Standardsoftware. Es reicht nicht, nur die Standardsoftware zu installieren. Kundendaten, Konten und Kontostände müssen auch übernommen werden.
  • Bei der Fusion von Unternehmen müssen die Daten beider Unternehmen zusammengeführt werden.
  • Die Konvertierung in eine andere Zeichenkodierung
  • Die Übertragung von Datenbanken
  • Die Übertragung von Textdokumenten, die Makros enthalten, auf ein anderes Office-Format
  • Die Übertragung von Tabellenkalkulationen, die eigene Formeln enthalten

Eine Datenmigration besteht aus drei Schritten. Im Extraktionsschritt wird gefiltert, welche Datenübernommen werden sollen. Als Zweites erfolgt eine Transformation. Die Daten liegen im Datenmodell des Altsystems vor. Sie müssen also transformiert werden, dass sie zum Datenmodell des Zielsystems „passen“. Im dritten und letzten Schritt werden die transformierten Daten ins Zielsystemgeladen.

Die drei Schritte entsprechen dem ETL-Prozess eines Data-Warehouse. Das Ziel ist aber ein anderes. Ein Data-Warehouse soll neue Erkenntnisse liefern, z. B. um die Entwicklung von Verkaufszahlen zu verstehen. Bei der Datenmigration hingegen bleiben die Daten semantisch unverändert. Alle (relevanten) Kunden sind weiterhin vorhanden. Die Kontostände sind ebenso unverändert. Einzig das Datenmodell kann sich ändern.

Technisch realisiert werden kann eine Datenmigration beispielsweise mittels ETL-Tools, Spezial-Migrationstools mit SQL-Skripten. Zuverlässigkeit spielt eine wichtige Rolle (es sollen keine Konten „verloren“ gehen). Ebenso sind oft sehr viele Objekttypen zu migrieren (Kunden, Konten, Aktiendepots, Börsenplätze, Bilanzdaten etc.). Eine Ablaufsteuerung koordiniert den ETL-Prozess für die verschiedenen Objekttypen. Eine Migrationsverifikation betrachtet ausgewählten Testfällenbeispielsweise manuell (pars pro toto) und verwendet zusätzlich Statistiken. Statistiken erlauben, eine „Nadel im Heuhaufen“ zu finden, also wenn beispielsweise ein einziges Konto von 10.000.000 zu migrierenden Konten fehlt.

Anwendungsmigration

Im Rahmen der Anwendungsmigration wird eine Anwendung durch eine neue ersetzt. Bei diesem Prozess kommen sowohl Elemente der Software-Migration als auch der Datenmigration zusammen; oft wird auch neue Hardware benötigt. Eine sorgfältige Planung und Durchführung ist entscheidend zur Wahrung der Datenkonsistenz und zum reibungslosen Wechsel der Funktionalitätvon der alten auf die neue Anwendung.

Hardware-Migration

Die Migration bestehender Systeme auf neue Hardware wirft in etwa die selben Probleme auf wie rein softwareseitige Migration und ist über Schnittstellentreiber meist zwangsläufig mit einer gewissen Software-Migration verbunden. Datenmigration wird dabei tunlichst vermieden.

Live-Migration

Als Live-Migration wird der Umzug einer virtuellen Maschine (VM) bezeichnet, bei dem eine VM im laufenden Betrieb von einem physikalischen Wirtssystem (Host) auf ein anderes übertragen oder verschoben wird. Im Idealfall findet solch ein Umzug ohne Beeinträchtigung der VM statt, sodass auch laufende Arbeiten in der VM ohne Unterbrechung fortgesetzt werden können. Das Ziel derartiger Migrationen ist eine einfachere Wartbarkeit von Hardware sowie ein möglicher Lastenausgleich derselben.

Umstellung auf neuere Schnittstellen und Techniken

Eine Funktion oder ein Parameter eines Programmes, welche in Folgeversionen möglicherweise nicht mehr verfügbar sein werden, oder aber auch überholte Programmiertechniken, werden als missbilligt / hinfällig eingestuft.

Der Sinn, diese aber dennoch weiter zu führen, liegt in der Aufwärtskompatibilität. Denn wenn eine Schnittstelle einfach abgeschafft würde, entstehen leicht Ausnahmefehler. Daher wird die alte Verarbeitung der Eingabe auf solch einer Schnittstelle durch eine einfache Fehlerbehandlungsroutine ersetzt, etwa, indem eine Funktion einen Rückgabewert erhält. Der Aufrufer erhält dann z. B. nicht einen Fehler, sondern zumindest einen – wenn vielleicht auch unnützen –Wert des erwarteten alten Datenformats. Das vermeidet Probleme, die folgen können, wenn der Aufrufer keine Fehlerauswertung auf dieser Schnittstelle implementiert hatte. Die Wahl des neuen Dummy-Werts bedarf aber einer sorgfältigen Auswahl (ein Parameter vom Datentyp text etwa müsste als „none“ zurückgegeben werden) und Kenntnis des ursprünglichen Wertebereichs (0 etwa könnte eine Division durch null nach sich ziehen).

Zur Unterstützung der Umstellung besteht in manchen Programmiersprachen oder Entwicklungsumgebungen die Möglichkeit, missbilligte Techniken mit bestimmten Schlüsselwörtern zu kennzeichnen.

Die Behandlung komplexer Schnittstellen kann ziemlich aufwändig werden, denn andernfalls geht dann einfach die Aufwärtskompatibilität verloren. Das „Mitschleppen von Altlasten“ kann sich im Laufe von Weiterentwicklung zu eminenten Problemen auswachsen. Zwischen den beiden Möglichkeiten abzuwägen, ist eines der Hauptprobleme der Versionsverwaltung moderner Software. Daher wird bei neuen Versionen zwischen kleiner (minor) und großer Aktualisierung (major Upgrade) unterschieden, je nachdem, in welchem Ausmass die Aufwärtskompatibilität gewährleistet wird. Eine Migration über mehrere Versionen (Releases) hinweg kann wesentlich leichter Probleme bereiten oder gar eine Neuinstallation erfordern.