Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Ce contenu est un extrait de l’eBook, Architecting Cloud Native .NET Applications pour Azure, disponible sur .NET Docs ou en tant que PDF téléchargeable gratuitement qui peut être lu hors connexion.
Il existe deux façons de mettre à l’échelle une application : verticalement ou horizontalement. La première fait référence à l’ajout de capacités à une seule ressource, tandis que la seconde fait référence à l’ajout de ressources supplémentaires pour augmenter les capacités.
La solution simple : monter en puissance
La mise à niveau d’un serveur hôte existant avec une augmentation de l’UC, de la mémoire, de la vitesse d’E/S disque et de la vitesse d’E/S réseau est appelée scale-up. La mise à l’échelle d’une application native cloud implique de choisir des ressources plus compatibles du fournisseur cloud. Par exemple, vous pouvez créer un pool de nœuds avec des machines virtuelles plus volumineuses 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é.
Montée en puissance des applications natives cloud
Les applications natives cloud connaissent souvent de grandes fluctuations de la demande et nécessitent une mise à l’échelle à un moment donné. Ils privilégient le scale-out. Le scale-out 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, la mise à l’échelle d’un pool de nœuds) ou la mise à l’échelle automatique.
Les clusters AKS peuvent s’auto-adapter de deux manières différentes :
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. De même, lorsque la demande diminue, elles sont supprimées afin de réaliser une réduction d'échelle 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 l'adapte en conséquence.
Ensuite, la fonctionnalité de mise à l’échelle automatique du cluster AKS vous permet de mettre automatiquement à l’échelle des nœuds de calcul sur un cluster Kubernetes pour répondre à la demande. Vous pouvez ajouter automatiquement de nouvelles machines virtuelles à l'ensemble d'échelle de machines virtuelles Azure chaque fois qu'une capacité de calcul supplémentaire est nécessaire. Il supprime également les nœuds lorsqu’il n’est plus nécessaire.
La figure 3-11 montre la relation entre ces deux services de mise à l’échelle.
Figure 3-11. Scale-out d’un plan App Service.
En travaillant ensemble, tous deux garantissent un nombre optimal d'instances de conteneur et de nœuds de calcul pour prendre en charge la demande fluctuante. L’autoscaler de pods horizontaux optimise le nombre de pods nécessaires. Le générateur de mise à l’échelle automatique du cluster optimise le nombre de nœuds requis.
Mise à l’échelle d’Azure Functions
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. Vous êtes facturé uniquement pour les ressources de calcul consommées lorsque vos fonctions s’exécutent. La facturation est basée sur le nombre d’exécutions, le temps d’exécution et la mémoire utilisés.
Bien que le plan de consommation par défaut fournit une solution économique et évolutive pour la plupart des applications, l’option Premium permet aux développeurs de flexibilité pour les exigences d’Azure Functions personnalisées. La mise à niveau vers le plan Premium permet de contrôler les tailles d’instance, les instances préchauffées (pour éviter les retards de démarrage à froid) et les machines virtuelles dédiées.