Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Quel est l'impact réel de la *Live Migration* sur Google Compute Engine ?

By Aviv LauferApr 23, 20183 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

1 wyzvzjl4xoz hqqiopxu0a

Google Compute Engine propose une technologie singulière, la Live Migration, qui maintient vos instances actives même lorsqu'un hôte subit une indisponibilité, par exemple lors d'une mise à jour logicielle ou matérielle. Plutôt que d'imposer un redémarrage, Google Compute Engine déplace votre instance en cours d'exécution vers un autre hôte physique de la même zone réseau.

La Live Migration permet à Google d'effectuer la maintenance indispensable au maintien d'une infrastructure protégée et fiable, sans interrompre la moindre de vos instances. C'est une fonctionnalité particulièrement intéressante, et Google affirme que :

" votre instance peut connaître une courte période de performances réduites, même si, en règle générale, la plupart des instances ne devraient remarquer aucune différence. "

Naturellement, nous avons voulu vérifier cette affirmation ;-) Heureusement, il est facile de simuler un événement de maintenance sur une instance via l'outil en ligne de commande gcloud ou via un appel API :

gcloud beta compute instances simulate-maintenance-event [INSTANCE_NAME] \
--zone [ZONE]
OR
POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/simulateMaintenanceEvent

Pour rapprocher notre test d'un scénario réel, nous avons choisi de générer de la charge sur notre instance de test, puis de déclencher un événement de Live Migration afin d'en observer l'impact.

Avec Cloud Launcher, nous avons créé une machine n1-standard-1 exécutant nginx (par Bitnami). Pour la génération de charge, nous avons retenu K6 — un outil open source de tests de charge orienté développeurs, écrit en Go. Les résultats ont été stockés dans InfluxDB et visualisés avec Grafana.

Voici notre script :

1 c5h8lyikn52mhubnhecxjq

Pour déclencher la charge, nous avons exécuté K6 ainsi :

k6 run — out influxdb=http://x.x.x.x:8086/myk6db — vus 50 — duration 10m — rps 6000 test.js

Au bout d'une soixantaine de secondes, nous avons lancé la simulation de l'événement de maintenance.

1 se um2 uia zye1egbaebg1 d9whzbyofndonludzef60g

Comme on peut le constater, durant un intervalle d'environ 2 secondes, le temps de réponse a fortement augmenté et notre instance n'a traité aucune requête. Aucune erreur n'a toutefois été enregistrée et le client a continué d'être servi pendant la migration.

Nous avons reproduit le même test sur une instance plus grande (n1-standard-4) :

1 pzdsy4umhyfqolqgfoaihq1 ce2p8ycbyo afnkrjj2wha

Enfin, un dernier test sur une instance encore plus grande, traitant 10 000 requêtes par seconde (contre 6 000 lors des tests précédents).

1 cj 1wi2cdm80lxjlwcfqma1 cxxywqedptzzqtfr5mpt a

Comme le montrent les graphiques, le comportement reste cohérent quels que soient les workloads et les types d'instances. Comptez environ 2 secondes durant lesquelles votre instance ne répondra pas pendant la live migration ; en revanche, aucune connexion n'est interrompue et nous n'avons observé aucune erreur lors de nos tests.

La Live Migration est une fonctionnalité originale et unique dans le cloud public, activée par défaut lors de la création d'instances sur Google Compute Engine, et vous pouvez désormais évaluer le comportement de votre application durant une live migration.

Envie d'autres articles ? Consultez notre blog ou suivez Aviv sur Twitter.