Explorer les meilleures pratiques de mise à l'échelle automatique
Si vous ne suivez pas les bonnes pratiques quand vous créez des paramètres de mise à l’échelle automatique, vous pouvez créer des conditions entraînant des résultats indésirables. Dans cette unité, vous apprenez à créer des règles qui ne sont pas en conflit les unes avec les autres.
Concepts de la mise à l’échelle automatique
Un paramètre de mise à l’échelle automatique met à l’échelle les instances horizontalement, c’est-à-dire vers l’extérieur en augmentant la taille des instances et vers l’intérieur en diminuant la taille des instances. Un paramètre de mise à l’échelle automatique a une valeur d’instances maximum, minimum et par défaut.
Une tâche de mise à l’échelle automatique lit la mesure associée à mettre à l’échelle, en vérification qu’elle a dépassé le seuil configuré pour l’augmentation ou la diminution de taille d’instance.
Tous les seuils sont calculés au niveau de l’instance. Par exemple, « faire un scale-out d’une instance si le processeur moyen > 80 % quand le nombre d’instances est égal à 2 » signifie faire un scale-out quand le processeur moyen sur toutes les instances est supérieur à 80 %.
Toutes les réussites et les échecs de mise à l’échelle automatique sont consignés dans le journal d’activité. Vous pouvez ensuite configurer une alerte de journal d’activité pour être informé par e-mail, SMS ou avec des webhooks chaque fois qu’il y a une activité.
Meilleures pratiques relatives à la mise à l’échelle automatique
Utilisez les meilleures pratiques suivantes lorsque vous créez vos règles de mise à l’échelle automatique.
Vérifiez que les valeurs minimales et maximales sont différentes et séparées par une marge suffisante.
Si vous avez un paramètre qui a minimum=two, maximum=two et que le nombre d’instances actuel est égal à 2, aucune action de mise à l’échelle ne peut se produire. Conservez une marge suffisante entre les nombres d’instances minimum et maximum, qui sont inclusifs. La mise à l’échelle agit toujours entre ces limites.
Sélection de la statistique appropriée pour votre mesure de diagnostic
Pour les mesures de diagnostics, vous pouvez choisir entre Moyen, Minimum, Maximum et Total comme mesure de mise à l’échelle. La statistique la plus courante est Moyen.
Sélection des seuils pour tous les types de mesure
Nous vous recommandons de choisir avec soin des seuils différents pour l’augmentation de la taille des instances et la diminution de la taille des instances en fonction des pratiques.
Nous vous déconseillons de choisir des paramètres de mise à l’échelle automatique comme ceux des exemples suivants, avec des valeurs de seuil similaires ou identiques pour le scale-out ou le scale-in :
- Augmenter d’une instance quand le nombre de threads >= 600
- Diminuer d’une instance quand le nombre de threads <= 600
Examinons un exemple de ce qui peut entraîner un comportement qui peut sembler déroutant. Examinez la séquence suivante.
- Supposons qu’il existe deux instances pour commencer, puis que le nombre moyen de threads par instance atteigne 625.
- La mise à l’échelle automatique augmente la taille des instances en ajoutant une troisième instance.
- Ensuite, supposons que le nombre de threads moyen entre les instances diminue pour atteindre 575.
- Avant le scale-in, la mise à l’échelle automatique tente d’estimer ce que l’état final sera en cas de scale-in. Par exemple, 575 x 3 (nombre d’instances actuel) = 1 725 / 2 (nombre final d’instances après scale-in) = 862,5 threads. Cela signifie que la mise à l’échelle automatique effectuerait immédiatement un scale-out même après le scale-in, si le nombre moyen de threads reste le même ou même baisse d’une petite quantité. Toutefois, si elle fait l’objet d’un nouveau scale-out, le processus entier se répète dans une boucle infinie.
- Pour éviter cette situation (appelée « bagotement » ou « flapping »), la mise à l’échelle automatique n’effectue pas le scale-in. Au lieu de cela, elle ignore et réévalue la condition lors de la prochaine exécution de la tâche du service. Cela peut perturber de nombreuses personnes, car la mise à l’échelle automatique semble ne pas fonctionner lorsque le nombre moyen de threads est de 575.
L’estimation durant un scale-in permet d’éviter les situations de « flapping », où les actions de scale-in et de scale-out vont et viennent sans cesse. Gardez ce comportement à l’esprit lorsque vous choisissez les mêmes seuils pour la diminution et l’augmentation de la taille des instances.
Nous vous recommandons de choisir une marge suffisante entre les seuils de diminution et d’augmentation de la taille des instances. Par exemple, examinez la combinaison de règles suivante bien plus adaptée.
- Augmenter les instances de 1 lorsque le % du processeur >= 80
- Diminuer les instances de 1 lorsque le % du processeur <= 60
Dans ce cas
- Supposons qu’il existe 2 instances pour commencer.
- Si le pourcentage moyen du processeur entre les instances atteint 80, la mise à l’échelle automatique augmente la taille des instances en ajoutant une troisième instance.
- Supposons maintenant qu’au fil du temps, le pourcentage du processeur baisse à 60.
- La règle de diminution de la taille des instances de la mise à l’échelle automatique évalue l’état final en cas de diminution de la taille des instances. Par exemple, 60 x 3 (nombre d’instances actuel) = 180 / 2 (nombre final d’instances après scale-in) = 90. Dans ce cas, la mise à l’échelle automatique ne fait pas de scale-in parce qu’elle devrait faire immédiatement un scale-out par la suite. À la place, elle ignore le scale-in.
- Lors de la vérification de mise à l’échelle de temps suivante, l’UC continue sa diminution à 50. Une nouvelle estimation est effectuée : 3 x 50 instances = 150 / 2 instances = 75, ce qui est inférieur au seuil d’augmentation de la taille des instances qui est de 80, la diminution de la taille des instances s’exécute pour obtenir 2 instances.
Considérations relatives à la mise à l’échelle lorsque plusieurs règles sont configurées dans un profil
Il existe des cas où vous devrez définir plusieurs règles dans un profil. L’ensemble de règles de mise à l’échelle automatique suivant est utilisé par les services lorsque plusieurs règles sont définies.
Pour l’augmentation de la taille des instances, la mise à l’échelle automatique s’exécute si une règle est respectée. Pour la diminution de la taille des instances, la mise à l’échelle automatique nécessite que toutes les règles soient respectées.
Pour illustrer cela, supposons que vous disposez des quatre règles de mise à l’échelle automatique suivantes :
- Si UC < 30 %, effectuer un scale-in de 1
- Si Mémoire < 50 %, effectuer un scale-in de 1
- Si le processeur > 75 %, faire un scale-out de 1
- Si la mémoire > 75 %, faire un scale-out de 1
Il se produit ensuite ce qui suit :
- Si le processeur est de 76 % et la mémoire est de 50 %, une augmentation de la taille des instances se produit.
- Si le processeur est égal à 50 % et la mémoire est égale à 76 %, nous faisons un scale-out.
En revanche, si le processeur est égal à 25 % et la mémoire est égale à 51 %, la mise à l’échelle automatique ne fait pas de scale-in. Un scale-in automatique se produit si le processeur est égal à 29 % et que la mémoire est égale à 49 %, car les deux règles de scale-in sont remplies.
Sélectionnez toujours un nombre d’instances par défaut sans échec
Le nombre d’instances par défaut est important, car la mise à l’échelle automatique utilise ce nombre pour mettre à l’échelle vos services quand les métriques ne sont pas disponibles. Par conséquent, sélectionnez un nombre d’instances par défaut qui est sécurisé pour vos charges de travail.
Configuration des notifications de mise à l’échelle automatique
Les événements de mise à l’échelle automatique sont enregistrés dans le journal d’activité dans les cas suivants :
- Le service de mise à l’échelle automatique génère une opération de mise à l’échelle
- Le service de mise à l’échelle automatique termine une opération de mise à l’échelle avec succès
- Le service de mise à l’échelle automatique ne parvient pas à terminer une opération de mise à l’échelle avec succès
- Les métriques ne sont pas disponibles pour permettre au service de mise à l’échelle automatique de prendre une décision de mise à l’échelle.
- Les mesures sont de nouveau disponibles (récupération) pour prendre une décision de mise à l’échelle.
Vous pouvez également utiliser une alerte de journal d’activité pour surveiller l’intégrité du moteur de mise à l’échelle automatique. Outre l’activation des alertes de journal d’activité, vous pouvez configurer des notifications par e-mail ou webhook pour être averti en cas d’action de mise à l’échelle réussie via l’onglet Notifications du paramètre de mise à l’échelle automatique.