Ce principe du pilier de fiabilité du Google Cloud Well-Architected Framework fournit des recommandations pour vous aider à utiliser la scalabilité horizontale. En utilisant la scalabilité horizontale, vous pouvez vous assurer que vos charges de travail en Google Cloud peuvent évoluer efficacement et maintenir leurs performances.
Ce principe concerne le domaine d'intérêt de la définition du champ d'application de la fiabilité.
Présentation du principe
Repensez l'architecture de votre système pour qu'elle soit horizontale. Pour faire face à l'augmentation du trafic ou des données, vous pouvez ajouter des ressources. Vous pouvez également supprimer des ressources lorsqu'elles ne sont pas utilisées.
Pour comprendre la valeur du scaling horizontal, examinez les limites du scaling vertical.
Un scénario courant pour le scaling vertical consiste à utiliser une base de données MySQL comme base de données principale avec des données critiques. À mesure que l'utilisation de la base de données augmente, davantage de RAM et de processeur sont nécessaires. Finalement, la base de données atteint la limite de mémoire sur la machine hôte et doit être mise à niveau. Ce processus peut devoir être répété plusieurs fois. Le problème est qu'il existe des limites strictes à la croissance d'une base de données. La taille des VM n'est pas illimitée. La base de données peut atteindre un point où il n'est plus possible d'ajouter des ressources.
Même si les ressources étaient illimitées, une grande VM peut devenir un point de défaillance unique. Tout problème lié à la VM de la base de données principale peut entraîner des réponses d'erreur ou une panne à l'échelle du système qui affecte tous les utilisateurs. Évitez les points de défaillance uniques, comme décrit dans Créer des systèmes à disponibilité élevée grâce à la redondance des ressources.
Outre ces limites de scaling, le scaling vertical a tendance à être plus coûteux. Le coût peut augmenter de manière exponentielle à mesure que des machines avec une plus grande puissance de calcul et une plus grande mémoire sont acquises.
Le scaling horizontal, en revanche, peut coûter moins cher. Le potentiel de scaling horizontal est pratiquement illimité dans un système conçu pour évoluer.
Recommandations
Pour passer d'une architecture à VM unique à une architecture horizontale à plusieurs machines, vous devez planifier soigneusement et utiliser les bons outils. Pour vous aider à effectuer un scaling horizontal, tenez compte des recommandations des sous-sections suivantes.
Utiliser des services gérés
Les services gérés éliminent le besoin de gérer manuellement le scaling horizontal. Par exemple, avec les groupes d'instances gérés (MIG) Compute Engine, vous pouvez ajouter ou supprimer des VM pour faire évoluer votre application horizontalement. Pour les applications conteneurisées, Cloud Run est une plate-forme sans serveur qui peut automatiquement faire évoluer vos conteneurs sans état en fonction du trafic entrant.
Promouvoir une conception modulaire
Les composants modulaires et les interfaces claires vous aident à faire évoluer des composants individuels selon vos besoins, au lieu de faire évoluer l'ensemble de l'application. Pour en savoir plus, consultez la section Promouvoir une conception modulaire dans le pilier d'optimisation des performances.
Implémenter une conception sans état
Concevez des applications sans état, c'est-à-dire sans données stockées localement. Cela vous permet d'ajouter ou de supprimer des instances sans vous soucier de la cohérence des données.