Exploration de SAP BTP, exécution Cloud Foundry
Développement d'applications dans SAP BTP, exécution Cloud Foundry
Gestion des déploiements dans SAP BTP, exécution Cloud Foundry
Optimisation et gestion des applications dans SAP BTP, exécution Cloud Foundry
Exploration des techniques avancées dans SAP BTP, exécution Cloud Foundry

Utilisation d'Application Autoscaler pour gérer votre charge de travail

Objective

After completing this lesson, you will be able to utilisez Application Autoscaler pour gérer votre charge de travail.

Mettre à l'échelle les applications Cloud Foundry avec Application Autoscaler

Scénario de gestion

Dans cet exercice, vous apprendrez à faire évoluer les applications Cloud Foundry à l'aide du service SAP BTP Application Autoscaler.

Imaginez être un développeur d'applications gérant une application d'achat hébergée sur SAP BTP Cloud Foundry. L'application connaît un trafic entrant élevé, ce qui entraîne une augmentation de l'utilisation du processeur. Par conséquent, le temps de réponse de l'application ralentit, ce qui entraîne des problèmes de performance pour les clients.

Ce scénario met en évidence la nécessité de faire évoluer votre application en raison de modèles d'utilisation élevée de l'UC. Le service Application Autoscaler dans SAP BTP Cloud Foundry peut vous aider en mettant automatiquement à l'échelle les applications Cloud Foundry en fonction d'une stratégie de mise à l'échelle définie. Il prend en charge différentes métriques de mise à l'échelle, telles que l'UC et l'utilisation de la mémoire.

Pour cet exercice, vous allez utiliser la métrique d'utilisation CPU du service Application Autoscaler.

Options d'exercice

Vous pouvez effectuer cet exercice de deux façons :

  1. Environnement en ligne à l'aide des instructions fournies ci-dessous, vous pouvez effectuer les étapes dans le compte SAP BTP gratuit.
  2. Simulation de plateforme : suivez les instructions étape par étape dans la simulation en cliquant sur le bouton « Commencer l’exercice » ci-dessous.

Remarque

Il est fortement recommandé d'effectuer d'abord les étapes dans l'environnement de production.

Flux de tâches

Dans cet exercice, vous allez effectuer les tâches suivantes :

  1. Préparer une stratégie de mise à l'échelle avec la métrique d'utilisation du processeur
  2. Déployer un exemple d'application sur Cloud Foundry
  3. Créer une instance de service d'Application Autoscaler
  4. Joindre (lier) une stratégie de mise à l'échelle à l'application
  5. Appliquer le chargement à l'application
  6. Suivi de la mise à l'échelle de l'application via CLI CF
  7. Nettoyage (facultatif)

Conditions préalables

  • Vous avez créé un compte gratuit sur SAP BTP. Si ce n'est pas le cas, suivez ce tutoriel.
  • L'organisation et l'espace Cloud Foundry doivent être disponibles dans l'environnement Cloud Foundry.
  • La CLI Cloud Foundry est installée localement pour interagir avec l'environnement Cloud Foundry. Si ce n'est pas le cas, suivez ce tutoriel.
  • Téléchargez l'exemple d'application CAP à partir du référentiel GitHub.

Comment obtenir de l'aide

Pour obtenir de l'aide lors des exercices, ajoutez votre question dans notre groupe de formation SAP BTP.

Simulation de plate-forme

Dans le cadre de l'exercice, vous utiliserez assez largement CF CLI pour effectuer une mise à l'échelle automatique de l'application. Utilisez votre propre environnement CF, par exemple un compte de niveau gratuit pour effectuer l'exercice. Cependant, l'environnement de flux de trésorerie suivant est utilisé dans l'exercice :

  • Point d'extrémité de l'API CF : https://api.cf.us10-001.hana.ondemand.com
  • CF org : ccc5375etrial
  • Espace CF : dév.
  • Nom de l'application : hello-cloud-foundry-srv

Tâche 1: Préparation d'une stratégie de mise à l'échelle avec métrique d'utilisation CPU

Préparons une stratégie de mise à l'échelle pour l'application. La stratégie d'échelle définit le nombre minimum et maximum d'instances. Il définit également les règles de mise à l'échelle en fonction du type de métrique, du seuil, de l'opérateur et de l'ajustement.

Étapes

  1. Clonez le référentiel à partir de GitHub (si vous ne l'avez pas encore fait).

    1. Saisissez :

      git clone https://github.com/SAP-samples/cloud-foundry-runtime-learning-journey.git

    2. Naviguez jusqu'au répertoire de l'exemple d'application :

      – cd cloud-foundry-runtime-learning-journey

  2. Compilez l'application.

    1. Saisissez :

      npm install

    2. Saisissez :

      cds build --production

  3. Créez un fichier cpu_scaling_policy.json avec le contenu suivant :

    JSON
    12345678910111213141516171819202122
    { "instance_min_count": 1, "instance_max_count": 2, "scaling_rules": [ { "metric_type": "cpuutil", "breach_duration_secs": 120, "threshold": 80, "operator": ">", "cool_down_secs": 300, "adjustment": "+1" }, { "metric_type": "cpuutil", "breach_duration_secs": 120, "threshold": 80, "operator": "<", "cool_down_secs": 300, "adjustment": "-1" } ] }
    1. Saisissez le code ci-dessus.

      Comprenons la politique de mise à l'échelle ci-dessus :

      • Règle de mise à l'échelle : si l'utilisation de la CPU est supérieure à 80 % pendant deux minutes (120 secondes), ajoutez une instance à l'application, à condition que le nombre maximal d'instances ne soit pas atteint.
      • Mise à l'échelle dans la règle : si l'utilisation de la CPU est inférieure à 80 % pendant deux minutes (120 secondes), supprimez une instance de l'application, à condition que le nombre minimum d'instances ne soit pas atteint.

Tâche 2: Déployer un exemple d'application dans Cloud Foundry

Étapes

  1. Connectez-vous à l'environnement Cloud Foundry à l'aide de la CLI Cloud Foundry.

    1. Saisissez :

      cf login --sso

      Ciblez l'organisation et l'espace, où <org> et <space> sont respectivement les noms d'organisation et d'espace :

      cf target -o <org> -s <space>

  2. Poussez l'application vers Cloud Foundry sans la lancer.

    1. Saisissez :

      cf push -f manifest.yml --no-start

      Info : vous avez utilisé le fichier manifeste CF (manifest.yml) pour déployer l'application sur BTP Cloud Foundry. Une autre approche consiste à utiliser une application multicible (MTA). Consultez la documentation pour en savoir plus.

Tâche 3: Création d'une instance de service d'Application Autoscaler

Étapes

  1. Créez une instance de service d'Application Autoscaler avec le nom d'instance de service my-autoscaler-service, le plan de service standard et le nom de service autoscaler.

    1. Saisissez :

      cf create-service autoscaler standard my-autoscaler-service

Tâche 4: Joindre (lier) la stratégie de mise à l'échelle à l'application

Étapes

  1. Joignez l'autoscaler et la stratégie de mise à l'échelle à l'application.

    1. Saisissez :

      cf bind-service hello-cloud-foundry-srv my-autoscaler-service -c cpu_scaling_policy.json
  2. Lancez l'application.

    1. Saisissez :

      cf start hello-cloud-foundry-srv
  3. Vérifiez si l'application est en cours d'exécution.

    cf app hello-cloud-foundry-srv

    Sortie :

    Code Snippet
    1234567891011121314151617
    # Output Showing health and status for app hello-cloud-foundry-srv in org ccc5375etrial / space name: hello-cloud-foundry-srv requested state: started isolation segment: trial routes: hello-cloud-foundry-srv.cfapps.us10-001.hana.ondemand.com last uploaded: Mon 02 Sep 12:20:35 CEST 2024 stack: cflinuxfs4 buildpacks: isolation segment: trial name version detect output buildpack name nodejs_buildpack 1.8.25 nodejs nodejs type: web sidecars: instances: 1/1 memory usage: 256M state since cpu memory disk details #0 running 2024-09-03T11:26:37Z 1.1% 70M of 256M 184.8M of 1G

    Comme indiqué dans la sortie, l'application s'exécute avec une instance à l'index zéro.

  4. Accédez à notre application déployée.

    1. Récupérez la route de l'application à partir de la sortie de la commande précédente. Pour ce faire, saisissez :

      Code Snippet
      1
      cf app hello-cloud-foundry-srv | grep routes

      Dans notre cas, la route de l'application est : https://hello-cloud-foundry-srv.cfapps.us10-001.hana.ondemand.com. Si vous accédez à l'URL, vous verrez le message de bienvenue de l'application, qui confirme que l'application est en cours d'exécution.

Tâche 5: Appliquer le chargement à l'application

Désormais, votre application est jointe au service autoscaler avec la stratégie de mise à l'échelle.

Appliquons une certaine charge CPU à l'application pour voir la mise à l'échelle en action.

Remarque

En pratique, une plate-forme Cloud Foundry calcule automatiquement les métriques standard, par exemple l'unité centrale, la mémoire, l'utilisation du disque, etc. Ces métriques sont ensuite lues par le service autoscaler pour effectuer la mise à l'échelle en fonction de la stratégie de mise à l'échelle. Cependant, si vous mettez à l'échelle en fonction des paramètres personnalisés (paramètres définis par l'utilisateur), vous devez soumettre les paramètres au service autoscaler.

Heureusement, votre exemple d'application offre un point d'extrémité '/useCPU' pour augmenter artificiellement l'utilisation élevée de cpu sur l'application.

Étapes

  1. Ouvrez un navigateur et exécutez une requête HTTP GET pour appliquer une charge CPU à l'application. En outre, vous êtes libre d'utiliser n'importe quel outil de votre choix, par exemple Postman pour un client HTTP, ou curl pour envoyer une requête HTTP à l'application.

    1. Saisissez :

      https://hello-cloud-foundry-srv.cfapps.us10-001.hana.ondemand.com/odata/v4/catalog/useCPU(action= 'start',duration='4')

      La sortie :

      JSON
      12345678
      { "@odata.context": "$metadata#Edm.String", "value": { "status": "started", "metric": "cpuutil", "service": "Application Autoscaler" } }

Résultat

Vous avez augmenté le processeur pendant 4 minutes. Après 4 minutes, le CPU revient à la normale.

Tâche 6: Suivi de la mise à l'échelle de l'application

Dans cette tâche, vous vérifierez si l'application est mise à l'échelle en fonction de notre politique de mise à l'échelle (définie dans la tâche 1).

Étapes

  1. Vérifiez le statut de mise à l'échelle de l'application.

    1. Utilisez la commande suivante :

      cf app hello-cloud-foundry-srv

      Vous pouvez utiliser à plusieurs reprises la commande ci-dessus, par exemple, watch cf app hello-cloud-foundry-srv. Après 2-3 minutes, vous constaterez que le nombre d'instances augmente.

      Sortie :

      Code Snippet
      12345678910111213141516171819
      # Output Showing health and status for app hello-cloud-foundry-srv in org ccc5375etrial / space name: hello-cloud-foundry-srv requested state: started isolation segment: trial routes: hello-cloud-foundry-srv.cfapps.us10-001.hana.ondemand.com last uploaded: Tue 03 Sep 17:30:56 CEST 2024 stack: cflinuxfs4 buildpacks: isolation segment: trial name version detect output buildpack name nodejs_buildpack 1.8.25 nodejs nodejs type: web sidecars: instances: 2/2 memory usage: 256M state since cpu memory disk details #0 running 2024-09-03T15:38:43Z 0.9% 69.4M of 256M 184.8M of 1G #1 running 2024-09-03T15:36:56Z 0.9% 71.1M of 256M 184.8M of 1G

      Comme indiqué dans la sortie, l'application est réduite à deux instances en fonction de la stratégie de mise à l'échelle (définie dans la tâche 1) par le service Application Autoscaler.

      Maintenant, détendez-vous et profitez des performances de votre application à l'aide du service Application Autoscaler.

Tâche 7: Nettoyage (facultatif)

Étapes

  1. Annulez la liaison du service autoscaler de l'application.

    1. Saisissez :

      cf unbind-service hello-cloud-foundry-srv my-autoscaler-service
  2. Supprimez l'instance de service autoscaler.

    1. Saisissez :

      cf delete-service my-autoscaler-service -f
  3. Supprimez l'application.

    1. Saisissez :

      cf delete hello-cloud-foundry-srv -f

Résultat

Félicitations ! Vous avez terminé l'exercice. Vous avez appris à faire évoluer les applications Cloud Foundry à l'aide d'Application Autoscaler en suivant ces étapes :

  • Définition d'une stratégie de mise à l'échelle basée sur la métrique d'utilisation de l'UC.
  • Déploiement d'un exemple d'application dans Cloud Foundry.
  • Création et liaison de l'instance de service d'Application Autoscaler à l'application.
  • Charge appliquée à l'application pour augmenter l'utilisation du processeur.
  • Enfin, la mise à l'échelle de l'application surveillée et le nettoyage des ressources.

Liens de référence/lecture ultérieure