Démarrage rapide : configurer la mise à l’échelle automatique pour les applications dans le plan de consommation et dédié Standard d’Azure Spring Apps

Notes

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s’applique à : ✔️ plan de consommation et dédié Standard (préversion) ❌ De base/Standard ❌ Enterprise

Cet article explique comment configurer des règles de mise à l’échelle automatique pour vos applications dans le plan de consommation et dédié Standard d’Azure Spring Apps. Le plan utilise un environnement Azure Container Apps pour héberger vos applications Spring et fournit la gestion et le support suivants :

  • Gère la mise à l’échelle horizontale automatique en utilisant un ensemble de règles de mise à l’échelle déclaratives.
  • Prend en charge toutes les règles de mise à l’échelle que Azure Container Apps prend en charge.

Pour plus d’informations, consultez la documentation de Azure Container Apps.

Prérequis

Définition de mise à l’échelle

La mise à l’échelle est définie par la combinaison de limites et de règles.

  • Les limites sont le nombre minimal et maximal d’instances autorisées par votre Spring.

    Limite de la mise à l’échelle Valeur par défaut Valeur min Valeur max
    Nombre d’instances minimum par déploiement 1 0 30
    Nombre d’instances maximum par déploiement 10 1 30

    Par défaut, le nombre minimal d’instances de votre application Spring est défini sur 1 pour garantir que votre déploiement est toujours en cours d’exécution. Si vous souhaitez effectuer un scale-in à zéro, vous pouvez définir le nombre minimal d’instances sur zéro.

  • Les règles sont les critères auxquels la mise à l’échelle automatique se conforme pour ajouter ou supprimer des instances. Les règles de mise à l’échelle incluent des règles HTTP, TCP et personnalisées, comme décrit dans la section Règles de mise à l’échelle de l’article Définir des règles de mise à l’échelle dans Azure Container Apps.

    Si vous définissez plusieurs règles d’échelle, la mise à l’échelle automatique commence lorsque la première condition d’une règle est remplie.

  • L’intervalle d’interrogation et la période de refroidissement sont deux intervalles de temps qui se produisent pendant la mise à l’échelle automatique.

    • L’intervalle d’interrogation définit l’intervalle de temps entre chaque action d’interrogation des données en temps réel, tel que défini par vos règles. L’intervalle d’interrogation est défini sur 30 secondes par défaut.
    • La période de refroidissement s’applique uniquement lors de la mise à l’échelle vers zéro, par exemple, pour attendre cinq minutes après la dernière vérification de la mise à l’échelle automatique de la file d’attente des messages et qu’elle était vide.

Configurer les paramètres de mise à l'échelle automatique

Vous pouvez configurer les paramètres de mise à l’échelle automatique pour votre application à l’aide de la Portail Azure ou de Azure CLI.

Utilisez les étapes suivantes pour définir des paramètres et des règles de mise à l’échelle automatique.

  1. Connectez-vous au portail Azure.
  2. Sélectionnez Azure Spring Apps sous Services Azure.
  3. Dans la colonne Nom , sélectionnez l’instance Azure Spring Apps que vous souhaitez mettre à l’échelle automatiquement.
  4. Dans la page vue d’ensemble de votre instance Azure Spring Apps, sélectionnez Applications dans le volet de navigation.
  5. Sélectionnez l'application à mettre automatiquement à l’échelle.
  6. Dans la page vue d’ensemble de l’application sélectionnée, sélectionnez Monter en puissance dans le volet de navigation.
  7. Dans la page Scale-out (préversion), sélectionnez le déploiement que vous souhaitez mettre à l’échelle automatiquement.
  8. Configurez les limites d’instance de votre déploiement.
  9. Sélectionnez Ajouter pour ajouter vos règles de mise à l’échelle.

Screenshot of the Azure portal preview version showing the Scale out page for an app in an Azure Spring Apps instance.

Règles de mise à l’échelle personnalisées

Pour plus d’informations sur la définition de règles personnalisées, consultez Échelles Keda. Les sections suivantes présentent deux exemples de définition de règles d’échelle sur MySQL et Cron.

Configurer des règles de mise à l’échelle automatique sur une base de données MySQL

Les commandes CLI suivantes vous montrent comment mettre à l’échelle automatiquement votre application Spring en fonction de Keda MySQL Scaler. Tout d’abord, créez un secret pour stocker votre chaîne de connexion SQL. Ce secret sera utilisé pour l’authentification de votre règle de mise à l’échelle. Ensuite, configurez une règle qui mettra à l’échelle l’application en fonction du nombre de lignes d’une table.

az spring app update \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --secrets mysqlconnectionstring="<username>:<pwd>@tcp(<server name>:3306)/<database name>" 

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type mysql \
    --scale-rule-name <your rule name> \
    --scale-rule-auth "connectionString=mysqlconnectionstring" \
    --scale-rule-metadata queryValue=4 query="SELECT count(*) FROM mytable" \
    --min-replicas 0 \
    --max-replicas 3

Créer une règle basée sur Linux cron

Les commandes suivantes vous montrent comment configurer une règle basée sur Keda Cron Scaler. Les réplicas sont mis à l’échelle jusqu’au nombre souhaité pendant l’intervalle de temps cron.

az spring app scale \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-service-instance-name> \
    --name <app-name> \
    --scale-rule-type cron \
    --scale-rule-name testscalerule \
    --scale-rule-metadata timezone="Asia/Shanghai" \
                          start="10 * * * *" \
                          end="15 * * * *" \
                          desiredReplicas="3" \
    --min-replicas 0 \
    --max-replicas 3

Événements de mise à l’échelle

Vous pouvez rechercher les événements de mise à l’échelle à partir des journaux système de votre application conteneur sous-jacente et filtrer eventSource à l’aide de KEDA, comme illustré dans l’exemple suivant :

ContainerAppSystemLogs_CL 
| where ContainerAppName_s == 'YourAppName' and EventSource_s == 'KEDA'

Nettoyer les ressources

Assurez-vous de supprimer les ressources que vous avez créées dans cet article lorsque vous n’en aurez plus besoin. Pour supprimer les ressources, supprimez simplement le groupe de ressources qui les contient. Vous pouvez supprimer le groupe de ressources à l’aide du portail Azure. Vous pouvez aussi supprimer le groupe de ressources à l’aide d’Azure CLI et des commandes suivantes :

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Étapes suivantes