Estrategias de Implementación y Gestión de Versiones

Estrategias de implementación Blue/Green, Canary, Rolling y distribución de tráfico con Lambda Alias.

Despues de desarrollar software, necesitas desplegarlo para entregarlo a los usuarios. Pero desplegar una nueva version en un servicio ya utilizado por muchas personas es mas complicado de lo que parece. El examen AWS DVA-C02 pregunta que estrategia de despliegue elegir en estas situaciones.

 

Comparando Estrategias de Despliegue

Una estrategia de despliegue es un metodo sobre como aplicar una nueva version de software a los servidores existentes. Comparemos las cuatro estrategias principales.

All-at-once

Instala la nueva version en todos los servidores simultaneamente. Se completa mas rapido pero el servicio puede tener downtime durante el despliegue. Si algo sale mal, debes reimplantar la version anterior.

Rolling

Despliega en grupos pequenos de servidores en secuencia. Durante el despliegue, algunos servidores ejecutan la version antigua mientras otros ejecutan la nueva.

Blue/Green

Mantiene el entorno existente (Blue) en funcionamiento mientras construye un entorno completamente nuevo (Green). Una vez listo, todo el trafico se cambia a Green de golpe. Si surgen problemas, puedes volver instantaneamente a Blue. Es el enfoque mas seguro, pero ejecutar dos entornos completos duplica el costo.

Canary

Solo una pequena porcion del trafico (por ejemplo, 10%) se envia primero a la nueva version. Si no aparecen problemas, el porcentaje se aumenta gradualmente hasta llegar al 100%.

!4 estrategias de despliegue: All-at-once, Rolling, Blue/Green, Canary

Estrategias de Despliegue en Lambda

Versions y Aliases de Lambda

Version: Snapshot inmutable de la funcion Lambda. $LATEST = estado mas reciente. Alias: Etiqueta con nombre que apunta a una version especifica (ej: "prod", "dev").

Distribucion de trafico con Aliases

Puedes conectar dos versiones a un unico alias con pesos de trafico.

Ejemplo: alias prod -> version 1 (90%) + version 2 (10%) = despliegue canario.

Integracion con AWS CodeDeploy: Canary10Percent5Minutes: 10% durante 5 minutos, luego 100% Linear10PercentEvery1Minute: +10% cada minuto AllAtOnce: 100% inmediatamente

 

Rollback

Lambda: Cambia el alias a la version anterior (casi instantaneo) ECS: Actualiza a Task Definition anterior EC2: Rollback via CodeDeploy

 

Puntos Clave del Examen

"Nuevo entorno, cambio de trafico, rollback instantaneo" -- Blue/Green

"Prueba con poco trafico, expansion gradual" -- Canary

"Despliegue en lotes secuenciales" -- Rolling

"Nombrar version Lambda" -- Lambda Alias

"Dividir trafico Lambda entre dos versiones" -- Alias con pesos

"10% durante 5 minutos luego todo" -- Canary10Percent5Minutes

"Aumentar 10% cada minuto" -- Linear10PercentEvery1Minute

"100% inmediatamente" -- AllAtOnce

Blue/Green es la mas segura pero duplica el costo

Volver a la lista del blog