Modèles courants de mise à l’échelle automatique

Effectué

Dans cette unité, nous examinons des modèles de mise à l’échelle automatique.

La mise à l’échelle automatique ne constitue pas une solution instantanée. Le simple ajout de ressources à un système ou l’exécution d’un nombre plus important d’instances de processus ne vous garantit des performances améliorées du système. Lors de l’élaboration d’une stratégie de mise à l’échelle automatique, tenez compte des points suivants :

Recommandations

Identifier les goulots d’étranglement : le scale-out ne règle pas comme par magie tous les problèmes de performance. Par exemple, si votre base de données principale est le goulot d’étranglement, ajouter des serveurs web ne sert à rien. Identifiez et éliminez les goulots d’étranglement au niveau du système avant de multiplier les instances. Les parties avec état du système sont les causes les plus courantes des goulots d’étranglement.

Décomposez les charges de travail en fonction des exigences de scalabilité : les applications se composent souvent de plusieurs charges de travail, avec des exigences différentes en matière de scalabilité. Par exemple, une application peut avoir un site web public et un site d’administration distinct. Le site public peut rencontrer des pics de trafic soudains, alors que le site d’administration a une charge moins élevée et plus prévisible.

Déchargez les tâches gourmandes en ressources : Les tâches qui nécessitent de nombreuses ressources d’E/S ou d’UC doivent être déplacées vers des travaux en arrière-plan lorsque c’est possible. Le déchargement de tâches réduit la charge sur le serveur frontal qui gère les demandes utilisateur.

Utilisez les fonctionnalités de mise à l’échelle automatique intégrées : si l’application a une charge de travail régulière et prévisible, nous vous recommandons de planifier le scale-out. par exemple pendant les heures ouvrables. Sinon, si la charge de travail n’est pas prévisible, utilisez des métriques de performances telles que le CPU ou la longueur de la file d’attente pour déclencher la mise à l’échelle automatique.

Envisagez une mise à l’échelle automatique agressive pour les charges de travail critiques : pour les charges de travail critiques, vous devez garder une longueur d’avance sur la demande. Il est préférable d’ajouter de nouvelles instances rapidement en cas de charge importante pour gérer le reste du trafic, puis de réduire progressivement le nombre d’instances.

Concevez pour un scale-in : N’oubliez pas que dans le cadre d’une évolutivité élastique, l’application connaîtra des périodes de scale-in, lorsque des instances sont supprimées. L’application doit gérer de manière appropriée les instances en cours de suppression. Voici quelques méthodes pour gérer le scale-in :

  • Détectez les événements d’arrêt le cas échéant et arrêtez correctement les instances.
  • Prenez en charge la gestion des erreurs temporaires et réessayez.
  • Essayez de fractionner le travail pour les tâches de longue durée.
  • Placez les éléments de travail dans une file d’attente afin qu’une autre instance puisse s’en charger dans le cas où une instance serait supprimée au cours du processus de traitement.

Notifications

  • Tous les échecs de mise à l’échelle automatique sont enregistrés dans le journal d’activité. Vous pouvez ensuite configurer une alerte de journal d’activité qui vous avertit par e-mail, SMS ou webhooks à chaque défaillance de mise à l’échelle automatique.
  • De même, toutes les opérations de mise à l’échelle réussies sont consignées dans le journal d’activité. Vous pouvez aussi configurer une alerte de journal d’activité pour être informé par e-mail, SMS ou webhooks de chaque action de mise à l’échelle automatique réussie. Vous pouvez également 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.

Diagramme d’un flux de processus de webhook.

Modèles courants pour mettre à l’échelle votre ressource dans Azure

Mettre à l’échelle à la demande

Vous pouvez effectuer automatiquement un scale-out du nombre d’instances de service au début de la journée de travail lorsque la demande des clients augmente. À la fin de la journée de travail, un scale-in du nombre d’instances d’application est automatiquement effectué afin de minimiser les coûts de ressources pendant la nuit, lorsque l’application est peu utilisée.

Mettre à l’échelle différemment durant les week-ends et jours de la semaine

Le soir ou le week-end, vous risquez de rencontrer une demande d’application moins importante. Si cette charge reste similaire pendant toute une période, vous pouvez configurer des règles de mise à l’échelle automatique pour réduire le nombre d’instances de service dans le groupe identique. Effectuer cette action de diminution du nombre d’instances a pour effet de réduire le coût d’exécution de votre groupe identique, car vous n’exécutez que la quantité d’instances requise pour répondre à la demande actuelle.

Mettre à l’échelle différemment pendant les jours fériés

En cas d’utilisation intensive d’un service à certaines périodes du mois ou de l’exercice fiscal, vous pouvez ajuster automatiquement le nombre d’instances de service pour répondre aux demandes supplémentaires. Avant un événement marketing, une promotion ou les fêtes de fin d’année, vous pouvez automatiquement ajuster le nombre d’instances de service en prévision de la hausse attendue de la demande des clients.

Mise à l’échelle en fonction de métriques personnalisées

Finalement, la bonne pratique est de définir avec soin vos règles de mise à l’échelle automatique. Par exemple, une attaque par déni de service (DoS) est susceptible de provoquer un afflux de trafic entrant à grande échelle. Une tentative de gérer une forte hausse de demandes provoquée par une attaque DoS serait vaine et coûteuse. Ces demandes n’étant pas authentiques, elles doivent être ignorées plutôt que traitées. Une meilleure solution consiste à implémenter une détection et un filtrage des demandes qui se produisent pendant une telle attaque avant qu’elles n’atteignent votre service.

Après avoir configuré les règles de mise à l’échelle automatique, surveillez les performances de votre application au fil du temps. Appuyez-vous sur les résultats de ce monitoring pour, au besoin, ajuster le modèle selon lequel le système est mis à l’échelle.