Este principio del pilar de confiabilidad del Google Cloud Well-Architected Framework proporciona recomendaciones para ayudarte a diseñar tus cargas de trabajo de Google Cloud para que fallen de forma correcta.
Este principio es relevante para el área de enfoque de respuesta de la confiabilidad.
Descripción general del principio
La degradación elegante es un enfoque de diseño en el que un sistema que experimenta una carga alta sigue funcionando, posiblemente con un rendimiento o una exactitud reducidos. La degradación elegante garantiza la disponibilidad continua del sistema y evita la falla completa, incluso si el trabajo del sistema no es óptimo. Cuando la carga vuelve a un nivel manejable, el sistema reanuda su funcionalidad completa.
Por ejemplo, durante los períodos de carga alta, la Búsqueda de Google prioriza los resultados de las páginas web con una clasificación más alta, lo que podría sacrificar cierta precisión. Cuando la carga disminuye, la Búsqueda vuelve a calcular los resultados de la búsqueda.
Recomendaciones
Para diseñar tus sistemas para una degradación elegante, ten en cuenta las recomendaciones de las siguientes subsecciones.
Implementa la limitación
Asegúrate de que tus réplicas puedan controlar las sobrecargas de forma independiente y limitar las solicitudes entrantes en situaciones de tráfico alto. Este enfoque te ayuda a evitar fallas en cascada causadas por cambios en el exceso de tráfico entre zonas.
Usa herramientas como Apigee para controlar la tasa de solicitudes a la API durante los momentos de tráfico alto. Puedes configurar reglas de política para reflejar cómo deseas reducir las solicitudes.
Descarta las solicitudes excedentes con anticipación
Configura tus sistemas para descartar el exceso de solicitudes en la capa de frontend para proteger los componentes de backend. Descartar algunas solicitudes evita fallas globales y permite que el sistema se recupere de forma más elegante. Con este enfoque, es posible que algunos usuarios experimenten errores. Sin embargo, puedes minimizar el impacto de las interrupciones, en contraste con un enfoque como el de circuit-breaking, en el que se descarta todo el tráfico durante una sobrecarga.
Cómo controlar errores parciales y reintentos
Compila tus aplicaciones para que manejen errores parciales y reintentos sin problemas. Este diseño ayuda a garantizar que se entregue la mayor cantidad posible de tráfico durante situaciones de carga alta.
Prueba situaciones de sobrecarga
Para validar que los mecanismos de limitación y descarte de solicitudes funcionen de manera eficaz, simula con regularidad condiciones de sobrecarga en tu sistema. Las pruebas ayudan a garantizar que tu sistema esté preparado para los aumentos repentinos de tráfico reales.
Supervisa los aumentos repentinos de tráfico
Usa herramientas de análisis y supervisión para predecir y responder a los aumentos repentinos de tráfico antes de que se conviertan en sobrecargas. La detección y respuesta tempranas pueden ayudar a mantener la disponibilidad del servicio durante los períodos de alta demanda.