REL08-BP03 Integrar las pruebas de resiliencia como parte de su despliegue - AWS Well-Architected Framework

REL08-BP03 Integrar las pruebas de resiliencia como parte de su despliegue

Integre las pruebas de resiliencia introduciendo fallos en el sistema de forma intencionada para medir su capacidad en caso de situaciones disruptivas. Las pruebas de resiliencia son diferentes de las pruebas unitarias y funcionales que suelen estar integradas en los ciclos de despliegue, ya que se centran en la identificación de fallos imprevistos en el sistema. Aunque es seguro comenzar con la integración de pruebas de resiliencia en la fase de preproducción, fíjese el objetivo de implementar estas pruebas en producción como parte de sus GameDays.

Resultado deseado: las pruebas de resiliencia ayudan a aumentar la confianza en la capacidad del sistema para resistir la degradación en producción. Los experimentos identifican los puntos débiles que podrían provocar fallos, lo que le ayuda a mejorar su sistema para mitigar de manera automática y eficiente los fallos y la degradación.

Antipatrones usuales:

  • Falta de observabilidad y supervisión en los procesos de despliegue

  • Confianza en los seres humanos para resolver fallos del sistema

  • Mecanismos de análisis de mala calidad

  • Centrarse en los problemas conocidos de un sistema y falta de experimentación para identificar cualquier elemento desconocido

  • Identificación de fallos, pero sin ninguna resolución

  • No hay documentación de los resultados ni runbooks

Beneficios de establecer las prácticas recomendadas: las pruebas de resiliencia integradas en sus despliegues ayudan a identificar problemas desconocidos en el sistema que, de otro modo, pasarían desapercibidos y podrían provocar tiempos de inactividad en la producción. La identificación de estos elementos desconocidos en un sistema le ayuda a documentar los resultados, integrar las pruebas en su proceso de CI/CD y crear runbooks, lo que simplifica la mitigación mediante mecanismos eficientes y repetibles.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio

Guía para la implementación

Los formularios de pruebas de resiliencia más comunes que se pueden integrar en los despliegues de su sistema son la recuperación ante desastres y la ingeniería del caos.

  • Incluya actualizaciones en sus planes de recuperación ante desastres y procedimientos operativos estándar (SOP) en cualquier despliegue importante.

  • Integre las pruebas de fiabilidad en sus canalizaciones de despliegue automatizadas. Los servicios como AWS Resilience Hub se pueden integrar en su canalización de CI/CD para establecer evaluaciones de resiliencia continuas que se realicen automáticamente como parte de cada despliegue.

  • Defina sus aplicaciones en AWS Resilience Hub. Las evaluaciones de resiliencia generan fragmentos de código que le ayudan a crear procedimientos de recuperación como documentos de AWS Systems Manager para sus aplicaciones y proporcionan una lista de monitores y alarmas recomendados de Amazon CloudWatch.

  • Una vez actualizados los planes de recuperación ante desastres y los procedimientos operativos estándar, realice las pruebas de recuperación ante desastres para verificar que son efectivos. Las pruebas de recuperación ante desastres le ayudan a determinar si puede restaurar el sistema después de un evento y recuperar el funcionamiento normal. Puede simular varias estrategias de recuperación ante desastres e identificar si su planificación es suficiente para cumplir sus requisitos de tiempo de actividad. Las estrategias comunes de recuperación ante desastres incluyen copias de seguridad y restauración, el enfoque de luz piloto, la espera en frío, la espera semiactiva, la espera activa y la estrategia activa-activa, y todas difieren en coste y complejidad. Antes de realizar las pruebas de recuperación ante desastres, le recomendamos que defina su objetivo de tiempo de recuperación (RTO) y su objetivo de punto de recuperación (RPO) para simplificar la elección de la estrategia de simulación. AWS ofrece herramientas de recuperación ante desastres como AWS Elastic Disaster Recovery que ayudan a comenzar con la planificación y las pruebas.

  • Los experimentos de ingeniería del caos introducen disrupciones en el sistema, como cortes de la red y fallos del servicio. Al realizar simulaciones con fallos controlados, puede descubrir las vulnerabilidades de su sistema y, al mismo tiempo, contener la repercusión de los fallos inyectados. Al igual que en las demás estrategias, ejecute simulaciones de fallos controlados en entornos que no sean de producción utilizando servicios como AWS Fault Injection Service para ganar confianza antes de desplegarlos en producción.

Recursos

Documentos relacionados:

Vídeos relacionados: