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:
- Esiste un ambiente "blu" attivo che gestisce tutto il traffico.
- La nuova versione dell'applicazione viene distribuita in un ambiente "verde" completamente identico ma inattivo.
- Dopo test riusciti nell'ambiente "verde", il traffico viene reindirizzato su di esso.
- 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"