Trusty Server-Migrationen bei nine.ch

nine Team Aug. 27, 2018

Aus aktuellem Anlass möchten wir in diesem Beitrag gerne auf das Thema “Server-Migrationen bei nine.ch” eingehen und erklären, warum diese notwendig sind, wie sie bei nine.ch umgesetzt werden und welche Aspekte unsere Kunden dabei beachten sollten.

Weshalb muss ein Server migriert werden?

Wie vieles im Leben, hält auch ein Server mit entsprechender Hardware und der darauf laufenden Software nicht ewig. Betriebssysteme, aber auch genutzte Dienste wie z.B. PHP oder MySQL, erreichen einen Zeitpunkt, an dem sich die Wartung nicht mehr lohnt. Schuld daran ist der - eigentlich positive - Wandel der Technologie. Für Entwickler und Administratoren von Applikationen und Servern kann dies jedoch auch problematisch sein.

Software, die längere Zeit auf dem Markt ist, wird immer verwundbarer und die Wartung wird stetig aufwändiger. Da sich Technologien verändern, muss - je älter eine Software ist - auch teils veraltetes Know-how zu dieser Software verfügbar sein und angewendet werden können. Dies kann zum Teil zu Problemen führen. So ist es für Hersteller von Betriebssystemen eine Herausforderung und sehr aufwändig, Lücken von älteren Versionen zu schliessen, um den Sicherheitsaspekt weiterhin gewährleisten zu können. Vor allem, wenn diese Lücken mit neueren Versionen automatisch geschlossen werden. Aber auch für Entwickler, die sich z.B. an Veränderungen der Programmiersprachen gewöhnt haben, ist der Wartungsaufwand enorm erhöht.

Um dem entgegen zu wirken, wurden bei vielen Herstellern mittlerweile so genannte “Life-Cycles”, also Lebenszyklen definiert. Diese legen fest, wie lange eine Software gewartet und unterstützt wird. Dadurch lassen sich für Entwickler und Administratoren die benötigten Migrationen auf aktuelle Technologien genauer planen. Dies ist daher auch einer der Gründe, weshalb wir auf Ubuntu mit genau 5-jährigem LTS (“Long Term Support” - Langzeitsupport) setzen.

Grundsätzlich ist es immer gleich mit Technologien: sie verbessern sich nur durch Erweiterungen und Neuerungen. Was dann eben auch bedeutet, veraltete Konzepte und Lücken aufzugeben und abzustossen. Dank der Migrationen, die wir bisher durchgeführt haben, konnten wir mittlerweile einige Erfahrung sammeln. Aus diesem Grund möchten wir unsere Kunden bei diesem Prozess so aktiv wie möglich unterstützen.

Wie läuft eine typische Migration bei nine.ch ab?

Es gibt hierbei zwei Auslöser von Migrationen:

Migration aufgrund Kundenwunsch

Sie möchten als Kunde von nine.ch auf eine aktuellere Version migrieren, die in den Repositories zur Verfügung steht und von nine.ch angeboten wird (z.B. von  PHP 5.6 auf PHP 7.2, oder von Ubuntu 16.04 auf Ubuntu 18.04). Für dieses Vorhaben stellen wir Ihnen einen zweiten Server mit den gewünschten Konfigurationen zur Verfügung. Danach migrieren Sie Ihre Daten und testen Ihre Applikationen, bis alles wie gewünscht und einwandfrei funktioniert. Anschliessend werden bestimmte Einstellungen, wie z.B. DNS Einträge (auf Wunsch auch mit einem reverse Proxy für eine Weiterleitung auf den neuen Server) umgestellt und der alte Server wird nach Rückmeldung durch Sie abgeschaltet.

Migration aufgrund des auslaufenden Supportes

nine.ch informiert die Kunden über das EOL (End-of-Life) ihrer Produkte. Hierbei erhalten die Kunden ein E-Mail mit Details zur Migration und dem Verweis auf das Migrations-Portal von nine.ch (Login mit den Cockpit-Login Daten). Über das Migrations-Portal können die Kunden praktisch und einfach mit nine.ch bezüglich dem betroffenen Server kommunizieren, sich über möglichen Optionen informieren, Rückmeldungen geben und den Status der Migration einsehen. Auch in diesem Fall stellen wir unseren Kunden einen zweiten Server, welcher parallel zum produktiven System läuft, zur Verfügung. Im Gegensatz zur selbstgewählten Migration, werden Ihre Daten durch uns auf den neuen Server kopiert, um den Aufwand für Sie möglichst gering zu halten.

Im Migrationstool selbst können Sie durch einen Klick auf “Migrationsoption wählen” die gewünschten Versionen auswählen und ein Wunschdatum für die Migration hinzufügen. Der Kommentar führt zu einer Meldung bei nine.ch, woraufhin - entsprechend Ihrer Angaben - ein zweiter Server zur Verfügung gestellt wird. Dabei installieren wir das neue System, konfigurieren es - soweit möglich - anhand des alten Systems, kopieren Ihre Daten und überprüfen die Korrektheit anhand unsere Qualitätssicherung. Im Anschluss erhalten Sie die neuen Zugangsdaten in einem separaten E-Mail und im Migrationstool wird der Server in den Status “Migrations-Check” gesetzt.

Nun haben Sie als Kunde die Gelegenheit zu prüfen, ob alles funktioniert oder allenfalls Anpassungen an den Applikationen vorgenommen werden müssen, beispielsweise aufgrund der Veränderung der PHP Versionen und den dabei entstandenen Inkompatibilitäten. Das alte System bleibt während Ihrer Testphase produktiv erhalten, damit Sie genügend Zeit haben, das neue System Ihren Wünschen entsprechend zu konfigurieren. Sollten Probleme auf der Serverseite auftauchen, können Sie per Klick den Status im Migrationstool auf “Nacharbeit” setzen und via Kommentar eine Erläuterung der Probleme hinzufügen. Ein Mitarbeiter von nine.ch wird sich dann schnellstmöglich darum kümmern.

Sobald der neue Server wie gewünscht eingerichtet ist, werden wir - in Abstimmung mit Ihnen - die finale Synchronisierung umsetzen. Damit sich keine Daten mehr verändern, wird auf dem alten System eine Wartungsseite aufgeschaltet. Anschliessend werden alle geänderten Daten erneut synchronisiert (je nach vereinbarter Umsetzung wird danach z.B. ein reverse Proxy aufgeschaltet - was bedeutet, dass vom alten Server die Anfragen auf den neuen weitergereicht werden). Somit ist das neue System nun produktiv.

Reverse Proxy
Reverse Proxy

Das alte System schalten wir nach Ihrer positiven Rückmeldung ab. Für ungefähr 10 Tage ist das System bei uns noch reaktivierbar, um im Notfall reagieren zu können. Die Migration ist somit abgeschlossen.

Was sollten Sie als Kunde beachten oder tun?

Die folgenden Punkte sind wichtig für die Umsetzung:

  • Bekanntgabe, welche Migrationsoption Sie wünschen (mögliche Auswahl durch nine.ch vorgegeben)

  • Wunschdatum für Auslieferung des neuen Servers zu Testzwecken angeben

  • Wunschdatum für finale Synchronisierung angeben

  • Anpassen und Testen der Applikationen, allfällige Konfigurationsanpassungen, die seitens nine.ch vorgenommen werden müssen, mitteilen

Dies sollten Sie berücksichtigen:

  • Auf dem neuen Server sollte grundsätzlich nur die Funktionalität überprüft werden. Bei Neuerstellungen von beispielsweise Datenbanken oder Inhalten, kann es bei der finalen Synchronisierung zu einer Überschreibung kommen. Das kann jedoch vermieden werden. Falls zwingend neue Inhalt benötigt werden, ist es besser, diese auf dem alten Server zu erstellen - die Synchronisierung sorgt dafür, dass der Content auf das neue System übertragen wird. Auf Wunsch kann nine.ch auch eine zweite Synchronisierung vor dem finalen Sync vornehmen.

  • Lassen Sie sich nicht zu viel Zeit mit der Migration. Sobald die Sicherheitsunterstützung eines Produktes ausgelaufen ist, steigt das potenzielle Risiko an. So kann beispielsweise ein Server kompromittiert werden und uns ist es nicht mehr möglich den Server 1:1 aufsetzen, da es sich um ein veraltetes System handelt. Daher müssten wir in diesem Moment auf ein aktuelles System migrieren, was wiederum ungewollt langen Downtimes führen kann.

Wir hoffen, Ihnen mit diesem Beitrag das Thema “Migration bei nine.ch” etwas näher gebracht zu haben. Sollten Sie Rückfragen oder Anmerkungen haben, steht Ihnen das Team von nine.ch gerne per E-Mail oder Telefon zur Verfügung.