Mode de gestion des instances

Les instances sont les unités de calcul dont se sert App Engine pour procéder au scaling automatique d'une application. À tout moment, votre application peut être exécutée sur une ou plusieurs instances, les demandes étant réparties sur toutes les instances.

Vos instances avec un scaling manuel et de base devraient fonctionner indéfiniment, mais il n'y a aucune garantie de disponibilité. Les pannes matérielles ou logicielles qui entraînent une résiliation anticipée ou des redémarrages fréquents peuvent survenir sans avertissement et prendre un temps considérable à résoudre.

Toutes les instances flexibles sont redémarrées toutes les semaines. Lors des redémarrages, les mises à jour critiques, à compatibilité ascendante, sont automatiquement déployées sur le système d'exploitation sous-jacent. L'image de votre application restera la même après les redémarrages.

Vérification de l'état des machines

App Engine envoie des demandes de vérification d'état périodiques pour confirmer qu'une instance a été déployée avec succès et pour vérifier qu'une instance en cours d'exécution reste opérationnelle. Chaque vérification de l'état doit recevoir une réponse dans un intervalle de temps spécifié. Une instance n'est pas opérationnelle lorsqu'elle ne répond pas à un nombre spécifié de demandes de vérifications de l'état consécutives. Une instance non opérationnelle ne recevra aucune demande client, mais des vérifications de l'état seront toujours envoyées. Si une instance non opérationnelle continue à ne pas répondre à un nombre prédéterminé de vérifications d'état consécutives, elle sera redémarrée.

Il existe deux types de vérifications d'état : activité et aptitude. Les vérifications d'activité confirment l'exécution d'une instance et de son conteneur, en relançant les instances qui échouent à la vérification. Les vérifications d'aptitude confirment qu'une instance est prête à accepter les requêtes entrantes, et ne transfèrent pas les requêtes aux instances qui échouent à la vérification. Les deux sont personnalisables via le fichier app.yaml de votre application.

Une application opérationnelle doit répondre à une vérification d'état avec le code d'état HTTP 200.

Contrôle de l'utilisation des ressources

La page "Instances" de Cloud Console offre de la visibilité sur les performances de vos instances. Vous pouvez vérifier l'utilisation de la mémoire et du processeur de chaque instance, la disponibilité, le nombre de requêtes et d'autres statistiques. Vous pouvez également lancer manuellement le processus d'arrêt pour n'importe quelle instance.

Emplacement des instances

Les instances sont automatiquement localisées par région géographique en fonction des paramètres du projet.

Scaling d'instance

Lorsqu'une application est en cours d'exécution, les requêtes entrantes sont routées vers une instance existante ou nouvelle du service/de la version appropriée. Chaque version active doit avoir au moins une instance en cours d'exécution, et le type de scaling d'un service ou d'une version contrôle la manière dont les instances supplémentaires sont créées. Les paramètres de scaling sont configurés dans le fichier app.yaml. Il existe deux types de scaling.

Autoscaling
Le scaling automatique crée des instances sur la base du taux de requêtes, des latences de réponse et d'autres métriques d'application. Vous pouvez spécifier des seuils pour chacune de ces métriques, ainsi qu'un nombre minimal d'instances à conserver en permanence.
Scaling manuel
Le scaling manuel spécifie le nombre d'instances qui s'exécutent en continu quel que soit le niveau de charge. Cela permet d'effectuer des tâches telles que des initialisations complexes, et de concevoir des applications qui dépendent de l'état de la mémoire au fil du temps.