Sobes.tech
Middle

Cos'è il deployment Blue-Green?

sobes.tech AI

Risposta dell'AI

Il deployment Blue-Green è una strategia di rilascio di nuove funzionalità con un tempo di inattività minimo, basata sul mantenimento di due ambienti identici: "blu" (versione attuale in funzione) e "verde" (nuova versione).

Algoritmo:

  1. Esiste un ambiente "blu" attivo che gestisce tutto il traffico.
  2. La nuova versione dell'applicazione viene distribuita in un ambiente "verde" completamente identico ma inattivo.
  3. Dopo test riusciti nell'ambiente "verde", il traffico viene reindirizzato su di esso.
  4. L'ambiente "blu" viene mantenuto per un rapido rollback o può essere usato per future distribuzioni.

Vantaggi principali:

  • Tempo di inattività minimo: La commutazione del traffico è quasi istantanea.
  • Rollback semplice: In caso di problemi con la nuova versione, il traffico può essere facilmente reindirizzato indietro all'ambiente "blu".
  • Rischio ridotto: La nuova versione viene testata in un ambiente isolato prima di cambiare il traffico.

Svantaggi:

  • Risorse doppie: Sono necessari risorse per mantenere due ambienti completi.
  • Gestione dello stato: Può essere difficile gestire lo stato dell'applicazione se utilizza un database con cambiamenti costanti.

Esempio di cambio traffico con un bilanciatore di carico:

// Configurazione del bilanciatore di carico (semplificata)
{
  "listeners": [
    {
      "port": 80,
      "protocol": "HTTP",
      "default_actions": [
        {
          "type": "forward",
          "target_group_arn": "arn:aws:elasticloadbalancing:..." // ARN del gruppo di istanze dell'ambiente "blu"
        }
      ]
    }
  ]
}
# Comando per cambiare traffico all'ambiente "verde"
# (esempio per AWS CLI, assumendo che l'ARN del nuovo gruppo target sia disponibile)
aws elbv2 modify-listener --listener-arn "arn:aws:elasticloadbalancing:..." --default-actions Type=forward,TargetGroupArn="arn:aws:elasticloadbalancing:..." // ARN del gruppo di istanze dell'ambiente "verde"