Ce principe du pilier "Fiabilité" du frameworkGoogle Cloud Well-Architected fournit des recommandations pour vous aider à concevoir vos charges de travail Google Cloud de manière à ce qu'elles échouent de manière progressive.
Ce principe s'applique au domaine d'intervention Réponse de la fiabilité.
Présentation du principe
La dégradation élégante est une approche de conception dans laquelle un système soumis à une charge élevée continue de fonctionner, éventuellement avec des performances ou une précision réduites. La dégradation élégante garantit la disponibilité continue du système et évite une défaillance complète, même si le fonctionnement du système n'est pas optimal. Lorsque la charge revient à un niveau gérable, le système reprend toutes ses fonctionnalités.
Par exemple, en période de forte charge, la recherche Google donne la priorité aux résultats des pages Web les mieux classées, ce qui peut nuire à la précision. Lorsque la charge diminue, la recherche recalcule les résultats de recherche.
Recommandations
Pour concevoir vos systèmes de manière à ce qu'ils se dégradent de manière optimale, tenez compte des recommandations des sous-sections suivantes.
Implémenter la limitation
Assurez-vous que vos instances répliquées peuvent gérer indépendamment les surcharges et limiter les requêtes entrantes en cas de trafic élevé. Cette approche vous permet d'éviter les défaillances en cascade causées par des changements de trafic excédentaire entre les zones.
Utilisez des outils comme Apigee pour contrôler le taux de requêtes API pendant les périodes de trafic élevé. Vous pouvez configurer des règles de stratégie pour refléter la manière dont vous souhaitez réduire les requêtes.
Abandonner les requêtes excédentaires de manière anticipée
Configurez vos systèmes pour qu'ils suppriment les requêtes excédentaires au niveau de la couche d'interface afin de protéger les composants de backend. L'abandon de certaines requêtes évite les défaillances globales et permet au système de récupérer plus facilement. Avec cette approche, certains utilisateurs peuvent rencontrer des erreurs. Toutefois, vous pouvez minimiser l'impact des pannes, contrairement à une approche telle que le disjoncteur, où tout le trafic est supprimé lors d'une surcharge.
Gérer les erreurs partielles et les nouvelles tentatives
Créez vos applications pour gérer les erreurs partielles et les nouvelles tentatives de manière fluide. Cette conception permet de s'assurer qu'un maximum de trafic est diffusé lors des scénarios de charge élevée.
Tester des scénarios de surcharge
Pour vérifier que les mécanismes de limitation et de suppression des requêtes fonctionnent efficacement, simulez régulièrement des conditions de surcharge dans votre système. Les tests permettent de s'assurer que votre système est prêt à faire face à des pics de trafic réels.
Surveiller les pics de trafic
Utilisez des outils d'analyse et de surveillance pour prévoir les pics de trafic et y répondre avant qu'ils ne se transforment en surcharges. Une détection et une réponse précoces peuvent aider à maintenir la disponibilité du service pendant les périodes de forte demande.