Configuration de la mise à l'échelle d'application
Avec « IBM Cloud® Code Engine », vous n'avez pas à vous soucier de la mise à l'échelle de votre application, car le nombre d'instances en cours d'exécution est automatiquement augmenté ou réduit (jusqu'à zéro) en fonction de la charge de travail. Grâce à la mise à l'échelle automatique, vous n'avez pas payer pour les ressources que vous n'utilisez pas.
Code Engine surveille le nombre de demandes dans le système et évalue les instances d'application en haut et en bas pour répondre au chargement des demandes entrantes, y compris toutes les connexions HTTP à votre application. Ces connexions HTTP peuvent être des requêtes provenant de l'extérieur de votre projet, d'autres charges de travail en cours d'exécution dans votre projet, ou des producteurs évènements auxquels vous pourriez être abonné, quel que soit l'endroit où se trouvent ces producteurs. Code Engine réplique automatiquement les instances d'application et configure l'infrastructure réseau pour charger l'équilibrage des demandes dans toutes les instances.
Fonctionnement de la mise à l'échelle
Code Engine surveille le nombre de demandes dans le système et augmente ou réduit les instances d'application entrantes, dans les limites des paramètres d'accès concurrents de l'application.
Pour observer la mise à l'échelle d'application à partir de la console Code Engine, accédez à la page propre à votre application. Pendant l'exécution de l'application, le nombre d'instances
en cours d'exécution est 1 ou plus, en fonction du nombre maximal d'instances que vous avez spécifié. Lorsque l'application traite moins de demandes que son accès concurrent cible configuré, elle réduit le nombre d'instances en
cours d'exécution au nombre minimal d'instances configuré. Si le nombre minimum d'instances est défini sur « 0 » (valeur par défaut), l'application est réduite à zéro et le nombre d'instances de l'application correspond à celui
d' 0. Lorsque l'application est réduite et qu'une demande est acheminée vers l'application, Code Engine augmente la taille de l'application et achemine la demande vers l'instance d'application nouvellement créée.
Pour que les applications puissent être mises à l'échelle proprement, votre code d'application doit gérer un signal SIGTERM. Lorsque Code Engine réduit automatiquement sa capacité, un signal SIGTERM est envoyé à votre application. Si votre application
ne gère pas le signal SIGTERM, vos instances d'application restent à l'état Terminating pendant la durée configurée par la valeur de délai d'attente de la demande (la valeur par défaut est de 300 secondes). Une fois le délai d'expiration
de la requête écoulé, Code Engine envoie un signal SIGKILL pour forcer l'arrêt des instances de l'application se trouvant dans l'état « Terminating ».
Limites de la mise à l'échelle
Vous pouvez configurer les limites de mise à l'échelle en définissant une plage de valeurs pour le nombre minimum et maximum d'instances, à l'intérieur de laquelle Code Engine ajuste automatiquement le nombre d'instances de votre application en cours d'exécution. Configurez cette plage lorsque vous créez ou mettez à jour des applications.
-
Nombre minimal d'instances-Nombre minimal d'instances de l'application qui sont toujours en cours d'exécution, même si aucune demande n'est traitée. Si la valeur est
0(par défaut), Code Engine supprime toutes les instances quand aucun trafic n'atteint l'application. Pour toujours conserver une instance en cours d'exécution de votre application, définissez cette valeur sur une valeur supérieure à0. Lorsque vous créez ou mettez à jour une application avec Code Engine à partir de la console, définissez la valeur minimale du nombre d'instances dans la section Mise à l'échelle automatique de l'onglet Ressources et mise à l'échelle. Dans l'interface de ligne de commande (CLI), spécifiez l'option «--min-scale» sur la commandeapp createetapp update. -
Nombre maximal d'instances-Nombre maximal d'instances pouvant être exécutées pour l'application. La mise à l'échelle automatique s'effectue jusqu'à cette limite. Si vous définissez cette valeur sur «
0», l'application s'adapte automatiquement aux besoins, et la mise à l'échelle de l'application n'est limitée que par le nombre d'instances autorisé par le quota de ressources attribué au projet de votre application. Voir Limites et quotas pour Code Engine. Lorsque vous créez ou mettez à jour une application avec Code Engine à partir de la console, définissez la valeur du nombre maximal d'instances dans la section Mise à l'échelle automatique de l'onglet Ressources et mise à l'échelle. Dans l'interface de ligne de commande (CLI), spécifiez l'option «--max-scale» sur la commandeapp createetapp update. La valeur par défaut de cette option est «10».
Lorsque vous connectez vos applications à des producteurs d'événements, pensez à tenir compte de la fréquence et du volume des événements de ces producteurs lorsque vous définissez vos limites d'échelle. Par exemple, si vous prévoyez de recevoir de nombreux événements simultanément et que le traitement de chaque événement peut prendre plusieurs minutes, vous aurez peut-être besoin d'une valeur maximale d'évolutivité plus élevée que si chaque événement pouvait être traité rapidement. Une valeur trop basse peut retarder la réception des événements ou même entraîner leur suppression en raison des délais d'attente de libération des ressources de traitement.
Paramètres de mise à l'échelle automatique pour la simultanéité et la temporisation
Utilisez les paramètres de configuration suivants pour contrôler la mise à l'échelle de l'application.
-
Concurrence - Cette valeur indique le nombre de requêtes que chaque instance de votre application peut traiter simultanément. Par exemple, une valeur de 100 signifie que votre code peut traiter 100 requêtes simultanées. Cette valeur est une "limite absolue", ce qui signifie que Code Engine ne permet pas que des demandes dépassant ce nombre (spécifié avec le paramètre d'accès concurrents) atteignent une instance de votre application. Par conséquent, si votre code est mono-thread et ne peut traiter qu'une seule requête à la fois, pensez à définir le paramètre de concurrence sur «
1». Lorsque le nombre spécifié de requêtes est envoyé à toutes les instances en cours d'exécution de votre application, Code Engine augmente alors le nombre d'instances afin de se préparer à un afflux de requêtes. Lorsque vous créez ou mettez à jour une application avec Code Engine à partir de la console, définissez la valeur d'accès concurrent maximale dans la section Mise à l'échelle automatique de l'onglet Ressources & mise à l'échelle. Avec l'interface de ligne de commande, spécifiez l'option--concurrencydans les commandesapp createetapp update. -
Concurrence cible - Cette valeur fait office de « limite souple » ou de nombre de requêtes par instance que vous souhaitez voir traitées dans un système en charge. Par exemple, si vous définissez
concurrencycomme100ettarget concurrencycomme70, alors Code Engine tente de limiter le nombre de requêtes par instance à 70.Le fait de définir cette option ne garantit pas que le nombre de requêtes par instance ne dépassera pas 70, car cela risque fort de se produire en cas d'augmentation du trafic. Cependant, la marge située entre 70 et 100 permet au système de créer de nouvelles instances pour ramener la charge par instance à 70 (ou au-dessous). Sitarget concurrencyn'est pas spécifié, la valeur par défaut est celle deconcurrency. Lorsque vous créez ou mettez à jour une application à l'aide de l' Code Engine depuis la console, définissez la valeur cible de concurrence dans la section « Autoscaling » de l'onglet « Resources & scaling ». Dans l'interface de ligne de commande (CLI), spécifiez l'option «--concurrency-target» sur la commandeapp createetapp update. -
Délai d'attente de la demande-Délai, en secondes, pendant lequel l'application doit répondre aux demandes, faute de quoi elles échouent. Lorsque vous créez ou mettez à jour une application avec Code Engine à partir de la console, définissez la valeur de délai d'attente de la demande dans la section Mise à l'échelle automatique de l'onglet Ressources et mise à l'échelle. Dans l'interface de ligne de commande (CLI), spécifiez l'option «
--request-timeout» sur la commandeapp createetapp update. -
Délai de réduction d'échelle - Durée, exprimée en secondes, qui doit s'écouler à un niveau de concurrence réduit avant que l'application ne passe à une échelle inférieure. Si vous connaissez le modèle des demandes entrantes dans votre application, vous pouvez choisir de spécifier une valeur supérieure à la valeur par défaut de
0pour retarder la réduction de votre application. Si vous utilisez une valeur élevée pour cette option, le nombre moyen d'instances d'application s'exécutant simultanément peut augmenter, ce qui entraîne des coûts supplémentaires. Même avec le paramètre de délai de mise à l'échelle par réduction de la valeur0, le système attend un court laps de temps avant que l'application ne réduise le nombre d'instances pour s'assurer qu'une baisse de l'accès concurrent aux demandes est suffisamment stable pour justifier une mise à l'échelle par réduction. Lorsque vous créez ou mettez à jour une application avec Code Engine à partir de la console, définissez la valeur de délai de mise à l'échelle dans la section Mise à l'échelle automatique de l'onglet Ressources et mise à l'échelle. Dans l'interface de ligne de commande (CLI), spécifiez l'option «--scale-down-delay» sur la commandeapp createetapp update.
Par exemple, si la valeur du nombre maximal d'instances est définie sur 10 et que l'accès concurrent est défini sur 100, une application peut traiter 1000 demandes simultanées avant que la mise en file d'attente potentielle
des demandes ne se produise. Si vous prévoyez plus de 1000 demandes simultanément, vous pouvez envisager d'augmenter la valeur du nombre maximal d'instances pour votre application.
Pour plus d'informations sur le fonctionnement de Code Engine, consultez Réglage du délai de réduction IBM Cloud Code Engine pour réduire les temps de réponse des applications.
Si vous définissez le nombre minimal d'instances égal au nombre maximal d'instances, la mise à l'échelle n'a pas lieu et les valeurs de délai de mise à l'échelle par réduction et de devise cible ne s'appliquent pas. Cependant, la valeur d'accès concurrent est toujours en vigueur.
Exemple de scénario de mise à l'échelle automatique
Supposons que vous disposiez d'une application configurée avec les paramètres de mise à l'échelle automatique suivants.
- Nombre minimal d'instances = 4
- Nombre maximal d'instances = 20
- Accès concurrent = 2
Avec ces paramètres, votre application peut traiter 2 demandes simultanées en même temps. Lorsqu'il n'y a pas de trafic, votre application est automatiquement mise à l'échelle jusqu'à 4 instances. Les 4 instances ne peuvent traiter que 4 * 2 (devise) = 8 demandes. L'application peut évoluer jusqu'à un maximum de 20 instances, de sorte que les 20 instances puissent traiter 20 * 2 (devise) = 40 demandes, en supposant des paramètres d'UC et de mémoire suffisants pour l'application.
Supposons que votre application soit une application Web statique qui nécessite 6 appels à votre application pour charger une page de connexion. Supposons que 10 personnes se connectent à votre page de connexion d'application en même temps (10 * 6 = 60 appels). Etant donné que 60 appels sont supérieurs à 40 demandes pouvant être traitées par votre application, les utilisateurs de l'application sont susceptibles d'observer une lenteur lors de la mise en file d'attente des appels.
Après une minute d'absence de trafic sur votre application, Code Engine commence à diminuer automatiquement. Lorsque votre application est mise à l'échelle vers le bas, certaines instances sont définies avec le statut Terminating.
Code Engine envoie un signal SIGTERM à votre application et votre code doit traiter ce signal et s'arrêter. Si votre application ne gère pas ce signal, vos instances d'application restent à l'état Terminating pendant la durée
configurée par la valeur de délai d'attente de la demande (la valeur par défaut est de 300 secondes). Après le délai d'attente de la demande, Code Engine envoie un signal SIGKILL pour forcer l'arrêt des instances d'application à l'état Terminating.
Si vous disposez de 8 instances actives et que 12 instances restent à l'état Terminating pendant 300 secondes (5 minutes). Ces 12 instances ne reçoivent aucune demande. Si plus de 8 * 2 (devise) = 16 demandes arrivent, Code Engine
augmente les nouvelles instances.
Dans cet exemple, la valeur d'accès concurrent de 2 est faible pour ce contenu statique. Vous devez déterminer les valeurs de mise à l'échelle automatique à définir pour votre application, qui dépendent de ce que l'implémentation
de votre application peut gérer avec les ressources d'UC et de mémoire qui lui sont affectées.
Optimisation du temps d'attente et du débit
Pour optimiser le temps d'attente et le débit de votre application, comprenez les avantages et les inconvénients de certains modèles courants et des meilleures pratiques pour configurer l'accès concurrent du conteneur.
Utilisez le paramètre de concurrence pour définir le nombre maximal de requêtes pouvant être traitées simultanément par instance lorsque vous créez ou mettez à jour une application. A partir de la console Code Engine , définissez la valeur d'accès
d'accès concurrent dans la section Exécution. Avec l'interface de ligne de commande, utilisez l'option --concurrency (alias --cn) avec la commande app create ou app update.
| Modèle | Avantages | Inconvénients |
|---|---|---|
Accès concurrent unique, --cn=1 |
Choisissez la configuration d'accès concurrent unique lorsque l'application gère une charge de travail nécessitant beaucoup de mémoire ou d'UC, car une seule demande accède à l'instance d'application à la fois et obtient donc la quantité totale d'UC et de mémoire configurée pour l'instance. | Les applications qui utilisent le modèle d'accès concurrent unique sont rapidement mises à l'échelle. La mise à l'échelle peut introduire un temps d'attente supplémentaire et un débit plus faible, car il est plus coûteux de créer une nouvelle instance d'application que de réutiliser une instance existante. Ne choisissez pas ce modèle si les demandes peuvent être traitées simultanément et si le temps d'attente représente un aspect critique de l'application. |
Volume d'accès concurrents élevé, --cn=100 (par défaut) ou supérieur |
Choisissez cette configuration si votre application gère un volume élevé de charges de travail de demande ou de réponse HTTP qui ne nécessitent pas beaucoup d'UC ou de mémoire et peuvent attendre des ressources. Vous pouvez opter pour cette configuration de concurrence dans le cas d'un backend d'API qui lit et écrit des données lors d'opérations de création, de récupération, de mise à jour et de suppression dans une base de données distante. Alors que certaines demandes attendent les E-S, d'autres demandes peuvent être traitées sans affecter le temps d'attente et le débit globaux. | Ce paramètre n'est pas idéal lorsque les demandes simultanées sont en concurrence pour l'UC, la mémoire ou les E-S, car la concurrence pour les ressources peut retarder l'exécution et avoir un impact négatif sur le temps d'attente et le débit. |
Accès concurrents optimaux, --cn=N |
Choisissez la configuration d'accès concurrents optimaux si vous connaissez la quantité de ressources nécessaires pour une seule demande afin de respecter le temps de réponse souhaité pour votre application. Vous pouvez opter pour cette
configuration si votre application est un outil de traduction en langage naturel, dans lequel le modèle d’apprentissage automatique utilisé pour la conversion linguistique est de 32 GB, et où un seul calcul de traduction
nécessite environ 0.7 vCPU par requête. Vous pouvez choisir une configuration de 9 UC (vCPU) et 32 Go de mémoire par instance. Le nombre d'accès concurrents de conteneur optimaux est d'environ 13 (9 vCPU/0.7 vCPU). |
Ne choisissez pas la configuration d'accès concurrents optimaux si vous ne connaissez pas les besoins en ressources de votre application. La définition d'une configuration d'accès concurrents de conteneur inappropriée peut conduire à une mise à l'échelle trop agressive ou trop lente, ce qui peut avoir un impact sur le temps d'attente, le taux d'erreur et les coûts de votre application. Pour plus d'informations, voir Détermination des accès concurrents de votre conteneur d'applications. |
Accès concurrents infinis, --cn=0 (désactivé) |
Désactivé | La configuration d'accès concurrents infinis n'est pas prise en charge dans Code Engine. La configuration d'accès concurrents infinis réachemine autant de demandes que possible vers une seule instance d'application, ce qui peut retarder la mise à l'échelle d'instances d'application supplémentaires. |
Détermination des accès concurrents de votre conteneur d'applications
La valeur optimale des accès concurrents de conteneur est déterminée par le nombre maximal de demandes simultanées que l'application peut traiter avec un temps d'attente de demande acceptable.
Les accès concurrents de conteneur ont un impact direct sur le taux de réussite, le temps d'attente et le débit de l'application. Lorsque la valeur de concurrence du conteneur est trop élevée pour que l'application puisse la gérer, la latence
et le débit s'en trouvent affectés négativement, et vous pouvez observer des réponses d'erreur de type « 502 » et « 503 ».
Lorsque la valeur des accès concurrents de conteneur est trop faible pour l'application, le système met à l'échelle l'application plus rapidement et répartit la demande sur de nombreuses instances d'application, ce qui entraîne des coûts et
un temps d'attente supplémentaires. Lors d'une rafale de charge, une faible valeur d'accès concurrents peut également conduire à des réponses 502 temporaires lorsque les mémoires tampon internes du système s'exécutent.
Pour déterminer la configuration des accès concurrents de conteneur pour votre application, examinez les demandes et le temps d'attente.
-
Créez une application et définissez son accès concurrent à
1000(maximum) et aussi bienmin-scaleetmax-scalejusqu'à1.ibmcloud ce application create --name APPNAME --image APPIMAGE --min-scale=1 --max-scale=1 --concurrency=1000 -
Commencez par envoyer un taux élevé de demandes. Si des erreurs
502se produisent, diminuez le taux jusqu'à ce que le résultat affiche 100 % de réussite. -
Recherchez le temps d'attente de la demande de la sortie de l'étape 2. Si le temps d'attente de la demande n'est pas acceptable, réduisez encore le taux de demande jusqu'à ce que le temps d'attente de la demande soit acceptable. Notez que la durée de la demande est également importante car elle fait une différence si le calcul de la demande prend
2secondes ou100millisecondes.Le taux de demande et le temps d'attente acceptables varient en fonction des caractéristiques de votre application et de votre configuration de mise à l'échelle. Par exemple, si le calcul dans votre application prend environ 100 ms et que votre paramètre d'accès concurrents est défini sur 10, une instance d'application peut traiter environ 100 demandes par seconde avec un temps d'attente d'environ 100 ms (en ignorant le temps d'attente du réseau).
-
Pour calculer la valeur d'accès concurrents de conteneur de votre application, prenez le taux de l'étape 2 (en
req/s) et divisez-le par le temps d'attente de l'étape 3 (en secondes) :CC = RATE/LATENCY. Par exemple, si le taux est de80demandes par seconde, et que le temps d'attente est de2secondes, le résultat d'accès concurrents obtenu est =80 req/s / 2 s = 40. -
Mettez à jour l'application pour définir les accès concurrents de conteneur sur la valeur trouvée à l'étape précédente et réexécutez la charge de travail pour vérifier si le taux de réussite et le temps d'attente sont acceptables.
-
Expérimentez avec l'application en augmentant la valeur des accès concurrents de conteneur et en observant le taux de réussite et le temps d'attente.
-
Mettez à jour votre application avec la valeur d'accès concurrent du conteneur optimal et supprimez les limites
min-Scaleetmax-scalepour permettre à l'application de se mettre à l'échelle automatiquement.
Observation de l'évolution de votre application avec l'interface de ligne de commande
Vous pouvez observer le nombre d'instances en cours d'exécution de votre application à l'aide de l'interface de ligne de commande.
-
Créez une application à l'aide de la commande
app create.ibmcloud ce application create --name myapp --image icr.io/codeengine/helloworld -
Appelez l'application. Vous pouvez obtenir l'URL de votre application à partir de la sortie de la commande
app createou exécuteribmcloud ce app get --name myapp --output url.curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Exécutez la commande
application getpour afficher le statut de votre application. Recherchez la valeur deRunning instances. Dans cet exemple, l'application comporte1instance en cours. Par exemple :ibmcloud ce application get --name myappExemple de sortie
[...] OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-ds8fn-1: Age: 6m25s Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to fe0446) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 6m10s Ready true 5m56s RoutesReady true 5m56s Events: Type Reason Age Source Messages Normal Created 6m28s service-controller Created Configuration "myapp" Normal Created 6m28s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-ds8fn-1-deployment-79bdd76749-khtmw myapp-ds8fn-1 2/2 Running 0 32sPatientez quelques minutes, car la mise à l'échelle jusqu'à zéro de votre application peut prendre quelques minutes.
-
Exécutez à nouveau la commande
application get. Vous constatez que la valeur deRunning instancesest passée à zéro. Lorsque l'application traite moins de demandes que son accès concurrent cible configuré, elle réduit le nombre d'instances en cours d'exécution au nombre minimal d'instances configuré. Dans ce scénario, le nombre d'instances en cours d'exécution est automatiquement réduit à zéro. Lorsque l'option--min-scaleest définie sur0(valeur par défaut), le nombre d'instances en cours d'exécution est automatiquement mis à zéro.Patientez quelques minutes, car la mise à l'échelle jusqu'à zéro de votre application peut prendre quelques minutes.
ibmcloud ce application get -n myappExemple de sortie
OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-ds8fn-1: Age: 12m Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to 548d5c) Running Instances: 0 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 3m7s Ready true 2m54s RoutesReady true 2m54s Events: Type Reason Age Source Messages Normal Created 3m21s service-controller Created Configuration "myapp" Normal Created 3m20s service-controller Created Route "myapp" -
Appelez à nouveau l'application pour une mise à l'échelle à partir de zéro.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Exécutez à nouveau la commande
application get. Vous constatez que la valeur deRunning instancesa été modifiée à partir de zéro. Par exemple :ibmcloud ce application get -n myappExemple de sortie
OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-00001: Age: 42s Latest: true Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to 1cee99) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Scale Down Delay: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 25s Ready true 12s RoutesReady true 12s Events: Type Reason Age Source Messages Normal Created 44s service-controller Created Configuration "myapp" Normal Created 43s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-00001-deployment-d59b87654-xkqh7 myapp-00001 3/3 Running 0 43s
Définition du nombre minimal et maximal d'instances pour votre application
Vous pouvez modifier le nombre d'instances en cours d'exécution de votre application en mettant à jour la valeur minimale et maximale du nombre d'instances d'application.
La valeur par défaut du nombre minimal d'instances pour votre application est 0. Si votre application ne reçoit aucun trafic, elle s'adapte à 0 et aucune instance de votre application n'est en cours d'exécution. Dans
ce cas, votre application peut être plus lente à répondre lorsqu'elle reçoit à nouveau du trafic, alors qu'elle est à nouveau mise à l'échelle. Vous pouvez modifier ce comportement en mettant à jour votre application et en définissant l'échelle
minimale sur « 1 », soit via la console, soit depuis l'interface de ligne de commande (CLI).
La valeur par défaut du nombre maximal d'instances pour votre application est 10. Pour plus d'informations, voir Mise à l'échelle des limites.
Modification de la plage de mise à l'échelle automatique à partir de la console
Pour modifier la plage dans laquelle Code Engine effectue la mise à l'échelle automatique du nombre d'instances en cours d'exécution pour une application à partir de la console, procédez comme suit.
- Accédez à votre application.
- Sélectionnez l'onglet « Configuration ».
- Sélectionnez l'onglet « Ressources et évolutivité ».
- Définissez le nombre d'instances minimum et maximum pour votre application.
- (Facultatif) Passez en revue et définissez les paramètres de simultanéité et de simultanéité des demandes pour la mise à l'échelle automatique de votre application.
- Cliquez sur « Déployer » pour enregistrer vos modifications et déployer la nouvelle version de l'application.
Lorsque vous mettez à jour votre application, celle-ci crée une nouvelle révision et achemine le trafic vers cette instance.
Modification de la plage de mise à l'échelle automatique avec l'interface de ligne de commande
Pour modifier la plage dans laquelle Code Engine valide automatiquement le nombre d'instances en cours d'exécution pour une application à l'aide de l'interface de ligne de commande, exécutez la commande application update avec les options --min-scale et --max-scale définies sur le nombre d'instances souhaité pour votre application. Vous pouvez éventuellement définir des paramètres de simultanéité et de simultanéité des demandes pour
votre application. Ces options incluent --concurrency, --concurrency-target, --request-timeout et --scale-down-delay. Pour plus d'informations sur la définition de ces valeurs de mise à
l'échelle automatique, voir Mise à l'échelle des limites et Paramètres de mise à l'échelle automatique pour les accès simultanés et la temporisation.
Lorsque vous mettez à jour votre application, celle-ci crée une nouvelle révision et achemine le trafic vers cette instance.