Chaque composant applicatif du service que nous écrivons nécessite des ressources pour s’exécuter et fonctionner correctement. Il peut être presque impossible de prévoir exactement la quantité de ressources nécessaires, car il y a beaucoup de pièces mobiles qui peuvent l’influencer. La quantité de mémoire, de processeur ou de bande passante réseau nécessaire peut changer en utilisant le cycle de vie de l’application au fur et à mesure que le volume de travail change. Presque toutes les applications ont des exigences de performance que nous devons toujours satisfaire. À mesure que la charge de travail change, nous devons être en mesure de maintenir le niveau de rendement souhaité. C’est là qu’Azure Autoscale entre en jeu, car il s’agit d’un mécanisme que nous pouvons utiliser pour y parvenir.
Autoscaling
Dans la figure 1 ci-dessous, il y a la charge d’application et la limite totale des ressources. Lorsque la mise à l’échelle automatique n’est pas en place, le Utilisateurs qui sont connectés et les utilisateurs qui vont se connecter à l’application Web, peuvent faire face à des performances Questions en raison de la limitation des ressources disponibles et il atteint le seuil tel que décrit dans Graphique 1.2 et ne peut pas faire face au trafic. Toutefois, lorsque vous regardez la figure 2, vous pouvez voir, avec le trafic et la charge d’application, les ressources disponibles augmentent simultanément. C’est l’avantage de l’autoscaling.
Calculez les solutions dans Azure
- Service app. Azure App Service est un service d’hébergement Web entièrement géré pour la création d’applications Web, de back ends mobiles et d’API RESTful. Des petits sites Web aux applications Web à l’échelle mondiale, Azure dispose des options de tarification et de performance qui correspondent à vos besoins.
- Azure Cloud Services. Azure Cloud Services est un exemple de plate-forme en tant que service (PaaS). Tout comme Azure App Service, cette technologie est conçue pour prendre en charge des applications évolutives, fiables et peu coûteuses à utiliser. Vous pouvez installer votre propre logiciel sur les VMs qui utilisent Azure Cloud Services, et vous pouvez y accéder à distance.
- Tissu de service Azure. Azure Service Fabric est une plate-forme de systèmes distribuées qui facilite l’emballage, le déploiement et la gestion de microservices et de conteneurs évolutifs et fiables. Service Fabric représente la plate-forme de nouvelle génération pour la construction et la gestion de ces applications de classe entreprise, tier-1 et cloud fonctionnant dans des conteneurs.
- Fonctions Azure. Les fonctions Azure permettent aux développeurs d’agir en se connectant à des sources de données ou à des solutions de messagerie, ce qui facilite le traitement et la réaction aux événements. Les développeurs peuvent tirer parti des fonctions Azure pour créer des points de terminaison API basés sur HTTP accessibles par un large éventail d’applications, d’appareils mobiles et ioT.
- Machines virtuelles. Azure Virtual machine nous permettra de créer et d’utiliser des machines virtuelles dans le cloud comme infrastructure comme un service. Nous pouvons utiliser une image fournie par Azure, ou partenaire, ou nous pouvons utiliser la nôtre pour créer la machine virtuelle.
Types d’autoscaling
Vertical Autoscaling
L’échelle verticale signifie que nous modifions la taille d’un VM. Nous nous agrandissons si nous avons besoin d’un VM plus grand qui a plus de ressources matérielles, et, d’autre part, nous nous a réduit au cas où nous n’avons pas besoin de toutes les ressources disponibles et nous voulons diminuer la taille d’un VM. Notre application hébergée dans ce VM reste inchangée dans les deux cas. Ce type de mise à l’échelle n’est pas très efficace, en particulier dans un environnement cloud, car la consommation des ressources n’est pas optimisée. Un autre inconvénient principal est que la machine virtuelle doit être arrêtée pour que sa taille change. Cela affecte notre application car elle doit être hors ligne pendant que le VM est arrêté, resized, et redémarré, et ces actions prennent généralement du temps. Bien sûr, nous pourrions garder notre VM inchangé, mais plutôt fournir une nouvelle machine virtuelle avec la taille désirée et déplacer notre application une fois que le nouveau VM est prêt. Cela nécessite toujours que notre application soit hors ligne pendant qu’elle se déplace, mais le processus de déplacement de l’application est beaucoup plus court.
Horizontal Autoscaling
L’échelle horizontale signifie que nous modifions le nombre de VMs en cours d’exécution et maintenons les performances souhaitées en divisant la charge entre plusieurs instances d’un même VM. La taille de la machine virtuelle reste la même. Nous n’augmentons le nombre d’entre eux qu’en nous haussant, ou nous engons le nombre de VMs en cours d’exécution à un moment donné en faisant une mise à l’échelle. En utilisant cette approche, nous pouvons commencer par la petite taille vm et de garder la consommation de ressources aussi optimale que possible. En outre, il n’y a pas de temps d’arrêt pour notre application, car il y aura toujours au moins une instance de l’application en cours d’exécution. L’échelle horizontale nécessite un 3ème de charge afin de répartir la charge entre les VMs en cours d’exécution uniformément. Mais heureusement pour nous, Azure le fait hors de la boîte avec zéro action nécessaire de notre côté.
Surveillance et alertes
Il existe de nombreuses façons de surveiller si des ressources supplémentaires sont ajoutées sur Azure à un service, dont certaines sont assez compliquées, par exemple, la lame de mise à l’échelle d’un service (Virtual Machine Scale Sets dans ce cas, figure 6). Il s’agit d’une méthode qui est préférée par les administrateurs, mais pas par les propriétaires et les contributeurs. Pour que les utilisateurs puissent les voir, nous devons être connectés au portail Azure qui peut prendre beaucoup de temps pour les utilisateurs.
Alertes
Vous pouvez choisir d’aviser les utilisateurs lorsque l’échelle automatique et l’échelle se produisent (service App).
Par défaut, les informations d’application sont utilisées pour le service d’application qui nous donne un aperçu du temps de réponse du serveur, des demandes, etc.
C’est ainsi que configurer l’autoscaling dans un service d’application. Tout d’abord, passez à Scale-out > > Configurez l’état de > l’échelle Sélectionnez la mesure appropriée comme CPU, RAM, demandes, etc. > Économisez et c’est fait.
Lorsque vous utilisez Azure Autoscale, vous n’avez pas à vous soucier de la façon d’implémenter des équilibreurs de charge, des gestionnaires de trafic, etc. Azure gère tout.
Remarque : Les VMs Standalones ont besoin d’une configuration supplémentaire. Toutefois, les ensembles d’échelles de machines virtuelles ne nécessitent aucune action administrative lors de l’autoscaling. Les balanceurs de charge sont créés automatiquement.
Azure App Services a une méthode d’autoscaling aveugle qui est gérée par Azure et vous ne voyez aucun service utilisé individuellement dans les ressources. Au lieu de cela, il supprime les frais généraux administratifs. Les utilisateurs se sentent peu ou pas de problèmes de performances en gardant à l’esprit l’autoscaling est atteint. Azure gère la majeure partie de la partie d’autoscaling, en dehors de spécifier les conditions de l’échelle automatique, il n’y a pas grand-chose à faire pour l’utilisateur. Tout est géré en douceur.
Dans la figure 10, il existe un VMSS (Virtual Machine Scale Sets) qui s’échelle automatiquement lorsque les conditions que vous mentionnez s’avèrent vraies.
Test Azure Autoscale
Le test fait partie intégrante d’une application Web. Sans test, nous ne pouvons pas savoir avec certitude si le serveur Web peut gérer le trafic, pour cela, nous effectuons des tests. Les tests de résistance, les tests de charge sont les quelques exemples de tests. Pour qu’il soit géré uniquement sur Azure, inscrivez-vous à une organisation DevOps dans le portail Azure, créez un projet, puis vous serez redirigé vers la page suivante :
Utilisation de LoadView pour vérifier que Azure Autoscale fonctionne correctement
Comme nous le savons maintenant, quand une quantité de Processeur, RAM et IO est atteint, l’autoscaling se produit. Ici, dans la figure 15, ce graphique est inclus dans un rapport fourni par LoadView lorsque vous exécutez un test contre une certaine URL ou point de terminaison. Le premier graphique a un nombre constant d’utilisateurs visitant le site selon notre stratégie de test de charge et ainsi de suite, le temps de réponse moyen augmente considérablement.
Cependant, avec l’autoscaling vient avantages. Dans la figure 16, lorsque les utilisateurs augmentent, notre instance hébergeant l’application Web s’a déforme selon les conditions et les temps de réponse moyens ne sont donc pas affectés une fois l’autoscaling terminé. Lorsque les utilisateurs ne sont plus connectés, les instances qui ont été créées pour gérer la charge imprévisible sont terminées et seul le décompte initial reste intact.
Dans la figure 17, le test de charge fourni par LoadView fournit un moyen de tester l’application à l’aide de session lorsque les sessions continuent d’augmenter, ce qui facilite les tests appropriés et si l’application évolue automatiquement ou non.
Test Azure Autoscale: Conclusion
Lorsque vous implémentez Microsoft Azure Autoscale, vous n’avez pas à vous soucier de la façon d’implémenter des bilans de charge, des gestionnaires de trafic, etc. Azure gère tout et s’assure que la quantité correcte de ressources est en cours d’exécution pour gérer la charge de vos applications de vos tests. Toutefois, l’utilisation d’une solution comme LoadView garantit que l’échelle automatique fonctionne correctement et que vos utilisateurs ne connaissent aucune dégradation des performances au fur et à mesure que les ressources sont ajoutées.
Essayez LoadView par vous-même et avez reçu jusqu’à 5 tests de charge gratuits pour commencer.