Ajustement horizontal automatique
En plus de l'ajustement vertical automatique intégré, RAGNARØKKR PaaS peut automatiquement ajuster les nœuds horizontalement, en modifiant le nombre de conteneurs dans une couche (groupe de nœuds) en fonction de la charge entrante. Ainsi, toutes les instances d'une même couche sont réparties de manière égale sur l’ensemble du matériel disponible (hôtes) en utilisant les règles d'anti-affinité. En d'autres termes, lorsqu'un nouveau conteneur est créé, il est placé sur l'hôte ayant le plus petit nombre d'instances de la même couche et la charge la plus faible, ce qui garantit la fiabilité et la haute disponibilité des projets hébergés.
L'ajustement horizontal automatique est réalisée à l'aide des déclencheurs réglables, qui sont des conditions personnalisées pour l'ajout (scale out) et le retrait (scale in) de nœuds en fonction de la charge. Chaque minute, RAGNARØKKR analyse la consommation moyenne des ressources (pour le nombre de minutes spécifié dans le déclencheur) pour décider si l'ajustement du nombre de nœuds est nécessaire.
Ici, la statistique est recueillie pour l'ensemble de la couche, donc s'il y a trois nœuds, qui sont chargés respectivement pour 20%, 50% et 20%, la valeur moyenne calculée est de 30%. De plus, les conditions d'ajout et de retrait de nœuds sont indépendantes, c'est-à-dire que la période analysée pour l'une n'est pas réinitialisée lorsqu'une autre est exécutée.
Nous vous donnons ci-dessous un aperçu de la marche à suivre pour :
- Définir les déclencheurs pour l'ajustement automatique
- Voir l'historique d'exécution des déclencheurs
Déclencheurs pour l'ajustement automatique
Pour configurer un déclencheur pour l'ajustement horizontal automatique, suivez les étapes ci-dessous.
Remarque : Lorsqu'un seul serveur d'application certifié (et non un conteneur Docker personnalisé) est ajusté (scaled out) sur un environnement sans équilibreur de charge, l'équilibreur NGINX est ajouté automatiquement. Par conséquent, si vous avez besoin d'un équilibreur différent pour votre application, il doit être ajouté manuellement avant le premier ajustement.
1. Cliquez sur le bouton Paramètres pour l'environnement requis.
2. Dans l'onglet ouvert, naviguez jusqu'à la section Contrôle > Scalabilité horizontale auto, où vous pouvez voir une liste des déclencheurs de scalabilité configurés pour l'environnement actuel (le cas échéant).
Utilisez les boutons du panneau d'outils pour gérer l'ajustement horizontal automatique de l'environnement :
- Ajouter : crée un nouveau déclencheur
- Editer : ajuste le déclencheur existant
- Supprimer : supprime le déclencheur non requis
- Actualiser : met à jour la liste affichée des déclencheurs de scalabilité
Cliquez sur Ajouter pour continuer.
3. Sélectionnez la couche d'environnement requise dans la liste déroulante et choisissez le type de ressource à surveiller via l'un des onglets appropriés (CPU, Mémoire, Réseau, Disque I/O, Disque I/OPS).
Remarques :
- Le nœud initial (maître) peut être utilisé comme serveur de stockage pour le partage des données dans l'ensemble de la couche, y compris les nœuds ajoutés grâce à l'ajustement horizontal automatique
- Les limites de CPU et de mémoire sont calculées en fonction de la quantité de cloudlets alloués (une unité de ressource spéciale RAGNARØKKR, qui représente simultanément un CPU de 400 MHz et une RAM de 128 MiB)
4. Le graphique de droite montre les statistiques sur la consommation des ressources sélectionnées. Vous pouvez choisir la période requise pour les données affichées (jusqu'à une semaine) en utilisant la liste déroulante appropriée. Si nécessaire, vous pouvez activer/désactiver la fonction d’actualisation automatique des statistiques.
Vous pouvez également survoler le graphique pour voir la quantité exacte de ressources utilisées à un moment donné. Utilisez ces informations pour mettre en place les conditions adéquates pour vos déclencheurs.
5. Chaque déclencheur comporte des conditions d'ajout et de suppression de nœuds, qui peuvent être activées à l'aide des cases à cocher correspondantes juste avant le titre.
Les deux sont configurés de manière similaire :
- Dès que la charge est supérieure (inférieure) à : la limite supérieure (inférieure) en pourcentage pour la charge moyenne (c'est-à-dire qu'elle exécute le déclenchement si elle est dépassée)
Remarques :
- La valeur requise peut être indiquée à l'aide des curseurs appropriés sur le graphique
- La valeur 100% désactive automatiquement le déclencheur Ajouter nœuds et 0%, celui de Supprimer nœuds
- La différence minimale autorisée entre les conditions d'ajout et de suppression de nœuds est de 20%
- L’unité Mops (Méga octets par seconde) peut être sélectionnée pour le déclenchement du réseau au lieu du pourcentage
- Nous recommandons de fixer la charge moyenne pour le déclencheur Ajouter nœuds au-dessus du seuil de 50 % afin d'éviter un ajustement inutile (c'est-à-dire un gaspillage de ressources/argent)
- Pendant au moins : le nombre de minutes pour lesquelles la consommation moyenne est calculée (jusqu'à une heure avec un pas de 5 minutes, c'est-à-dire 1, 5, 10, 15, etc.)
- Augmenter (Réduire) jusqu'à : le nombre maximum (minimum) de nœuds pour la couche, qui peut être configuré grâce à l'ajustement horizontal automatique
- Par lot de : le nombre de nœuds qui doivent être ajoutés/supprimés à un moment donné lors de l'exécution du déclencheur
Lors de la configuration d'un déclencheur, nous recommandons de prendre en considération le mode d'ajustement de la couche. Par exemple, vous devez définir un pourcentage de charge bas dans le déclencheur Ajouter nœuds pour le mode « stateful », car le clonage de contenu nécessite un certain temps (en particulier pour les conteneurs contenant beaucoup de données) et vous pouvez atteindre la limite des ressources avant qu'un nouveau nœud ne soit créé.
6. Par défaut, vous recevez automatiquement une notification par courrier électronique sur l'activité de déclenchement de l'ajustement horizontal automatique configuré ; toutefois, si nécessaire, vous pouvez la désactiver à l'aide du commutateur approprié « Envoyer notification par e-mail ».
7. En bas du formulaire, vous disposez des boutons suivants :
- Annuler modifications : revient à l'état précédent (pour l'édition uniquement)
- Fermer : quitte le dialogue sans modification
- Appliquer (ou Ajouter) : confirme les changements pour le déclencheur
Sélectionnez l'option requise pour terminer la création du déclencheur (ou les modifications).
Historique d’exécution des déclencheurs
Vous pouvez consulter l'historique des déclencheurs d'ajustement pour un environnement particulier.
Dans l'exemple ci-dessous, nous allons appliquer une charge élevée pendant 5 minutes (voir les statistiques d'utilisation de la RAM dans l'image ci-dessous) sur le serveur d'application avec les déclencheurs suivants configurés :
- Ajouter un nœud lorsque la charge moyenne de RAM est supérieure à 65% pendant au moins 5 minutes
- Supprimer le nœud lorsque la charge moyenne de la RAM est inférieure à 20 % pendant au moins 10 minutes
Voyons maintenant le comportement de l'ajustement horizontal automatique :
1. Accédez à la section Paramètres > Contrôle > Historique des événements et choisissez l'option Scalabilité horizontale dans la liste déroulante Type.
En outre, vous pouvez personnaliser la période d'affichage des déclencheurs d'activité via les champs « De » et « À » appropriés.
2. Les détails suivants sont fournis dans la liste :
- Date et heure de l'exécution du déclenchement
- Action effectuée (ajout ou suppression de nœuds)
- Type de nœud auquel l’ajustement a été appliqué
- Informations sur la condition d'exécution du déclenchement
Les déclencheurs Ajouter nœuds et Supprimer nœuds sont indépendants, de sorte que la condition de suppression (charge moyenne inférieure à 20 % pendant au moins 10 minutes) n'est pas réinitialisée et continue à être vérifiée même après l'ajout d'un nouveau nœud. Une telle approche permet de détecter plus rapidement la charge moyenne suffisante pendant l'intervalle spécifié. Il est recommandé de fixer une différence significative entre les limites d’ajout et de suppression afin d'éviter un changement fréquent de topologie.
Vous pouvez ainsi configurer un ensemble de déclencheurs réglables pour garantir les performances de votre application et suivre l'activité de l'ajustement horizontal automatique directement via le tableau de bord.