
Die Google Compute Engine bietet mit der "Live Migration" eine wirklich einzigartige Technologie: Ihre Instanzen laufen weiter, selbst wenn der Host eine Downtime hat – etwa während eines Software- oder Hardware-Updates. Statt Ihre Instanzen neu zu starten, verschiebt die Google Compute Engine die laufende Instanz auf einen anderen physischen Host innerhalb derselben Netzwerkzone.
Mit der Live Migration kann Google Wartungsarbeiten durchführen, die für eine geschützte und zuverlässige Infrastruktur unerlässlich sind, ohne dass Ihre Instanzen unterbrochen werden. Live Migration ist ein wirklich cooles Feature, und Google verspricht:
"Ihre Instanz erlebt unter Umständen eine kurze Phase mit verminderter Performance, in der Regel sollten die meisten Instanzen jedoch keinen Unterschied bemerken."
Diese Behauptung wollten wir natürlich auf die Probe stellen ;-) Praktischerweise lässt sich ein Wartungsereignis auf einer Instanz problemlos simulieren – entweder über das Kommandozeilen-Tool gcloud oder per API-Aufruf:
gcloud beta compute instances simulate-maintenance-event [INSTANCE_NAME] \ --zone [ZONE]ORPOST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/simulateMaintenanceEventUm den Test möglichst praxisnah zu gestalten, haben wir auf der Test-Instanz Last erzeugt, anschließend eine Live Migration ausgelöst und beobachtet, wie sich das auf die Instanz auswirkt.
Über den Cloud Launcher haben wir eine n1-standard-1-Maschine mit nginx (von Bitnami) aufgesetzt. Für die Lasterzeugung haben wir uns für K6 entschieden – ein entwicklerorientiertes Open-Source-Lasttest-Tool, geschrieben in Go. Die Testergebnisse haben wir in InfluxDB abgelegt und mit Grafana visualisiert.
Hier unser Skript:

Zum Starten der Lasterzeugung haben wir K6 wie folgt aufgerufen:
k6 run — out influxdb=http://x.x.x.x:8086/myk6db — vus 50 — duration 10m — rps 6000 test.jsNach rund 60 Sekunden haben wir die Simulation des Wartungsereignisses gestartet.


Wie zu sehen ist, lag die Antwortzeit für etwa 2 Sekunden deutlich höher, und unsere Instanz hat in dieser Zeit keine Anfragen verarbeitet. Fehler traten dabei jedoch nicht auf, und der Client wurde während der Migration weiter bedient.
Denselben Test haben wir auf einer größeren Instanz (n1-standard-4) wiederholt:


Abschließend noch ein Test auf einer noch größeren Instanz, die 10.000 Requests pro Sekunde bedient (gegenüber 6.000 in den vorherigen Tests).


Die Diagramme zeigen: Das Verhalten bleibt über verschiedene workloads und Instanztypen hinweg konsistent. Während der Live Migration ist mit rund 2 Sekunden zu rechnen, in denen Ihre Instanz nicht antwortet – Verbindungen werden dabei jedoch nicht abgebrochen, und in unseren Tests sind keinerlei Fehler aufgetreten.
Live Migration ist ein cooles und einzigartiges Feature in der Public Cloud und beim Erstellen von Instanzen in der Google Compute Engine die Standardoption – und jetzt können Sie selbst testen, wie sich Ihre App während einer Live Migration verhält.
Lust auf mehr? Schauen Sie in unserem Blog vorbei oder folgen Sie Aviv auf Twitter.