Große Webprojekte migrieren

In diesem Beitrag möchten wir erläutern, wie Sie größere Webprojekte migrieren können. Dabei geht es nicht um einen Serverwechsel sondern vielmehr darum, wie Sie die Basissoftware wie z.B. CMS-Systeme, Foren- oder Shop-Software wechseln.

Es passiert häufiger, dass ein Webseiten-Betreiber von einem CMS zu einem anderen wechseln möchte. Ein Beispiel wäre der Umzug von Joomla zu WordPress. Ähnliches gilt für den Wechsel von E-Shop-Software, Foren-Software oder ähnlichen Webanwendungen. Typischerweise wird ein Wechel angestrebt aufgrund besserer Funktionen der neuen Software gegenüber der aktuell eingesetzten Software. Das Problem bei solch einer Umstellung ist, dass sich Inhalte ständig ändern. So kommentieren z.B. Seitenbesucher einen Blog, erstellen neue Themen in Foren oder kaufen Artikel in einem online-Shop. Die Umstellung muss daher instantan erfolgen, ohne Unterbrechungen oder Downtime. Eine manuelle Umstellung würde oft mehrere Stunden wenn nicht sogar Tage in Anspruch nehmen, insbesondere wenn man nicht auf die Migration vorbereitet ist. Meist ist es aufgrund der enormen Menge an Inhalten unmöglich, Daten per Hand zu übertragen.

Migration ohne Downtime

Für eine reibungslose Migration wollen wir die folgende Vorgehensweise vorschlagen, bei der ein Script die Inhalte automatisiert von der alten Instanz zur neuen Software kopiert. Daten werden dabei über eine Schnittstelle zwischen alter und neuer Seite übertragen:

Diese Schnittstelle ist als Rest-API realisiert. Das alte Projekt enthält alle Daten, die auf das neue Projekt übertragen werden müssen. Zu Beginn ist das neue Projekt leer, es ist nur eine Standard-Installation ohne spezifischen Inhalt. Eine Funktion, die ich abstrakt "transfer()" nenne, managed den Transfer der Daten. Mittels get-Abfragen enthält das neue Projekt Inhalte vom alten Projekt, Inhalte werden manipuliert um sie dann formgerecht im neuen Projekt zu speichern. Das Skript dient nicht nur dazu, Inhalte zwischen Datenbanken zu tauschen sondern insbesondere auch Bilder und andere Dateien zu übertragen.

Nach dieser abstrakten Darstellung möchte ich den Vorgang konkret anhand eines Umzugs von Joomla nach WordPress veranschaulichen: Um die Joomla-Artikel zu übertragen, erfolgt ein call "getArtikel" an die API der alten Seite. Diese Anfrage gibt eine Liste mit allen Joomla-Artikeln zurück. Das Script kann diese Inhalte dann so abwandeln, dass sie als WordPress Beitrag oder Seite gespeichert werden können. Das gleiche Muster kann für Seiten-Benutzer, Shop-Produkte oder Foren-Beiträge angewandt werden.

Dabei spielt es keine Rolle ob die beiden Projekte auf dem gleichen Server oder auf verschiedenen Servern installiert sind. Ein wichtiger Punkt ist die Authentifizierung, damit die Daten-Sicherheit gewährleistet ist.

Das oben genannte Verfahren ist ideal um beispielsweise Datenbankinhalte zu übertragen. Schwieriger wird es jedoch z.B. bei Templates, da Struktur und Tags sehr stark von der verwendeten Software abhängen. In solchen Fällen sind ggfs. manuelle Anpassungen erforderlich.

In der Vergangenheit haben wir mehrfach größere Webseiten über solch API Konstrukte auf eine neue Software übertragen. Gerne unterstützen wir Sie bei solchen Vorhaben, nehmen Sie einfach Kontakt mit uns auf.