Passa a:
Canary vs Blue Green: come eliminare il downtime

Canary vs Blue Green: come eliminare il downtime

Oggigiorno la disponibilità di un servizio non è più un valore aggiunto, ma un requisito fondamentale. Siamo connessi 24 ore su 24, 7 giorni su 7, e il concetto di “finestra di manutenzione” notturna sta scomparendo o non esiste proprio più. Mentre i tuoi clienti locali dormono, i tuoi partner dall’altra parte del mondo stanno già lavorando con il tuo prodotto. Un solo minuto di offline può tradursi in perdite economiche importanti e in una drastica riduzione della fiducia degli utenti.

È per questo che, nel nostro lavoro quotidiano, cerchiamo di trasformare il rilascio di software da un evento rischioso a un processo banale e invisibile. Per ottenere questa continuità operativa, le due strategie primarie sono quelle che ruotano intorno al Blue Green o al Canary Deployment.

L’importanza di un’architettura Stateless

Prima di analizzare le strategie, dobbiamo fare una premessa fondamentale. Per eliminare il downtime, quella fastidiosa finestra di tempo dove qualcuno agisce fisicamente sui server per aggiornarli, l’applicazione deve essere progettata correttamente. E per correttamente intendiamo un’architettura stateless progettata a regola d’arte. Un’architettura stateless significa essere “senza stato” dove ogni nodo del server può gestire qualsiasi richiesta in modo autonomo e il database gestisce le modifiche in modo non distruttivo (migrazioni di schema compatibili con le versioni precedenti).

Schema logico di un'infrastruttura moderna con load balancer

Blue Green e la ridondanza

Il Blue Green deployment è una strategia di rilascio che utilizza due ambienti di produzione identici, ma separati.

  • Ambiente Blue: è la versione attualmente in produzione, quella che serve il traffico reale;
  • Ambiente Green: è la versione nuova, dove viene distribuito l’aggiornamento;

Mentre l’ambiente Blue continua a gestire gli utenti, il team di ingegneria può testare la nuova versione nell’ambiente Green in totale isolamento. Una volta verificata la stabilità, il Load Balancer reindirizza tutto il traffico verso l’ambiente Green.

Schema logico di un'infrastruttura moderna con blue green deployment

Il vantaggio principale è la sicurezza. Se dopo lo switch si nota un bug critico, è sufficiente riportare il traffico sull’ambiente Blue. È un “paracadute” istantaneo che azzera i rischi di rilasci complessi. Tuttavia, richiede il doppio delle risorse hardware (o cloud), poiché entrambi gli ambienti devono essere pronti a gestire il carico totale.

Canary e il rilascio incrementale

Se il Blue Green è un interruttore ON / OFF, il Canary deployment può essere visto come un potenziometro. Questa tecnica prende il nome dai canarini usati nelle miniere di carbone: se il canarino sopravviveva, l’aria era respirabile per i minatori. In questo scenario, la nuova versione del software viene inizialmente rilasciata solo a un piccolo sottoinsieme di utenti, ad esempio il 5%.

Grafico del rilascio incrementale del traffico nel tempo con canary deployment

Il processo Canary avviene per fasi:

  1. Rilascio Iniziale: una minima parte di traffico viene dirottata sui nuovi server (Canary);
  2. Monitoraggio: qui si analizzano metriche come tempi di risposta, errori 500 e feedback degli utenti;
  3. Rollout Graduale: se i dati sono positivi, la percentuale viene portata al 10%, 25%, 50%… fino al 100%.

È la strategia preferita dai giganti del tech perché permette di testare nuove feature su utenti reali con un rischio estremamente contenuto. Se il “canarino” ha dei problemi, solo una minima frazione di utenti ne risentirà, permettendo al team di correggere il bug prima del rilascio globale.

Quindi, quale rotta seguire?

Nel nostro lavoro aiutiamo i nostri partner a scegliere la strategia in base alle loro necessità specifiche:

CaratteristicaBlue GreenCanary
Tempo di RollbackIstantaneo (Switch del traffico)Veloce (Spegnimento del Canary)
Costo InfrastrutturaElevato (Doppio ambiente)Ottimizzato (Modulare)
ComplessitàModerataAlta (Richiede monitoraggio evoluto)
Test su Utenti RealiNo (Test in isolamento)Sì (Target specifico o percentuale)

Non serve essere una multinazionale per implementare pipeline di CI/CD. Con strumenti come Docker, Kubernetes e i moderni servizi Cloud, anche una startup può ambire allo standard “zero downtime”.

Implementare queste strategie non è solo una scelta tecnica, è una decisione di business che protegge il tuo fatturato e la tua reputazione. La domanda non è più “se” aggiornare, ma “come” farlo senza che nessuno se ne accorga.