Ce principe du pilier de fiabilité du framework d'architecture fournit des recommandations pour vous aider à utiliser l'évolutivité horizontale. En utilisant l'évolutivité horizontale, vous pouvez vous assurer que vos charges de travail dansGoogle Cloud peuvent évoluer efficacement et maintenir leurs performances.
Ce principe s'applique à la zone de mise au point de la fiabilité en termes de champ d'application.
Présentation des principes
Passez à une architecture horizontale. Pour faire face à la croissance 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 l'intérêt du scaling horizontal, considérez les limites du scaling vertical.
Un scénario courant de scaling vertical consiste à utiliser une base de données MySQL comme base de données principale contenant des données critiques. À mesure que l'utilisation de la base de données augmente, plus de RAM et de processeur sont nécessaires. À terme, 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 que la croissance d'une base de données est limitée. Les tailles de VM ne sont pas illimitées. La base de données peut atteindre un point où il n'est plus possible d'ajouter d'autres ressources.
Même si les ressources sont illimitées, une grande VM peut devenir un point de défaillance unique. Tout problème lié à la VM de base de données principale peut entraîner des réponses d'erreur ou une panne à l'échelle du système affectant tous les utilisateurs. Évitez les points de défaillance uniques, comme décrit dans la section Créer des systèmes disponibilité élevée grâce à des ressources redondantes.
En plus de 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 dotées de plus de puissance de calcul et de mémoire sont acquises.
En revanche, le scaling horizontal peut coûter moins cher. Le potentiel d'évolutivité horizontale est pratiquement illimité dans un système conçu pour évoluer.
Recommandations
Pour passer d'une architecture de VM unique à une architecture horizontale multi-machines, vous devez planifier soigneusement et utiliser les outils appropriés. Pour vous aider à effectuer une mise à l'échelle horizontale, tenez compte des recommandations des sous-sections suivantes.
Utiliser des services gérés
Les services gérés vous évitent 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 faire évoluer automatiquement vos conteneurs sans état en fonction du trafic entrant.
Favoriser la conception modulaire
Les composants modulaires et les interfaces claires vous aident à faire évoluer les composants individuels selon les besoins, au lieu de faire évoluer l'application entière. Pour en savoir plus, consultez la section Favoriser la conception modulaire du pilier "Optimisation des performances".
Implémenter une conception sans état
Concevez des applications sans état, c'est-à-dire sans données stockées localement. Vous pouvez ainsi ajouter ou supprimer des instances sans vous soucier de la cohérence des données.