Scénario de gestion
Options d'exercice
Flux de tâches
Conditions préalables
Comment obtenir de l'aide
Simulation de plate-forme
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
Clonez le référentiel à partir de GitHub (si vous ne l'avez pas encore fait).
Saisissez :
git clone https://github.com/SAP-samples/cloud-foundry-runtime-learning-journey.git
Naviguez jusqu'au répertoire de l'exemple d'application :
– cd cloud-foundry-runtime-learning-journey
Compilez l'application.
Saisissez :
Saisissez :
Créez un fichier cpu_scaling_policy.json avec le contenu suivant :
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"
}
]
}
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
Connectez-vous à l'environnement Cloud Foundry à l'aide de la CLI Cloud Foundry.
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>
Poussez l'application vers Cloud Foundry sans la lancer.
Saisissez :
cf push -f manifest.yml --no-startInfo : 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
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.
Saisissez :
cf create-service autoscaler standard my-autoscaler-service
Tâche 4: Joindre (lier) la stratégie de mise à l'échelle à l'application
Étapes
Joignez l'autoscaler et la stratégie de mise à l'échelle à l'application.
Saisissez :
cf bind-service hello-cloud-foundry-srv my-autoscaler-service -c cpu_scaling_policy.json
Lancez l'application.
Saisissez :
cf start hello-cloud-foundry-srv
Vérifiez si l'application est en cours d'exécution.
cf app hello-cloud-foundry-srv
Sortie :
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.
Accédez à notre application déployée.
Récupérez la route de l'application à partir de la sortie de la commande précédente. Pour ce faire, saisissez :
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
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.
Saisissez :
https://hello-cloud-foundry-srv.cfapps.us10-001.hana.ondemand.com/odata/v4/catalog/useCPU(action= 'start',duration='4')
La sortie :
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
Vérifiez le statut de mise à l'échelle de l'application.
Utilisez la commande suivante :
cf app hello-cloud-foundry-srvVous 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 :
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
Annulez la liaison du service autoscaler de l'application.
Saisissez :
cf unbind-service hello-cloud-foundry-srv my-autoscaler-service
Supprimez l'instance de service autoscaler.
Saisissez :
cf delete-service my-autoscaler-service -f
Supprimez l'application.
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