Profiter de l'élasticité

Last reviewed 2026-10-22 UTC

Ce principe du pilier "Optimisation des performances" du frameworkGoogle Cloud Well-Architected fournit des recommandations pour vous aider à intégrer l'élasticité, c'est-à-dire la capacité à ajuster les ressources de manière dynamique en fonction des changements d'exigences de la charge de travail.

L'élasticité permet aux différents composants d'un système d'évoluer indépendamment. Ce scaling ciblé peut vous aider à améliorer les performances et la rentabilité en allouant les ressources précisément là où elles sont nécessaires, sans surprovisionner ni sous-provisionner vos ressources.

Présentation du principe

Les exigences de performances d'un système influencent directement le moment et la manière dont le système évolue verticalement ou horizontalement. Vous devez évaluer la capacité du système et déterminer la charge qu'il est censé gérer au départ. Vous devez ensuite déterminer comment vous souhaitez que le système réagisse aux augmentations et aux diminutions de la charge.

Lorsque la charge augmente, le système doit effectuer un scaling horizontal, un scaling vertical ou les deux. Pour le scaling horizontal, ajoutez des nœuds d'instance répliquée pour vous assurer que le système dispose d'une capacité globale suffisante pour répondre à la demande accrue. Pour le scaling vertical, remplacez les composants existants de l'application par des composants offrant une capacité, une mémoire et un stockage plus importants.

Lorsque la charge diminue, le système doit réduire sa capacité (horizontalement, verticalement ou les deux).

Définissez les circonstances dans lesquelles le système effectue un scaling à la hausse ou à la baisse. Prévoyez d'effectuer un scaling manuel des systèmes pour les périodes de trafic élevé connues. Utilisez des outils tels que l'autoscaling, qui répond aux augmentations ou aux diminutions de la charge.

Recommandations

Pour profiter de l'élasticité, tenez compte des recommandations des sections suivantes.

Planifier les périodes de pic de charge

Vous devez planifier un chemin de scaling efficace pour les événements connus, tels que les périodes de hausse de la demande des clients.

Envisagez d'effectuer un scaling à la hausse de votre système avant les périodes de trafic élevé connues. Par exemple, si vous êtes une entreprise de vente au détail, vous vous attendez à ce que la demande augmente pendant les soldes saisonniers. Nous vous recommandons d'effectuer un scaling à la hausse ou effectuer un scaling horizontal manuel de vos systèmes avant ces ventes afin de vous assurer que votre système peut gérer immédiatement la charge accrue ou ajuster immédiatement les limites existantes. Sinon, le système peut prendre plusieurs minutes pour ajouter des ressources en réponse aux modifications en temps réel. La capacité de votre application risque de ne pas augmenter assez rapidement, ce qui peut entraîner des retards pour certains utilisateurs.

Pour les événements inconnus ou inattendus, tels qu'une augmentation soudaine de la demande ou du trafic, vous pouvez utiliser les fonctionnalités d'autoscaling pour déclencher un scaling élastique basé sur des métriques. Ces métriques peuvent inclure l'utilisation du processeur, la capacité de diffusion de l'équilibreur de charge, la latence et même des métriques personnalisées que vous définissez dans Cloud Monitoring.

Prenons l'exemple d'une application qui s'exécute sur un groupe d'instances géré (MIG) Compute Engine. Cette application nécessite que chaque instance fonctionne de manière optimale jusqu'à ce que l'utilisation moyenne du processeur atteigne 75 %. Dans cet exemple, vous pouvez définir une règle d'autoscaling qui crée davantage d'instances lorsque l'utilisation du processeur atteint le seuil. Ces nouvelles instances aident à absorber la charge, ce qui permet de s'assurer que l'utilisation moyenne du processeur reste à un taux optimal jusqu'à ce que le nombre maximal d'instances que vous avez configuré pour le MIG soit atteint. Lorsque la demande diminue, la règle d'autoscaling supprime les instances qui ne sont plus nécessaires.

Planifiez des réservations d'emplacements de ressources dans BigQuery ou ajustez les limites des configurations d'autoscaling dans Spanner à l'aide de l'autoscaler géré.

Utiliser le scaling prédictif

Si vos composants système incluent Compute Engine, vous devez évaluer si l'autoscaling prédictif est adapté à votre charge de travail. L'autoscaling prédictif prévoit la charge future en fonction des tendances historiques de vos métriques (par exemple, l'utilisation du processeur). Les prévisions sont recalculées toutes les deux ou trois minutes, ce qui permet à l'autoscaler d'adapter rapidement ses prévisions aux dernières variations de charge. Sans autoscaling prédictif, un autoscaler ne peut effectuer un scaling horizontal d'un groupe que de manière réactive, en fonction des variations de charge observées en temps réel. L'autoscaling prédictif utilise les données en temps réel ainsi que les données historiques pour répondre à la charge actuelle et prévue.

Implémenter des architectures sans serveur

Envisagez d'implémenter une architecture sans serveur avec des services sans serveur intrinsèquement élastiques, tels que les suivants :

Contrairement à l'autoscaling dans d'autres services qui nécessitent des règles d'ajustement (par exemple, Compute Engine), l'autoscaling sans serveur est instantané et peut être réduit à zéro ressource.

Utiliser le mode Autopilot pour Kubernetes

Pour les applications complexes qui nécessitent un contrôle plus poussé de Kubernetes, envisagez d'utiliser le mode Autopilot dans Google Kubernetes Engine (GKE). Le mode Autopilot offre l'automatisation et l'évolutivité par défaut. GKE effectue un scaling automatique des nœuds et des ressources en fonction du trafic. GKE gère les nœuds, crée des nœuds pour vos applications et configure les mises à niveau et les réparations automatiques.