20 puntos por xguru 2023-11-10 | Aún no hay comentarios. | Compartir por WhatsApp

20 años de lecciones aprendidas en Site Reliability Engineering (SRE)

Lecciones de ingeniería de confiabilidad aprendidas en YouTube

  • Selección de medidas de mitigación de riesgos

    • Cuando ocurre un error grave, se deben elegir medidas de mitigación proporcionales a la severidad del problema.
    • Las medidas excesivas de mitigación pueden causar efectos secundarios, y solo deben usarse cuando haya una razón justificada para saltarse el procedimiento estándar.
  • Pruebas de mecanismos de recuperación para situaciones de emergencia

    • Los mecanismos de recuperación y las medidas de mitigación deben practicarse y probarse con suficiente anticipación para poder responder de forma efectiva incluso en situaciones críticas.
    • Las pruebas reducen riesgos futuros y mejoran la capacidad de respuesta.
  • Introducción gradual de cambios (aplicando pruebas canary)

    • Antes de desplegar un cambio de forma completa, debe introducirse gradualmente para evitar que, si surge un problema, afecte a todo el sistema.
    • A través del caso de cambios en la configuración de caché de YouTube, se reconoció que incluso un cambio pequeño requiere una introducción sistemática.

Lecciones aprendidas de Google Calendar

  • Importancia de una función de detención de emergencia

    • Para cambios con riesgos potenciales, se necesita una función tipo "gran botón rojo" que permita responder rápidamente.
    • También deben prepararse mecanismos de detención de emergencia considerando las dependencias del servicio.
  • Necesidad de pruebas de integración

    • Las pruebas unitarias son útiles dentro de un alcance limitado, pero mediante pruebas de integración se debe verificar la idoneidad del sistema en conexión con el entorno real.
    • A partir de un caso de error en Google Calendar, se reconoció la importancia de probar siguiendo las rutas reales de uso.

Lecciones de Google en 2017

  • Importancia de los canales de comunicación para emergencias

    • Es necesario prepararse para contar con canales de comunicación y canales de respaldo.
    • Ante una caída del servicio, se deben disponer varios medios de comunicación no dependientes entre sí y probar su efectividad.
  • Mantener funciones mínimas durante una degradación del rendimiento

    • Para evitar que el servicio se detenga por completo, debe diseñarse de forma que pueda ofrecer funciones básicas incluso en estado degradado.

Pruebas sobre resiliencia ante desastres

  • Pruebas de resiliencia y recuperación ante desastres
    • Se debe probar la resiliencia de servicios o sistemas para asegurar su continuidad incluso en situaciones de desastre.
    • Mediante pruebas de recuperación, se debe confirmar que el sistema puede volver a un estado normal después de una interrupción.

Importancia de las medidas de mitigación automatizadas

  • Automatización de las medidas de mitigación
    • En caso de fallas múltiples de red, en lugar de manejarlas manualmente, se debe reducir el tiempo de resolución mediante medidas de mitigación automatizadas.

Reducir el tiempo entre despliegues

  • Realizar rollouts frecuentes

    • Los largos intervalos entre rollouts sirven para evaluar la seguridad del sistema.
  • Una sola versión global de hardware es un punto único de falla

    • Depender de un solo modelo específico puede simplificar la operación, pero si ese modelo presenta problemas, la ejecución de funciones críticas puede interrumpirse.
    • La existencia de diversos backbones de red ayuda a evitar una interrupción total y permite enrutar el tráfico de mayor prioridad hacia alternativas que sigan funcionando.

Aún no hay comentarios.

Aún no hay comentarios.