Partager via


Mise à l'échelle de conteneurs et d’applications serverless

Conseil

Ce contenu est un extrait du livre électronique, Cloud Native .NET apps for Azure (Architecture d’applications .NET natives cloud pour Azure), disponible dans la documentation .NET ou au format PDF à télécharger gratuitement pour le lire hors connexion.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Il existe deux moyens de mettre à l’échelle une application : le scale-up ou le scale-out. Le premier consiste à ajouter de la capacité à une seule ressource, tandis que le second consiste à ajouter des ressources supplémentaires pour augmenter la capacité.

La solution simple : le scale-up

La mise à niveau d’un serveur hôte existant avec un processeur, une mémoire, une vitesse d’E/S de disque et une vitesse d’E/S réseau plus élevés est connue sous le nom de scale-up. Le scale-up d’une application native cloud implique de choisir des ressources avec plus de capacité auprès du fournisseur cloud. Par exemple, vous pouvez créer un pool de nœuds avec des machines virtuelles plus grandes dans votre cluster Kubernetes. Ensuite, migrez vos services conteneurisés vers le nouveau pool.

Les applications serverless effectuent un scale-up en choisissant le plan Fonctions Premium ou les tailles d’instance Premium d’un plan App Service dédié.

Scale-out des applications natives cloud

Les applications natives cloud connaissent souvent de grandes fluctuations de la demande et doivent s’adapter tout de suite. Elles favorisent le scale-out, qui est effectué horizontalement en ajoutant des machines supplémentaires (appelées nœuds) ou des instances d’application à un cluster existant. Dans Kubernetes, vous pouvez effectuer une mise à l’échelle manuellement en ajustant les paramètres de configuration de l’application (par exemple, mise à l’échelle d’un pool de nœuds) ou une mise à l’échelle automatique.

Les clusters AKS peuvent être mis à l’échelle automatiquement de deux manières :

Tout d’abord, l’autoscaler de pods horizontaux surveille la demande en ressources et met automatiquement à l’échelle vos réplicas POD pour y répondre. Lorsque le trafic augmente, des réplicas supplémentaires sont automatiquement provisionnés pour effectuer un scale-out de vos services. À l’inverse, lorsque la demande diminue, ils sont supprimés pour effectuer un scale-in de vos services. Vous définissez la métrique sur laquelle mettre à l’échelle, par exemple, l’utilisation du processeur. Vous pouvez également spécifier le nombre minimal et le nombre maximal de réplicas à exécuter. AKS surveille cette métrique et met à l’échelle en conséquence.

Ensuite, la fonctionnalité Autoscaler de clusters AKS vous permet de mettre automatiquement à l’échelle des nœuds de calcul sur un cluster Kubernetes pour répondre à la demande. Grâce à elle, vous pouvez ajouter automatiquement de nouvelles machines virtuelles au groupe de machines virtuelles identiques Azure sous-jacent chaque fois qu’il est nécessaire d’augmenter la capacité de calcul. Elle supprime également les nœuds lorsqu’ils n’ont plus d’utilité.

La figure 3-11 montre la relation entre ces deux services de mise à l’échelle.

Scaling out an App Service plan.

Figure 3-11. Scale-out d’un plan App Service.

Les utiliser ensemble garantit à la fois un nombre optimal d’instances de conteneur et de nœuds de calcul pour prendre en charge une demande fluctuante. L’autoscaler de pods horizontaux optimise le nombre de pods nécessaires. L’autoscaler de clusters optimise le nombre de nœuds nécessaires.

Mise à l'échelle des fonctions Azure

Les fonctions Azure effectuent automatiquement un scale-out sur demande. Les ressources serveur sont allouées dynamiquement et supprimées en fonction du nombre d’événements déclenchés. Seules les ressources de calcul consommées lorsque vos fonctions s’exécutent vous sont facturées. La facturation est basée sur le nombre d’exécutions, la durée d’exécution et la mémoire utilisée.

Alors que le plan de consommation par défaut fournit une solution économique et évolutive pour la plupart des applications, l’option Premium offre aux développeurs de la souplesse sur les besoins de fonctions Azure personnalisées. La mise à niveau vers le plan Premium permet d’avoir le contrôle sur les tailles d’instance, les instances préchauffées (pour éviter les retards de démarrage à froid) et les machines virtuelles dédiées.