Strategii de deployment: versiuni, aliasuri și redirecționarea traficului
Aplicații serverless cu AWS Lambda
Claudio Canales
Senior DevOps Engineer
De ce contează strategia de deployment
Detectează bug-urile rapid.
Limitează impactul erorilor.
Recuperează-te repede.
$LATEST vs. versiuni publicate
$LATEST
Se actualizează la fiecare modificare de cod.
Versiuni
Instantanee imuabile.
Ușor de fixat pentru rollback și separarea traficului.
O versiune este un instantaneu imuabil
Tratează versiunile ca artefacte de release.
Fiecare captează codul și configurația.
Odată publicată, nu se mai modifică.
Poți reveni oricând la o stare stabilă.
Aliasurile sunt pointeri stabili
Un pointer stabil.
Apelează aliasul în loc de o versiune.
Schimbă destinația fără a modifica apelantele.
Aliasurile dev și prod
Ideal pentru medii de lucru.
Mută
dev
frecvent.
Promovează în
prod
mutând aliasul.
Redirecționarea traficului cu aliasuri ponderate
Testează în producție în siguranță.
Cea mai mare parte a traficului rămâne pe versiunea curentă.
Un procent mic merge spre versiunea candidat.
Canary pasul 1: 90/10
90% rămâne pe versiunea curentă.
10% testează versiunea candidat cu trafic real.
Urmărește erorile și latența.
Canary pasul 2: 50/50
Dacă cei 10% arată bine, crește ponderea.
50% curent, 50% candidat.
Problemele apar rapid la 50/50.
Monitorizarea este esențială.
Canary pasul 3: 100% nou
Direcționează tot traficul spre noua versiune.
Versiunea veche rămâne disponibilă.
Rollback-ul este simplu.
Modelul mental blue/green
Blue = versiunea stabilă curentă.
Green = versiunea candidat nouă.
Comutarea se face mutând aliasul.
Rutarea ponderată face tranziția graduală.
Rollback = mută aliasul înapoi
Nu este nevoie de redeploy.
Mută aliasul la ultima versiune stabilă.
Recuperare în secunde, nu ore.
Versiunile imuabile și aliasurile stabile funcționează împreună.
Monitorizează în timpul tranziției
Erori și timeout-uri.
Durată și latență de coadă.
Throttling dacă folosești limite.
Oprește sau rulează rollback rapid.
Capcană frecventă: tratarea $LATEST ca prod
Dependența de $LATEST reduce predictibilitatea.
Versiunile și aliasurile arată clar ce rulează.
Rollback-urile sunt sigure.
Ignore
Lista de verificare pentru deploy sigur
Publică o versiune.
Redirecționează traficul gradual cu un alias.
Monitorizează rezultatele.
Menține rollback-ul pregătit la fiecare pas.
Concluzii cheie
Versiunile oferă predictibilitate.
Aliasurile oferă stabilitate.
Rutarea ponderată adaugă siguranță.
Rollback = mută aliasul.
Hai să exersăm!
Aplicații serverless cu AWS Lambda
Preparing Video For Download...