Migrationsstrategien dienen in der Informationstechnik der Migration von Systemen, um eine Ablösung von Systemen durchzuführen.
Inhaltsverzeichnis |
Eine Migration muss, um erfolgreich zu sein, mindestens den folgenden Anforderungen gerecht werden:
Diese Migrationsstrategie besteht aus elf „kleinen Schritten“, die inkrementell durchgeführt werden, wodurch die Migration überschaubar wird, da die eigentliche Migration in kleinere Teile aufgespalten wird (Prinzip „Divide & Conquer“). „Chicken Little“ bedeutet dennoch eine vollständige Neuentwicklung des Systems.
Hierbei wird als erstes das Datenbanksystem auf ein modernes System migriert, bevor Anwendungen und Benutzeroberflächen migriert werden. Für den Zugriff der Komponenten des Altsystems auf das neue Datenbanksystem werden sog. Forward Gateways verwendet. Nach vollständiger Migration der Anwendungen und Oberflächen kann das Forward Gateway deaktiviert werden.
Der entscheidende Vorteil dieser Methode ist, dass am Ende der Migration auf jeden Fall die entwickelte Anwendung und die Datenbank zusammenpassen, da die Anwendungsentwicklung erst beginnt, wenn die Migration der Datenbank abgeschlossen ist. Somit kann für Tests der noch zu entwickelnden Anwendung bereits die neue Datenbasis verwendet werden. Ebenfalls vorteilhaft ist, dass durch die Umstellung auf die neue Datenbank sofortige Verbesserungen im Bereich Reporting durch aktuelle Programmiersprachen erzielt werden können. Auch können die einzelnen Anwendungen anschließend eine nach der anderen migriert werden, ohne die Funktion des Systems zu beeinträchtigen.
Hauptnachteil dieses Vorgehens ist, dass es nur auf Systeme anwendbar ist, die eine definierte Schnittstelle zum Datenbackend, also eine strikte Trennung von Anwendung und Datenbackend, aufweisen. Außerdem muss vor Beginn der Migration die Datenbankstruktur entwickelt werden. Das zu entwickelnde Forward Gateway kann außerdem so kompliziert sein, dass es manchmal überhaupt nicht möglich ist, ein solches zu erstellen.
Dieser Ansatz ist der Gegensatz zu Database First und kann ebenfalls nur auf Systeme mit definierter Datenbackendschnittstelle angewandt werden.
Nach und nach werden die Anwendungen des Altsystems migriert, für den gleichzeitigen Zugriff von Komponenten des Alt- und Neusystems auf den Datenbestand müssen alle Komponenten des Neusystems den Zugriff über Reverse Gateways abwickeln. Der letzte Schritt dieser Migrationsmethode ist die Migration des Datenbanksystems auf die neue Plattform.
Bei „Cold Turkey“ handelt es sich, wie bei „Chicken Little“ um eine komplette Neuentwicklung des Altsystems mit Hilfe moderner Entwicklungsmethoden. Hierbei wird parallel zum Altsystem das neue System entwickelt und getestet. Hat das neue System alle notwendigen Tests bestanden, wird in einem finalen Schritt, dem „Big Bang“, das Altsystem deaktiviert und das neue System übernimmt die Arbeit. Hierdurch bedingt ergeben sich aber hohe Risiken für eine funktionierende Migration:
Beim Ansatz der Butterfly-Migration handelt es sich um eine Strategie, die im Gegensatz zu „Chicken Little“ ohne den Einsatz von Gateways auskommt. Die Methode basiert auf einer initialen Migration der Daten-Backends: das Legacy-System bleibt betriebsbereit, während in einer Testumgebung bereits das neue System entwickelt und getestet werden kann, ohne den normalen Betrieb zu beeinflussen oder gar zu stören.
Wichtig für diese Technik der Migration ist die Grundannahme, dass es nur um die reine Datenmigration geht und eine Kooperation zwischen Alt- und Zielsystem nicht notwendig ist.
Zu Beginn des Migrationsprozesses werden neben der Datenbasis des Altsystems mehrere Temporärspeicher eingerichtet und die Datenbasis mit einem Schreibschutz versehen. Durch den Data Access Allocator werden die Zugriffe umgeleitet: noch nicht zugegriffene Information wird aus der Datenbasis geholt, Änderungen werden zu Beginn in den temporären Speicher TS1 geschrieben. Falls geänderte Informationen abgerufen werden müssen, werden diese aus TS1 geholt.
Anschließend kann gefahrlos, also ohne Datenverlust und Einbuße an Servicequalität des Systems, der Datenbestand des Altsystems über den sog. „Chrysalizer“, eine Komponente, die die Daten vom Datenschema des Altsystems in das neue Datenschema überführt und im neuen Datenbackend ablegt, in das neue System überführt werden. Während dieser Migration werden alle Datenänderungen, wie oben beschrieben, nicht mehr im Legacy-Datenbackend gespeichert, sondern im Temporärspeicher TS1 .
Ist die Migration der Altdatenbank abgeschlossen, müssen auch noch die Informationen, die in der Zwischenzeit in TS1 gespeichert worden sind, migriert werden. Hierzu wird TS1 für Schreibzugriffe gesperrt und der neue Speicher TS2 geöffnet. Änderungen am Datenbestand werden nun nicht mehr in TS1, sondern in TS2 gespeichert. Jedesmal, wenn nun ein Temporärspeicher TSn vom „Chrysaliser“ migriert wurde, wird der Speicher TSn+1 für Schreibzugriffe gesperrt, der Speicher TSn+2 für schreibende Zugriffe des Legacy-Systems geöffnet, und der Speicher TSn+1 an den „Chrysaliser“ übergeben. Kann der Inhalt eines Temporärspeichers schneller migriert werden, als der neue Speicher vom Altsystem angelegt wird, dass also während der Migration eines Temporärspeichers TSn keine Schreibzugriffe des Legacysystems stattfinden, wird die Größe des Temporärspeichers TSn+2 im nächsten Schritt verringert. Die Größe des Speichers hat für
mathematisch den Grenzwert Null.
Während der gesamten Migration arbeitet das System ganz normal weiter, bis die Größe des letzten Temporärspeichers einen bestimmten Schwellenwert unterschreitet, so dass die Zeit, die die Migration dieses letzten Speichers benötigt, extrem kurz ist. Dann kann im letzten Schritt das Altsystem gestoppt werden, der letzte Temporärspeicher in das neue System überführt werden, und das neue System in Betrieb genommen werden, da nunmehr zwischen dem Datenbestand des Alt- und Neusystemes Konsistenz erreicht wurde.
Die Vorteile des Butterfly-Verfahrens liegen auf der Hand: Zum einen ist das komplette System, bis auf den Schritt des finalen Umschaltens auf das Neusystem, dessen Dauer durch die geschickte Wahl des Schwellenwertes weiter minimiert werden kann, zu jeder Zeit verfügbar. Ebenfalls kann zu jeder beliebigen Zeit vor dem Umschalten der Systeme die Migration abgebrochen werden, da die Migration solange umkehrbar ist, solange alle Daten über den Data Access Allocator gelaufen sind. Sollte die Migration abgebrochen werden müssen, müssen nur nacheinander die Tempspeicher beginnend bei TS1 wieder in die Datenspeicher eingebunden werden.
Nachteil dieser Strategie ist, dass je nach Aktivität im Altsystem extrem viele Temporärspeicher notwendig sein können, die alle, um einen möglichen Abbruch der Migration zu ermöglichen, nicht beispielsweise im Round-Robin-Verfahren überschrieben werden dürfen. Es kann also im Extremfall während der Migration hoher Hardwareeinsatz für Speicherbackends erforderlich sein. Ein anderes Problem stellt die Entwicklung des Data Access Allocators dar: man spart sich, im Gegensatz zu „Chicken Little“ zwar die Entwicklung von Gateways zwischen den Systemen, der Data Access Allocator ist jedoch ebenfalls eine sehr komplexe Komponente, die hohen Entwicklungsaufwand erfordern kann.