Despliegues canary y lineales

Automatización de despliegues en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Una mala versión, toda la base de usuarios

split

  • Cambio en la lógica de pagos se despliega al 100% del tráfico al instante
  • Aparece un bug en carga real; todos los pagos fallan
  • Un canary al 10% lo habría detectado en cinco minutos
  • Coste de omitir el canary: dinero real perdido
Automatización de despliegues en AWS

¿Qué es un despliegue canary?

canary

  • Envía una pequeña porción de tráfico primero a la nueva versión
  • Observa métricas durante un tiempo de espera fijo
  • Si va bien, mueve el resto de golpe
  • Patrón común: 10% durante 5 minutos y luego 100%
Automatización de despliegues en AWS

¿Qué es un despliegue lineal?

linear

  • Desvía tráfico en incrementos iguales
  • Espera entre cada paso
  • Ejemplo: 10% cada 1 minuto durante 10 minutos
  • Más suave que canary; tarda más en total
Automatización de despliegues en AWS

Canary vs. lineal, lado a lado

  • Canary: una porción y luego todo
  • Lineal: muchos pasos pequeños
  • Canary detecta problemas rápido; lineal sube gradualmente
  • Ambos se pausan si se activa un rollback

traffic

Automatización de despliegues en AWS

Configuraciones de CodeDeploy para Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% durante 5 min, luego 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% por minuto
  • CodeDeployDefault.LambdaAllAtOnce: todo el tráfico de inmediato
  • ECS tiene configuraciones equivalentes con prefijo ECS

label

Automatización de despliegues en AWS

Rollback automático con alarmas de CloudWatch

  • Asocia alarmas de CloudWatch al grupo de despliegue
  • Alarmas comunes: errores, duración, 5xx
  • Si la alarma entra en estado ALARM, el despliegue se detiene
  • CodeDeploy hace rollback a la versión anterior

label

Automatización de despliegues en AWS

Elegir la configuración adecuada

pick

  • Patch rutinario y de bajo riesgo → AllAtOnce
  • Cambio de producción de alto riesgo → Canary
  • Quieres una rampa suave y constante → Linear
  • Acompáñalo siempre de alarmas para rollback automático
Automatización de despliegues en AWS

¡Vamos a practicar!

Automatización de despliegues en AWS

Preparing Video For Download...