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