Qu'est-ce que Mise à l'échelle automatique (autoscaling) ?

Mécanisme qui augmente ou diminue automatiquement le nombre de serveurs ou de conteneurs selon des indicateurs de charge (utilisation CPU, débit de requêtes, longueur d'une file d'attente, etc.). L'ajout de machines s'appelle scale-out et leur retrait scale-in. Le HorizontalPodAutoscaler de Kubernetes calcule le nombre nécessaire par ⌈nombre actuel × valeur actuelle ÷ valeur cible⌉. Les nouvelles instances mettent du temps à devenir opérationnelles : les hausses soudaines de charge sont donc absorbées par une cible qui laisse de la marge, et une période d'attente avant de réduire le nombre est courante, pour que celui-ci ne change pas trop souvent.

Nom japonais: オートスケーリング

« Mise à l'échelle automatique (autoscaling) » apparaît dans 2 questions d'entraînement réparties sur 2 thèmes, dont Architecture des systèmes et fiabilité, Bases du cloud et des conteneurs.

Domaine: Bases du cloud et des conteneurs

S'entraîner : questions sur Mise à l'échelle automatique (autoscaling)

Quelle conception est généralement souhaitable pour un système qui utilise la mise à l'échelle automatique (autoscaling) pour ajouter et retirer des serveurs automatiquement selon la charge ?

  1. AStocker sur le disque local de chaque serveur des données métier que seul ce serveur détient
  2. BStocker les informations de session des utilisateurs dans un magasin de données partagé plutôt que dans la mémoire de chaque serveur, pour que le résultat soit le même quel que soit le serveur qui traite une demande
  3. CLors de la réduction du nombre de serveurs, arrêter un serveur immédiatement même s'il a des demandes en cours de traitement
Afficher la réponse et l'explication

Réponse : B. Stocker les informations de session des utilisateurs dans un magasin de données partagé plutôt que dans la mémoire de chaque serveur, pour que le résultat soit le même quel que soit le serveur qui traite une demande

Avec la mise à l'échelle automatique, il est souhaitable que les serveurs ne détiennent aucun état propre (conception sans état, stateless), afin que l'ajout ou le retrait de serveurs à tout moment ne pose pas de problème. Si les informations de session et les données métier sont conservées dans un magasin de données partagé, n'importe quel serveur peut traiter une demande de la même façon, et aucune donnée n'est perdue quand on retire des serveurs. Pour réduire le nombre de serveurs, on cesse de distribuer de nouvelles demandes à un serveur et on ne l'arrête qu'une fois ses demandes en cours terminées.

« Mise à l'échelle automatique (autoscaling) » dans les explications

Questions mentionnant « Mise à l'échelle automatique (autoscaling) » (2)

  1. Quelle conception est généralement souhaitable pour un système qui utilise la mise à l'échelle automatique (autoscaling) pour ajouter et retirer des serveurs automatiquement selon la charge ?
  2. Dans un Deployment dont les conteneurs des Pods ont les réglages ci-dessus, quatre Pods tournent et chacun utilise 400m (0,4 cœur) de CPU. La cible d'utilisation CPU du HorizontalPodAutoscaler est de 60 %, et le nombre de Pods nécessaire est calculé par ⌈nombre actuel × utilisation actuelle ÷ utilisation cible⌉. Combien de Pods faut-il ?

Termes associés

Conteneur Pod Déploiement bleu-vert (blue-green deployment) Déploiement canari (canary release) Docker Image de conteneur Informatique sans serveur (serverless) Infrastructure en tant que code (IaC) Infrastructure immuable (immutable infrastructure) Kubernetes

Retour au glossaire