519 Domains, 46.806 Seiten, 63 Extensions migriert

Mosaik bestehend aus Screenshots Grüner Websites

Zeitweise bis zu sechs Entwickler*innen verteilt über ganz Deutschland haben über viele Monate hinweg die Migration des von uns als Genossenschaft betriebenen Grünen CMS vorbereitet. Möglichst geräuschlos sollte die Migration der Daten und der zugrundeliegenden Software TYPO3 von statten gehen: Wir haben es geschafft!

Ein einfaches Upgrade einer lokalen Software ist meist schnell gemacht, doch wer eine der größeren TYPO3-Installationen in Deutschland mit den vorhandenen Daten auf eine neue Software-Version überführen möchte, braucht dafür einen Plan. Einzelne Programmteile neu anzulegen und Daten hineinzukopieren ist aufgrund der Komplexität und Menge der Daten nicht möglich. Diese Aufgabe übernimmt eine eigens programmierte Migrations-Software, die die gesamte Datenbank schrittweise vom alten System in das neue System überführt.

Wir haben dabei nicht nur auf von der Open-Source-Community veröffentlichten Code zurückgegriffen, sondern selbst viele Programmzeilen geschrieben, die die Verwaltung von TYPO3-Installationen mit einer Vielzahl von Webseiten vereinfacht und die Migration von Daten und Plugins automatisiert. Die von uns entwickelten Erweiterungen und Plugins haben wir für alle TYPO-Entwickler*innen veröffentlicht (TYPO3-Repository und packagist.org). Wir hoffen, der Community im Sinne des Open-Source-Gedankens damit bei ähnlichen Vorhaben die Arbeit erleichtern zu können. Für die Spezialisten haben wir noch ein paar technische Details weiter unten erläutert.

Tag X

Planmäßig sollten für alle Redakteur*innen des Grünen CMS möglichst wenig Downtime – also Zeit in der das System nicht nutzbar ist – entstehen und für alle externen Besucher*innen die bestehenden Webseiten während der gesamten Zeit der Migration erreichbar bleiben.

Am 28. November 2022 startete die Migration pünktlich um 18 Uhr. Die Webseiten blieben in der bis dahin vorhandenen Form durchgehend erreichbar und auch die Downtime zur Bearbeitung konnten wir fast im vorgesehenen Rahmen halten, so dass am Morgen des 30. November der Zugang zur Bearbeitung wieder freigeschaltet wurde.

Unser User-Support hatte sich mit einer parallel entstandenen Dokumentation des neuen Systems auf Fragen der Redakteur*innen zum neuen System vorbereitet und konnte bei vereinzelten Problemen mit dem neuen System zeitnah helfen.

„Wir waren uns der Komplexität einer Migration von 519 Domains, 46.806 Seiten, 63 Extensions bewusst, deswegen freut es mich sagen zu können, dass unser Team es nach langer Vorbereitung auf den Punkt hinbekommen hat, diese Migration fast geräuschlos zu bewerkstelligen.“ sagt Georg Lösel als Projektleiter.

Eine Kollegin aus dem Support, die das System schon länger – auch schon vor den Zeiten der Betreuung durch verdigado – kennt, meinte nur lapidar: „Kein Update ist bisher so reibungslos durchgelaufen!“

Unsere Genossenschaft

Die verdigado e.G. ist eine recht junge Genossenschaft mit ca. 20 Mitarbeiter*innen über ganz Deutschland verteilt. Besonders stark engagiert sind wir als Dienstleisterin für BÜNDNIS 90/DIE GRÜNEN. Neben dem Grünen CMS als Angebot für Webpräsenzen von Gliederungen der Partei streamen wir Parteitage, haben Online-Abstimmungstools entwickelt und hosten für eine große Anzahl an Partei-Gliederungen und Fraktionen zahlreiche Anwendungen einschließlich von hunderten von Websites verschiedener Content-Management-Systeme.

Die Entwicklung von Open-Source-Software ist bei uns kein Lippenbekenntnis. Open-Source ist Verpflichtung in den Arbeitsverträgen unserer Entwickler*innen. Zum einen wollen wir damit den Communities etwas zurückgeben, zum anderen befeuern wir damit entschlossen den Wettbewerb – denn auch andere Anbieter*innen können mit unseren Softwarelösungen arbeiten. Wir wollen nicht bequem werden, sondern agil bleiben – im Interesse unserer Auftraggeber*innen.

Dass wir dabei eine Partei als Auftraggeberin haben, der nicht nur gesellschaftliche Teilhabe besonders am Herzen liegt, sondern auch die Demokratisierung von Bildung und deshalb auch von Software, freut uns natürlich ganz besonders.

Technische Details der Migration

Vom Altsystem unter TYPO3 8.7 wurde auf das System TYPO3 10.4 migriert. Dabei war es notwendig zwei zentrale Extensions (News und Kalender) komplett zu ersetzen.

Die Migration wurde basierend auf den Erfahrungen der Community so durchgeführt, dass die gesamte Datenbank mit Hilfe von Migrationsskripten in das neue System überführt wurde. Insgesamt über 100 einzelne Schritte mussten dabei nacheinander ausgeführt werden. Wenn nötig auch gezielt, wenn nur an einer Stelle etwas schiefgegangen war und man nicht alles wieder von vorne starten wollte. Dieser Schritt wurde immer wieder regelmäßig durchgeführt und damit hatten wir immer die aktuellsten Daten, da ja die Kunden das Live System weiter genutzt haben. Ein kompletter Migrationslauf dauerte anfänglich fast einen kompletten Tag, konnte dann aber durch Optimierungen auf die Hälfte reduziert werden.

In der Summe haben wir nun diverse Migrations-Erweiterungen, die bei der Migration verschiedenster Aspekte einer TYPO3 Instanz helfen:

Erweiterung für…altneu
NewsEXT:tt_newsEXT:org und EXT:xblog
KalenderEXT:calEXT:calendarize
MailsEXT:mailformEXT:formframework
MediendatenEXT:mediaEXT:textmedia

Unsere Extension Multisite führt ein sogenanntes Root-Pid-Prinzip ein, mit dem Daten in enormen Tempo durchsucht werden können, ohne die Performance spürbar zu belasten. Der Betrieb von vielen Sites in einer Instanz wird hierdurch stark erleichtert.

Die Extension Cache ermöglicht das Caching von Datensätzen beliebiger Erweiterungen mit einem Minimum an Konfigurations-Aufwand.

Die veröffentlichten Migrations-Skripte und Extensions sind vermutlich in den seltensten Fällen für Eure Anforderungen passgenau. Das ist aber auch gar nicht entscheidend. Entscheidend ist, dass diese Skripte Euch bei vergleichbaren bzw. ähnlichen Anforderungen nützliche Hinweise geben, wie Ihr Eure Migration automatisieren könnt und dadurch viel Zeit spart.

Ihr findet die Erweiterungen unter anderem, wenn Ihr auf packagist.org oder im TYPO3-Repository (TER) nach „verdigado“ sucht. Im TER listet auch die Suche nach „migration_“ die entscheidenden Treffer auf.