Qu’est-ce que la mise à l’échelle automatique ?

Effectué

Dans cette unité, nous examinons les concepts de la mise à l’échelle sur Azure.

Mise à l’échelle élastique

L’un des principaux avantages du cloud est la mise à l’échelle élastique. Vous effectuez un scale-out en ajoutant des instances d’application en fonction de l’augmentation de la demande. Vous utilisez la capacité dont vous avez besoin, en effectuant un scale-out quand la charge augmente, et un scale-in quand la capacité supplémentaire n’est plus nécessaire.

Un exemple classique de la nécessité de cette élasticité est quand le site web d’une organisation subit des charges anormalement élevées. Si le site ne peut pas être mis à l’échelle pour répondre à la demande, les demandes sont plus longues à traiter, car elles sont mises en file d’attente, en attente de temps processeur. Pour le client, le site paraît lent et non réactif. Dans les cas extrêmes, le site peut même paraître à l’arrêt.

Mise à l’échelle manuelle ou automatique

Vous pouvez configurer les paramètres de mise à l’échelle d’une application dans deux modes : manuel ou automatique. Le mode Manuel permet définir le nombre absolu d’instances. Le mode automatique (mise à l’échelle automatique) vous permet de définir des règles qui déterminent de quelle façon et dans quelle mesure la mise à l’échelle de la capacité doit s’effectuer.

La mise à l’échelle automatique vous permet de disposer de la bonne quantité de ressources en cours d’exécution pour gérer la charge sur votre application. La mise à l’échelle automatique facilite les tâches de gestion, car elle évite aux opérateurs du système d’avoir sans arrêt à prendre des décisions relatives à l’ajout ou à la suppression de ressources ou au monitoring des performances du système. Avoir un nombre minimal d’instances permet de vous assurer que votre application est toujours en cours d’exécution même en l’absence de charge. Avoir un nombre maximal d’instances limite votre coût total possible par heure. Vous effectuez une mise à l’échelle automatique entre ces deux extrêmes, à l’aide de règles que vous créez.

Diagramme montrant l’économie de mise à l’échelle automatique sur les coûts de calcul.

« Out » et « up »

La mise à l’échelle d’une application peut s’effectuer de deux manières :

  • La mise à l’échelle verticale, également appelée scale-up et scale-down, change la capacité d’une ressource. Par exemple, vous pouvez passer une application à une plus grande taille de calcul. La mise à l’échelle verticale nécessite souvent de rendre le système temporairement indisponible pendant son redéploiement. Il est donc moins courant d’automatiser la mise à l’échelle verticale.

  • La mise à l’échelle horizontale, également appelée scale-out et scale-in, ajoute ou supprime les instances d’une ressource. Pendant que de nouvelles ressources sont approvisionnées, l’application continue à s’exécuter sans interruption. Une fois le processus de provisionnement terminé, la solution est déployée sur ces ressources supplémentaires. Si la demande baisse, les ressources supplémentaires peuvent être arrêtées proprement, puis libérées.

La mise à l’échelle automatique peut uniquement effectuer une mise à l’échelle horizontale («out), en augmentant (scale-out) ou en réduisant (scale-in) le nombre d’instances d’application.

Diagramme montrant la différence entre le scale-up et le scale-out.

Mise à l’échelle automatique dans Azure Spring Apps

La mise à l’échelle automatique dans Azure Spring Apps surveille les métriques de ressources d’une application Spring en cours d’exécution. Elle détecte les situations où des ressources supplémentaires sont nécessaires pour gérer une charge de travail accrue et garantit que ces ressources sont disponibles avant que le système soit surchargé. La mise à l’échelle automatique est une fonctionnalité intégrée d’Azure Spring Apps qui aide les applications de microservices à répondre de manière optimale à l’évolution de la demande.

Exemple concret

Les magasins d’alimentation Raley’s ont besoin de moderniser le code et l’infrastructure de leurs sites de e-commerce Java hébergés sur Azure. L’entreprise veut également optimiser et automatiser l’allocation de ses ressources réseau. Elle recherche une solution robuste, disponible en permanence et, plus important encore, facile à gérer.

Raley’s choisit Azure Spring Apps. Azure Spring Apps est un service managé pour Spring Boot, qui offre la puissance de Kubernetes tout en fournissant des fonctionnalités de surveillance et de mise à l’échelle automatique en temps réel. Ce service permet également à Raley’s d’adopter une véritable architecture PaaS (platform as a service) et ainsi de profiter encore plus de tous les avantages du cloud.

Le service gère l’infrastructure des applications de microservices Spring Boot en arrière-plan, ce qui laisse aux développeurs plus de temps pour travailler sur leur code. Quand des bibliothèques ou du code Java sont déployés, Spring Apps connecte automatiquement les applications au runtime du service Spring.

Une fois déployées, les applications Azure Spring Apps sont entièrement intégrées aux outils Azure Monitor comme Application Insights et Log Analytics. Ces outils permettent une surveillance facile et entièrement configurable des performances et des erreurs. Ces mêmes services de monitoring peuvent également gérer la mise à l’échelle automatique dans le but de garantir que les ressources sont dimensionnées de manière appropriée en fonction des charges actuelles.

Diagramme montrant un scale-up automatique.