Strategie di deploy: versioni, alias e shift del traffico

Applicazioni serverless con AWS Lambda

Claudio Canales

Senior DevOps Engineer

Perché la strategia di deploy conta

  • Trova bug in fretta.
  • Limita l'impatto.
  • Ripristina velocemente.

Deploy rischioso vs sicuro

Applicazioni serverless con AWS Lambda

$LATEST vs versioni pubblicate

$LATEST

  • Cambia a ogni aggiornamento del codice.

Versioni

  • Snapshot immutabili.
  • Facili da fissare per rollback e split del traffico.

Latest vs versioni

Applicazioni serverless con AWS Lambda

Una versione è uno snapshot immutabile

  • Tratta le versioni come artifact di release.
  • Ognuna include codice e configurazione.
  • Una volta pubblicata, non cambia.
  • Puoi sempre tornare a uno stato stabile noto.

Snapshot di versione immutabile

Applicazioni serverless con AWS Lambda

Gli alias sono puntatori stabili

  • Un puntatore stabile.
  • Chiama l'alias invece della versione.
  • Aggiorna la destinazione senza toccare i caller.

Alias che punta a una versione

Applicazioni serverless con AWS Lambda

Alias dev e prod

  • Ottimi per ambienti.
  • Sposta spesso dev.
  • Promuovi a prod muovendo l'alias.

Mappatura alias dev e prod

Applicazioni serverless con AWS Lambda

Shift del traffico con alias pesati

  • Testa in produzione in sicurezza.
  • La maggior parte del traffico resta sulla versione attuale.
  • Una piccola percentuale va alla candidata.

Instradamento con alias pesati: concetto

Applicazioni serverless con AWS Lambda

Canary passo 1: 90/10

  • 90% resta sulla versione attuale.
  • 10% prova la candidata sotto carico reale.
  • Monitora errori e latenza.

Canary split 90/10

Applicazioni serverless con AWS Lambda

Canary passo 2: 50/50

  • Se il 10% va bene, aumenta il peso.
  • 50% attuale, 50% candidata.
  • A 50/50 i problemi emergono subito.
  • Il monitoraggio è cruciale.

Canary split 50/50

Applicazioni serverless con AWS Lambda

Canary passo 3: 100% nuova

  • Instrada tutto il traffico sulla nuova versione.
  • Quella vecchia resta disponibile.
  • Rollback semplice.

Canary 100% nuova

Applicazioni serverless con AWS Lambda

Modello mentale blue/green

  • Blu = versione stabile attuale.
  • Verde = nuova candidata.
  • Cambia spostando l'alias.
  • L'instradamento pesato rende il passaggio graduale.

Switch blue/green

Applicazioni serverless con AWS Lambda

Rollback = riportare indietro l'alias

  • Nessun redeploy richiesto.
  • Sposta l'alias all'ultima versione stabile.
  • Recupero in secondi, non ore.
  • Versioni immutabili e alias stabili lavorano insieme.

Rollback spostando l'alias

Applicazioni serverless con AWS Lambda

Monitora durante lo shift

  • Errori e timeout.
  • Durata e tail latency.
  • Throttle se usi limiti.
  • Metti in pausa o fai rollback subito.

Metriche di monitoraggio del deploy

Applicazioni serverless con AWS Lambda

Errore comune: trattare $LATEST come prod

  • Affidarsi a $LATEST riduce la prevedibilità.
  • Versioni e alias chiariscono cosa gira.
  • I rollback sono sicuri.

Avviso su drift di Latest

Applicazioni serverless con AWS Lambda

Ignore

Applicazioni serverless con AWS Lambda

Checklist per deploy sicuro

  • Pubblica una versione.
  • Sposta il traffico gradualmente con un alias.
  • Monitora i risultati.
  • Tieni pronto il rollback a ogni passo.

Checklist per deploy sicuro

Applicazioni serverless con AWS Lambda

Punti chiave

  • Le versioni danno prevedibilità.
  • Gli alias danno stabilità.
  • L'instradamento pesato aggiunge sicurezza.
  • Rollback = spostare l'alias.

Punti chiave del deploy

Applicazioni serverless con AWS Lambda

Passons à la pratique !

Applicazioni serverless con AWS Lambda

Preparing Video For Download...