Deployment in-place e blue/green
Automatizzare i deployment su AWS
Dunieski Otano
Amazon Web Services Solutions Architect
Interruzione alle 2 di notte
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
Perché la strategia di deploy conta
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
Deployment 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
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
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
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
Rollback in CodeDeploy
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
Esercitiamoci!
Automatizzare i deployment su AWS
Preparing Video For Download...