Concevoir pour une dégradation élégante

Last reviewed 2024-12-30 UTC

Ce principe du pilier de fiabilité du Google Cloud Well-Architected Framework fournit des recommandations pour vous aider à concevoir vos Google Cloud charges de travail de manière à ce qu'elles échouent de manière élégante.

Ce principe s'applique au domaine d'intérêt des réponses de la fiabilité.

Présentation des principes

La dégradation progressive 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 progressive garantit la disponibilité continue du système et empêche 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 retrouve toutes ses fonctionnalités.

Par exemple, en période de forte charge, la recherche Google donne la priorité aux résultats provenant de pages Web mieux classées, ce qui peut nuire à la précision. Lorsque la charge diminue, la recherche Google recalcule les résultats de recherche.

Recommandations

Pour concevoir vos systèmes en vue d'une dégradation progressive, tenez compte des recommandations des sous-sections suivantes.

Implémenter la limitation

Assurez-vous que vos répliques peuvent gérer les surcharges de manière indépendante 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 les changements de trafic excédentaire entre les zones.

Utilisez des outils tels qu'Apigee pour contrôler le taux de requêtes API pendant les périodes de fort trafic. 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 demandes en excès de manière anticipée

Configurez vos systèmes pour qu'ils abandonnent les requêtes excédentaires au niveau de l'interface afin de protéger les composants du backend. Le fait d'abandonner certaines requêtes permet d'éviter les échecs globaux et 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 circuit-breaking, où tout le trafic est abandonné en cas de surcharge.

Gérer les erreurs partielles et les nouvelles tentatives

Créez vos applications pour qu'elles gèrent les erreurs partielles et les nouvelles tentatives de manière fluide. Cette conception permet de s'assurer que le plus de trafic possible est diffusé dans les scénarios de forte charge.

Tester les scénarios de surcharge

Pour vérifier que les mécanismes de limitation et d'abandon de 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 aux pics de trafic réels.

Surveiller les pics de trafic

Utilisez des outils d'analyse et de surveillance pour anticiper les pics de trafic et y répondre avant qu'ils ne se transforment en surcharge. La détection et la réponse précoces peuvent vous aider à maintenir la disponibilité des services pendant les périodes de forte demande.