Exercice : Règles de mise à l’échelle automatique

Effectué

Nous allons ici examiner différents exercices pour configurer et déclencher la mise à l’échelle automatique de votre exemple d’application.

Exercice sur les règles

Dans votre exemple d’application Azure Spring Apps, votre application a déclenché une action de scale-out sur le microservice du service clientèle au moment de sa création.

L’application customers-service fait l’objet d’un scale-out dès que le nombre de requêtes Tomcat dépasse dix sessions par minute en moyenne. Après le déclenchement de la mise à l’échelle automatique, il fait l’objet d’un scale-in si le nombre de requêtes est inférieur ou égal à dix sessions par minute en moyenne.

Afficher la configuration de la mise à l’échelle automatique dans le portail Azure

  1. Dans un nouvel onglet du navigateur web, ouvrez le portail Azure.
  2. Dans la zone de recherche en haut, recherchez Azure Spring Apps.
  3. Dans la page Vue d’ensemble d’Azure Spring Apps, sélectionnez votre instance Azure Spring Apps parmi les résultats.
  4. Sélectionnez l’onglet Applications sous Paramètres dans le menu du volet de navigation de gauche.
  5. Sélectionnez l’application customers-service. La page Vue d’ensemble de l’application doit alors s’afficher.
  6. Accédez à l’onglet Scale-out sous Paramètres dans le menu à gauche de la page.

Capture d’écran du paramètre de scale-out dans le Portail Azure.

Deux options sont disponibles pour la gestion des demandes de mise à l’échelle automatique :

  1. Mise à l’échelle manuelle : conserve un nombre d’instances fixe. Avec le niveau Standard, vous pouvez effectuer un scale-out allant jusqu’à 500 instances. Cette valeur change le nombre d’instances distinctes de l’application de microservices en cours d’exécution.
  2. Mise à l’échelle automatique personnalisée : effectue la mise à l’échelle selon n’importe quelle planification en fonction de métriques.

Dans le Portail Azure, examinez la configuration préalable à l’installation de votre application. La figure suivante montre une mise à l’échelle automatique Personnalisée configurée pour effectuer une mise à l’échelle en fonction du nombre de requêtes tomcat.

Capture d’écran de la configuration de la mise à l’échelle automatique personnalisée dans le Portail Azure.

Afficher les événements de mise à l’échelle automatique terminés

Dans l’écran des paramètres Scale-out, accédez à l’onglet Historique des exécutions pour voir les actions de mise à l’échelle les plus récentes. L’onglet montre l’évolution de la capacité observée dans le temps sous forme de graphique, et un journal de toutes les actions de mise à l’échelle automatique.

Capture d’écran de l’historique des exécutions de mise à l’échelle automatique dans le portail Azure.

Déclencher l’action de scale-out à l’aide d’un script

Vous pouvez également déclencher la mise à l’échelle automatique manuellement à partir d’un navigateur web ou avec un script shell.

Pour tester les règles de mise à l’échelle automatique, nous générons une charge sur les instances. Cette charge simulée pousse les règles de mise à l’échelle automatique à effectuer un scale-out et à augmenter le nombre d’instances. À l’arrêt de la charge simulée, les règles de mise à l’échelle automatique effectuent un scale-in et réduisent le nombre d’instances.

Pour vous permettre de déclencher la mise à l’échelle automatique, nous avons mis à votre disposition un script d’interpréteur de commandes dans le même dépôt GIT que celui que vous avez utilisé pour créer votre application Azure Spring Apps.

  1. Définissez le nom d’instance de votre service Spring Apps en exécutant la commande suivante dans votre fenêtre Bash https://shell.azure.com. Utilisez le même nom de service Azure Spring Apps que celui que vous avez utilisé dans l’exercice précédent :

    export SPRING_APPS_SERVICE=<spring-apps-instance-name>
    
  2. Ensuite, dans la fenêtre Bash, exécutez les commandes suivantes pour effectuer des transactions sur votre micoservice customers-service :

    cd mslearn-autoscale-java
    sh loadTest.sh
    
  3. Dans la sortie du test de charge customers-service, vous devriez voir que 100 requêtes sont envoyées à votre instance.

Déclencher manuellement l’action de scale-out à partir d’un navigateur web (facultatif)

Pour déclencher manuellement la condition de scale-out dans le paramètre de mise à l’échelle automatique créé, il faut que le microservice customers-service comptabilise plus de dix requêtes en moins d’une minute.

  1. Ouvrez une nouvelle fenêtre de navigateur, puis accédez au microservice customers-service :

    https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners
    
  2. Rechargez rapidement la page plus de 10 fois.

Afficher l’action de scale-out

  1. Revenez dans la fenêtre de navigateur initiale et, dans le paramètre de mise à l’échelle automatique, sélectionnez l’onglet Historique des exécutions.

  2. Vous voyez normalement un graphique représentant le nombre d’instances.

  3. En quelques minutes, le nombre d’instances devrait augmenter de un à deux.

  4. Sous le graphique, vous devriez avoir les entrées du journal d’activité pour chaque action de mise à l’échelle déclenchée par ce paramètre de mise à l’échelle automatique.

Capture d’écran de l’historique de scale-out de mise à l’échelle automatique dans le portail Azure.

Action de scale-in

La condition de scale-in dans le paramètre de mise à l’échelle automatique se déclenche si le nombre de requêtes envoyées au microservice customers-service est inférieur ou égal à dix par minute.

  1. Vérifiez qu’aucune requête n’est envoyée à votre microservice customers-service et que la fenêtre du navigateur vers votre application/service est fermée.

  2. Observez le nombre d’instances. En quelques minutes, le nombre d’instances pourrait passer de 2 à 1 (voir le point important ci-après).

Capture d’écran de l’action de mise à l’échelle automatique dans le portail Azure.

Important

Il se pourrait que votre instance Azure Spring Apps ne soit pas mise à l’échelle car la mise à l’échelle automatique tentera d’estimer l’état final après sa mise à l’échelle. Cela signifie que la mise à l’échelle automatique devrait immédiatement déclencher une nouvelle mise à l’échelle, si le nombre moyen de requêtes Tomcat restait le même ou serait réduit à un petit nombre.