Estrategias de despliegue de AWS CodeDeploy - Despliegue blue/green en EC2, ECS y Lambda
Gestione estrategias de despliegue de forma unificada para las 3 plataformas EC2, ECS y Lambda. Presentamos el despliegue blue/green en ECS y el rollback automático vinculado con alarmas de CloudWatch.
Plataformas compatibles y tipos de despliegue de CodeDeploy
CodeDeploy es un servicio de despliegue compatible con 3 plataformas: EC2/On-Premises, ECS y Lambda. Para EC2/On-Premises puede elegir entre despliegue in-place (actualización secuencial de instancias existentes) y despliegue blue/green (crear un nuevo grupo de instancias y cambiar). Para ECS solo soporta despliegue blue/green, lanzando un nuevo conjunto de tareas y cambiando los grupos de destino. Para Lambda soporta despliegue de cambio de tráfico, cambiando gradualmente el tráfico de la versión anterior a la nueva versión.
Diseño de despliegue blue/green en ECS
En el despliegue blue/green de ECS, se configuran 2 grupos de destino (producción y prueba) en el ALB. Al iniciar el despliegue, se lanza un nuevo conjunto de tareas (Green) y se registra en el grupo de destino de prueba. Se verifica el funcionamiento del entorno Green a través del puerto del listener de prueba, y si no hay problemas, se cambia el tráfico del listener de producción a Green. Después del cambio, el antiguo conjunto de tareas (Blue) se mantiene durante un período especificado (hasta 48 horas), permitiendo un rollback inmediato si se detectan problemas. La configuración de despliegue controla la velocidad de cambio de tráfico, con opciones como cambio inmediato (AllAtOnce), cambio gradual en 10 minutos (Linear10PercentEvery1Minutes) y cambio canario (Canary10Percent5Minutes).
Rollback automático e integración con alarmas
El rollback automático de CodeDeploy funciona con 2 disparadores: fallo de despliegue y activación de alarma de CloudWatch. La integración con alarmas de CloudWatch monitorea la tasa de error después del despliegue (proporción de respuestas 5xx), latencia (tiempo de respuesta p99) y métricas de negocio (tasa de éxito de pedidos, etc.), y realiza automáticamente un rollback a la versión anterior cuando se supera un umbral. El cambio de tráfico de Lambda permite un rollback instantáneo si se detectan errores durante el período de cambio gradual. Los hooks de ciclo de vida de AppSpec permiten ejecutar pruebas de integración y verificaciones de salud en cada etapa del despliegue, deteniendo el despliegue si las pruebas fallan. Para aprender sobre estrategias de despliegue y DevOps, consulte libros en Amazon.
Precios de CodeDeploy
CodeDeploy es gratuito para todos los despliegues en EC2, ECS y Lambda. Los costos de cómputo por el período en que se ejecutan temporalmente el doble de recursos durante el despliegue blue/green sí se incurren, pero no hay cargos adicionales por CodeDeploy en sí. En el despliegue blue/green de ECS, tanto las tareas Blue como Green se ejecutan durante el período desde el lanzamiento del conjunto de tareas Green hasta el cambio de tráfico, por lo que se incurren cargos de Fargate por ese período. Minimice este período configurando apropiadamente el tiempo de espera de terminación.
Resumen
CodeDeploy es un servicio que gestiona de forma unificada despliegues seguros en EC2, ECS y Lambda. Minimiza el riesgo en entornos de producción con despliegue blue/green y cambio de tráfico, y logra rollback automático ante problemas mediante la integración con alarmas de CloudWatch. Al incorporar pruebas en el proceso de despliegue con hooks de ciclo de vida de AppSpec, puede construir automatización de despliegue con calidad garantizada.