Herausforderung:
Ein Unternehmen möchte eine hochfrequentierte Webseite mit monatlich mehreren Millionen internationaler Besucher von einem Cloud-Anbieter zu einem anderen umziehen. Während des Umzugs soll das Website-Angebot durchgängig erreichbar bleiben.
Da der Inhalt der Seite aktiv gepflegt wird, müssen Editierpausen für die Redaktionsmitarbeiter so gering wie möglich ausfallen. Der Umzug umfasst auch die Datenbank und hat aufgrund von Plattformunterschieden Auswirkungen auf die bestehende Codebasis und Deploymentinfrastruktur.
Umsetzung:
Wir sichten zusammen mit der Entwicklungsabteilung des Kunden die Anforderungen für den Betrieb der Seite und planen Aufwände und Zeitplan. Über einen etwa zweimonatigen Zeitraum werden alle Vorbereitungen getroffen. Dabei wird von allen Beteiligten darauf geachtet, dass der Zeitpunkt des Umzugs flexibel gesetzt werden kann um der Redaktion der Seite einen möglichst großen Handlungsspielraum zu geben.
Eine Staging-Instanz wird beim neuen Cloudanbieter eingerichtet und dort das neue Deployment sowie die notwendigen Schritte für den Umzug zusammen mit dem Kunden mehrfach durchgespielt. Die Festlegung des Launchtermins wird darauf der Redaktion übergeben. Der Umzug selbst benötigt eine etwa zweistündige Sperrung des Adminbereichs, währenddessen der Inhalt zwischen den Clouds transferiert wird. Anschließend werden Besucher vom vorgeschalteten Load Balancer in Gruppen zu je 10% auf die neue Infrastruktur geleitet. Dies erlaubt den Systemadministratoren des Kunden die Last zu prüfen und die Anzahl notwendiger Instanzen langsam hochzufahren. Nach zwei weiteren Stunden ist der gesamte Traffic auf den neuen Instanzen gelandet, während der Umzug für Besucher der Seite vollkommen unbemerkt blieb.
Eingesetzte Techniken beinhalteten u.a. Ansible, Docker, Kubernetes, Helm, Redis, PostgreSQL und Django.