Concevoir pour une dégradation élégante

Last reviewed 2024-12-30 UTC

Ce principe du pilier de fiabilité du framework d'architectureGoogle Cloud fournit des recommandations pour vous aider à concevoir vos charges de travail Google Cloud de manière à gérer les échecs de manière appropriée.

Ce principe s'applique à la zone de concentration de la fiabilité concernant la réponse.

La dégradation élégante est une approche de conception dans laquelle un système soumis à une charge élevée continue de fonctionner, avec des performances ou une précision éventuellement 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 provenant des pages Web les mieux classées, ce qui peut entraîner une certaine perte de précision. Lorsque la charge diminue, la recherche Google recalcule les résultats de recherche.

Recommandations

Pour concevoir vos systèmes de manière à assurer une dégradation élégante, tenez compte des recommandations des sous-sections suivantes.

Implémenter la limitation

Assurez-vous que vos réplicas peuvent gérer indépendamment les surcharges et limiter les requêtes entrantes lors de scénarios à fort trafic. Cette approche vous permet d'éviter les défaillances en cascade causées par les variations de trafic excédentaire entre les zones.

Utilisez des outils tels que Apigee pour contrôler le débit des requêtes API pendant les périodes de forte activité. 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 en trop tôt

Configurez vos systèmes pour qu'ils abandonnent les requêtes excédentaires au niveau de la couche de présentation afin de protéger les composants de backend. L'abandon de certaines requêtes empêche 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 réduire l'impact des pannes, contrairement à une approche telle que le déclenchement d'un disjoncteur, 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 garantir que le trafic est diffusé autant que possible lors de scénarios de charge élevée.

Tester les 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 vérifier 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 prévoir et répondre aux pics de trafic avant qu'ils ne se transforment en surcharges. La détection et la réponse précoces peuvent contribuer à maintenir la disponibilité des services pendant les périodes de forte demande.