Deployment in-place e blue/green

Automatizzare i deployment su AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Interruzione alle 2 di notte

2.00

  • Deploy tutto-in-una-volta va storto
  • Ogni server esegue la versione difettosa
  • I clienti vedono errori per un'ora
  • Il rollback richiede un nuovo deploy completo
Automatizzare i deployment su AWS

Perché la strategia di deploy conta

2.1

  • Una release sbagliata può mandare il servizio down
  • Tutto-in-una-volta = più veloce, più rischioso
  • Rollout graduale = più lento, più sicuro
  • La strategia limita il blast radius in caso di errore
Automatizzare i deployment su AWS

Deployment in-place

in-place

  • Deploy sulle stesse istanze che servono traffico
  • Un batch alla volta: metà e metà; o una per volta
  • Health check di ogni batch prima di proseguire
  • Economico; nessuna infrastruttura extra
Automatizzare i deployment su AWS

Deployment blue/green

  • Blue = fleet di produzione attuale
  • Green = fleet nuova con la nuova versione
  • Il load balancer sposta il traffico da blue a green
  • La vecchia fleet resta disponibile per un rollback rapido

blue-green

Automatizzare i deployment su AWS

Lambda ed ECS sono blue/green per progettazione

  • Lambda: traffico spostato via alias version pointer
  • ECS: traffico spostato via replacement task set
  • Non serve duplicare la fleet in stile EC2
  • Devi comunque scegliere una configurazione di deploy

ecs

Automatizzare i deployment su AWS

Scegliere tra in-place e blue/green

  • Budget ristretto, patch a basso rischio → in-place
  • Serve zero downtime o rollback istantaneo → blue/green
  • Server legacy singolo → in-place è l'unica opzione
  • Lambda o ECS → blue/green è integrato

decide

Automatizzare i deployment su AWS

Rollback in CodeDeploy

rollback

  • Rollback = ridistribuire la precedente revisione riuscita
  • Attivalo automaticamente su errore di deploy
  • Attivalo automaticamente su allarme CloudWatch
  • Rollback blue/green: riporta indietro il load balancer
Automatizzare i deployment su AWS

Esercitiamoci!

Automatizzare i deployment su AWS

Preparing Video For Download...