OPS06-BP03 Emplear estrategias de despliegue seguros - AWS Well-Architected Framework

OPS06-BP03 Emplear estrategias de despliegue seguros

Los despliegues de producción seguros controlan el flujo de cambios beneficiosos con el objetivo de minimizar cualquier impacto percibido por los clientes como consecuencia de dichos cambios. Los controles de seguridad proporcionan mecanismos de inspección para validar los resultados deseados y limitar el alcance del impacto de cualquier defecto introducido por los cambios o por errores en el despliegue. Los despliegues seguros incluyen estrategias como: indicadores de características, caja individual, continuas (versiones de valores controlados), inmutables, división del tráfico y despliegues azul-verde.

Resultado deseado: su organización utiliza un sistema de entrega continua e integración continua (CI/CD) que proporciona capacidades para automatizar despliegues seguros. Los equipos deben utilizar estrategias adecuadas para despliegues seguros.

Patrones comunes de uso no recomendados:

  • Implementa un cambio sin éxito en toda la producción de una sola vez. Como resultado, todos los clientes resultan afectados simultáneamente.

  • Un defecto introducido en un despliegue simultáneo en todos los sistemas requiere una versión de emergencia. Corregirlo para todos los clientes lleva varios días.

  • La administración del lanzamiento de producción requiere la planificación y la participación de varios equipos. Esto limita su capacidad de actualizar con frecuencia las características para sus clientes.

  • Realiza una implementación mutable al modificar los sistemas existentes. Tras descubrir que el cambio no ha tenido éxito, se ve obligado a modificar de nuevo los sistemas para restaurar la versión antigua, lo que prolonga el tiempo de recuperación.

Beneficios de establecer esta práctica recomendada: los despliegues automatizados equilibran la velocidad de las implementaciones con la entrega de cambios beneficiosos de manera coherente a los clientes. Limitar el impacto evita caros errores de despliegue y maximiza la capacidad de los equipos de responder de manera eficiente a los errores.

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

Guía para la implementación

Los errores continuos en la entrega pueden provocar una reducción de la disponibilidad del servicio y una mala experiencia para los clientes. Para maximizar la tasa de despliegues satisfactorios, implemente controles de seguridad en el proceso de lanzamiento de principio a fin de minimizar los errores de despliegue, con el objetivo de lograr despliegues sin ningún error.

Ejemplo de cliente

AnyCompany Retail tiene la misión de lograr despliegues con un tiempo de inactividad mínimo o nulo, lo que significa que los usuarios no perciban ningún impacto durante los despliegues. Para lograrlo, la empresa ha establecido patrones de despliegue (consulte el siguiente diagrama de flujo de trabajo), como despliegues azul-verde y continuos. Todos los equipos adoptan uno o más de estos patrones en su canalización de CI/CD.

Flujo de trabajo de CodeDeploy para Amazon EC2 Flujo de trabajo de CodeDeploy para Amazon ECS Flujo de trabajo de CodeDeploy para Lambda
Flujo de proceso de despliegue para Amazon EC2
Flujo de proceso de despliegue para Amazon ECS
Flujo de proceso de despliegue para Lambda

Pasos para la implementación

  1. Use un flujo de trabajo de aprobación para iniciar la secuencia de pasos de despliegue de producción, de la promoción a la producción.

  2. Utilice un sistema de despliegue automatizado como AWS CodeDeploy. Entre las opciones de despliegue de AWS CodeDeploy se incluyen despliegues locales para EC2/local y despliegues azul-verde para EC2/local, AWS Lambda y Amazon ECS (consulte el diagrama de flujo de trabajo anterior).

  3. Use despliegues azul-verde para bases de datos como Amazon Aurora y Amazon RDS.

  4. Supervise los despliegues con Amazon CloudWatch, AWS CloudTrail y las notificaciones de eventos de Amazon Simple Notification Service (Amazon SNS).

  5. Realice pruebas automatizadas posteriores al despliegue, incluidas pruebas funcionales, de seguridad, de regresión, de integración y cualquier prueba de carga.

  6. Solucione los problemas de despliegue.

Nivel de esfuerzo para el plan de implementación: Medio

Recursos

Prácticas recomendadas relacionadas:

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: