Deployment canary e linear

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Un rilascio sbagliato, tutti gli utenti

split

  • Modifica alla logica dei pagamenti rilasciata subito al 100% del traffico
  • Con carico reale emerge un bug: ogni checkout fallisce
  • Un canary al 10% l'avrebbe rilevato in 5 minuti
  • Saltare il canary costa: soldi veri persi
Automatizzare i deployment su AWS

Cos'è un deployment canary

canary

  • Invia una piccola quota di traffico prima alla nuova versione
  • Monitora le metriche per un tempo di attesa fisso
  • Se è ok, sposta il resto tutto insieme
  • Schema tipico: 10% per 5 minuti, poi 100%
Automatizzare i deployment su AWS

Cos'è un deployment lineare

linear

  • Sposta il traffico in incrementi uguali
  • Attendi tra uno step e l'altro
  • Esempio: 10% ogni 1 minuto per 10 minuti
  • Più fluido del canary; richiede più tempo complessivo
Automatizzare i deployment su AWS

Canary vs. lineare, a confronto

  • Canary: una quota, poi tutto
  • Lineare: molti piccoli step
  • Il canary intercetta i problemi in fretta; il lineare sale gradualmente
  • Entrambi si fermano se viene attivato un rollback

traffic

Automatizzare i deployment su AWS

Configurazioni CodeDeploy per Lambda

  • CodeDeployDefault.LambdaCanary10Percent5Minutes: 10% per 5 min, poi 100%
  • CodeDeployDefault.LambdaLinear10PercentEvery1Minute: +10% al minuto
  • CodeDeployDefault.LambdaAllAtOnce: tutto il traffico subito
  • ECS ha configurazioni equivalenti con prefisso ECS

label

Automatizzare i deployment su AWS

Rollback automatico con CloudWatch alarms

  • Collega CloudWatch alarms al gruppo di deployment
  • Allarmi comuni: errors, duration, 5xx
  • Se un allarme entra in stato ALARM, il deployment si ferma
  • CodeDeploy esegue il rollback alla versione precedente

label

Automatizzare i deployment su AWS

Scegliere la configurazione giusta

pick

  • Patch routinaria a basso rischio → AllAtOnce
  • Modifica critica in produzione → Canary
  • Vuoi una salita graduale e stabile → Lineare
  • Abbina sempre allarmi per l'auto-rollback
Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...