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.

Deploy riscant vs. deploy sigur

Aplicații serverless cu AWS Lambda

$LATEST vs. versiuni publicate

$LATEST

  • Se actualizează la fiecare modificare de cod.

Versiuni

  • Instantanee imuabile.
  • Ușor de fixat pentru rollback și separarea traficului.

Latest vs. versiuni

Aplicații serverless cu AWS Lambda

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ă.

Instantaneu imuabil al versiunii

Aplicații serverless cu AWS Lambda

Aliasurile sunt pointeri stabili

  • Un pointer stabil.
  • Apelează aliasul în loc de o versiune.
  • Schimbă destinația fără a modifica apelantele.

Aliasul indică spre o versiune

Aplicații serverless cu AWS Lambda

Aliasurile dev și prod

  • Ideal pentru medii de lucru.
  • Mută dev frecvent.
  • Promovează în prod mutând aliasul.

Maparea aliasurilor dev și prod

Aplicații serverless cu AWS Lambda

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.

Conceptul de rutare cu alias ponderat

Aplicații serverless cu AWS Lambda

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.

Împărțire canary 90/10

Aplicații serverless cu AWS Lambda

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ă.

Împărțire canary 50/50

Aplicații serverless cu AWS Lambda

Canary pasul 3: 100% nou

  • Direcționează tot traficul spre noua versiune.
  • Versiunea veche rămâne disponibilă.
  • Rollback-ul este simplu.

Canary 100% nou

Aplicații serverless cu AWS Lambda

Modelul mental blue/green

  • Blue = versiunea stabilă curentă.
  • Green = versiunea candidat nouă.
  • Comutarea se face mutând aliasul.
  • Rutarea ponderată face tranziția graduală.

Comutare blue/green

Aplicații serverless cu AWS Lambda

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ă.

Rollback prin mutarea aliasului

Aplicații serverless cu AWS Lambda

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.

Metrici de monitorizare la deployment

Aplicații serverless cu AWS Lambda

Capcană frecventă: tratarea $LATEST ca prod

  • Dependența de $LATEST reduce predictibilitatea.
  • Versiunile și aliasurile arată clar ce rulează.
  • Rollback-urile sunt sigure.

Avertisment privind deriva $LATEST

Aplicații serverless cu AWS Lambda

Ignore

Aplicații serverless cu AWS Lambda

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.

Diagrama listei de verificare pentru deploy sigur

Aplicații serverless cu AWS Lambda

Concluzii cheie

  • Versiunile oferă predictibilitate.
  • Aliasurile oferă stabilitate.
  • Rutarea ponderată adaugă siguranță.
  • Rollback = mută aliasul.

Concluzii cheie despre deployment

Aplicații serverless cu AWS Lambda

Hai să exersăm!

Aplicații serverless cu AWS Lambda

Preparing Video For Download...