Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Distribuzioni canary di Amazon ECS
Le implementazioni Canary indirizzano innanzitutto una piccola percentuale di traffico verso la nuova revisione per i test iniziali, quindi trasferiscono tutto il traffico rimanente contemporaneamente una volta completata con successo la fase canaria. Con le implementazioni di Amazon ECS canary, convalida le nuove revisioni dei servizi con traffico utente reale, riducendo al minimo l'esposizione al rischio. Questo approccio fornisce un modo controllato per implementare le modifiche con la possibilità di monitorare le prestazioni e ripristinarle rapidamente se vengono rilevati problemi.
Risorse coinvolte in un'implementazione di Canary
Le seguenti sono le risorse coinvolte nelle implementazioni di Amazon ECS canary:
-
Spostamento del traffico: il processo utilizzato da Amazon ECS per spostare il traffico di produzione. Per le implementazioni di Amazon ECS canary, il traffico viene spostato in due fasi: prima verso la percentuale canaria, poi per completare la distribuzione.
-
Percentuale Canary: la percentuale di traffico indirizzato alla nuova versione durante il periodo di valutazione.
-
Tempo di attesa delle Isole Canarie: il tempo necessario per monitorare la versione Canary prima di procedere con la distribuzione completa.
-
Tempo di attesa della distribuzione: il tempo, in minuti, che Amazon ECS attende dopo aver trasferito tutto il traffico di produzione verso la nuova revisione del servizio, prima di terminare la vecchia revisione del servizio. Questa è la durata in cui le revisioni del servizio blu e verde vengono eseguite contemporaneamente dopo lo spostamento del traffico di produzione.
-
Fasi del ciclo di vita: una serie di eventi nell'operazione di implementazione, ad esempio “dopo lo spostamento del traffico di produzione”.
-
Lifecycle hook: una funzione Lambda o un punto di pausa in una fase specifica del ciclo di vita. Gli hook Lambda richiamano le funzioni Lambda che hai definito per eseguire codice personalizzato. Gli hook di pausa mettono in pausa la distribuzione e attendono la chiamata per procedere.
ContinueServiceDeployment -
Gruppo di destinazione: una risorsa di bilanciamento del carico elastico utilizzata per indirizzare le richieste verso una o più destinazioni registrate (ad esempio, istanze EC2). Quando si crea un listener, si specifica un gruppo di destinazione per l'operazione predefinita. Il traffico viene inoltrato al gruppo di destinazione specificato nella regola del listener.
-
Listener: una risorsa di bilanciamento del carico elastico che controlla le richieste di connessione utilizzando il protocollo e la porta configurata. Le regole definite per un listener determinano il modo in cui Amazon ECS instrada le richieste alle destinazioni registrate.
-
Regola: una risorsa di bilanciamento del carico elastico associata a un listener. Una regola definisce il modo in cui le richieste vengono instradate e consiste in un'azione, una condizione e una priorità.
Considerazioni
Si tenga in considerazione quanto segue quando si sceglie un tipo di implementazione:
-
Utilizzo delle risorse: le implementazioni Canary eseguono simultaneamente sia i set di attività originali che quelli di Canary durante il periodo di valutazione, aumentando l'utilizzo delle risorse.
-
Volume di traffico: assicurati che la percentuale canaria generi traffico sufficiente per una convalida significativa della nuova versione.
-
Monitoraggio della complessità: le implementazioni di Canary richiedono il monitoraggio e il confronto simultaneo delle metriche tra due diverse versioni.
-
Velocità di rollback: le implementazioni Canary consentono un rapido rollback riportando il traffico al set di attività originale.
-
Riduzione del rischio: le implementazioni Canary forniscono un'eccellente mitigazione del rischio limitando l'esposizione a una piccola percentuale di utenti.
-
Durata dell'implementazione: le implementazioni Canary includono periodi di valutazione che prolungano il tempo complessivo di implementazione ma offrono opportunità di convalida.
Come funzionano le implementazioni Canary
Il processo di distribuzione di Amazon ECS Canary segue un approccio strutturato con sei fasi distinte che garantiscono aggiornamenti delle applicazioni sicuri e affidabili. Ogni fase ha uno scopo specifico nella convalida e nella transizione dell'applicazione dalla versione attuale (blu) alla nuova versione (verde).
-
Fase di preparazione: creare l'ambiente verde insieme a quello blu esistente.
-
Fase di implementazione: implementazione della nuova revisione del servizio nell'ambiente verde. Amazon ECS avvia nuove attività utilizzando la revisione aggiornata del servizio mentre l'ambiente blu continua a servire il traffico di produzione.
-
Fase di test: convalida dell'ambiente verde utilizzando l'instradamento del traffico di test. L'Application Load Balancer indirizza le richieste di test verso l'ambiente verde mentre il traffico di produzione rimane sul blu.
-
Fase di spostamento del traffico nelle Isole Canarie: durante la fase delle Canarie viene trasferita la percentuale di traffico configurata verso la nuova revisione del servizio ecologico, seguita dallo spostamento del 100,0% del traffico verso la revisione del servizio ecologico
-
Fase di monitoraggio: monitoraggio dello stato delle applicazioni, delle metriche delle prestazioni e degli stati di allarme durante il periodo di tempo di incorporamento. Quando vengono rilevati problemi, viene avviata un'operazione di rollback.
-
Fase di completamento: finalizza l'implementazione chiudendo l'ambiente blu.
La fase di spostamento del traffico nelle Canarie segue questi passaggi:
-
Iniziale: l'implementazione inizia con il 100% del traffico indirizzato alla revisione blu (attuale) del servizio. La revisione verde (nuova) del servizio riceve inizialmente traffico di prova ma nessun traffico di produzione.
-
Spostamento del traffico nelle Canarie: si tratta di una strategia di spostamento del traffico in due fasi.
-
Fase 1:10,0% verso il verde, 90,0% verso il blu
-
Fase 2: dal 100,0% al verde, dallo 0,0% al blu
-
-
Tempo di cottura delle Canarie: attende una durata configurabile (canary bake time) dopo lo spostamento del traffico nelle Isole Canarie per consentire il monitoraggio e la convalida delle prestazioni della nuova revisione in base all'aumento del carico di traffico.
-
Lifecycle hook: le funzioni Lambda opzionali o gli hook di pausa possono essere configurati in varie fasi del ciclo di vita durante l'implementazione per eseguire convalida, monitoraggio o logica personalizzata automatici. Gli hook sono configurati o vengono richiamati in ogni fase del passaggio del traffico di produzione
PRODUCTION_TRAFFIC_SHIFT.PRE_PRODUCTION_TRAFFIC_SHIFT
Fasi del ciclo di vita dell'implementazione
Il processo di implementazione di Canary procede attraverso fasi distinte del ciclo di vita, ognuna con responsabilità e punti di verifica di convalida specifici. La comprensione di queste fasi consente di monitorare l'avanzamento dell'implementazione e risolvere i problemi in modo efficace.
Ogni fase del ciclo di vita può durare fino a 24 ore e inoltre ogni fase di spostamento del traffico in PRODUCTION_TRAFFIC_SHIFT può durare fino a 24 ore. Si consiglia di mantenere il valore al di sotto della soglia delle 24 ore. Questo perché i processi asincroni richiedono tempo per attivare gli hook. Il sistema scade, non riesce a implementare e quindi avvia un rollback dopo che una fase raggiunge le 24 ore.
CloudFormation le implementazioni sono soggette a restrizioni di timeout aggiuntive. Sebbene il limite delle fasi di 24 ore rimanga in vigore, CloudFormation impone un limite di 36 ore all'intera implementazione. CloudFormation la distribuzione non viene completata e quindi avvia un rollback se il processo non viene completato entro 36 ore.
Per i pause hook, puoi configurare il timeout fino a 20.160 minuti (14 giorni). Il timeout complessivo di implementazione è di 30 giorni.
| Fasi del ciclo di vita | Description | Supporto per Lifecycle Hook |
|---|---|---|
| RECONCILE_SERVICE | Questa fase si verifica solo quando si avvia una nuova implementazione del servizio con più di 1 revisione del servizio in uno stato ACTIVE. | Sì |
| PRE_SCALE_UP | La revisione del servizio verde non è stata avviata. La revisione del servizio blu gestisce il 100% del traffico di produzione. Non è previsto alcun traffico di test. | Sì |
| SCALE_UP | Il momento in cui la revisione del servizio verde aumenta fino al 100% e avvia nuove attività. La revisione del servizio verde non serve alcun traffico a questo punto. | No |
| POST_SCALE_UP | La revisione del servizio verde è stata avviata. La revisione del servizio blu gestisce il 100% del traffico di produzione. Non è previsto alcun traffico di test. | Sì |
| TEST_TRAFFIC_SHIFT | Le revisioni del servizio blu e verde sono in esecuzione. La revisione del servizio blu gestisce il 100% del traffico di produzione. La revisione del servizio verde migra dallo 0% al 100% del traffico di test. | Sì (solo Lambda) |
| POST_TEST_TRAFFIC_SHIFT | Lo spostamento del traffico di test è completo. La revisione del servizio verde gestisce il 100% del traffico di test. | Sì |
| PRE_PRODUCTION_TRAFFIC_SHIFT | Si verifica prima di ogni fase di spostamento del traffico di produzione. Per le Canarie, ciò si verifica prima del cambio di traffico delle Canarie e prima del passaggio di traffico rimanente. | Sì |
| PRODUCTION_TRAFFIC_SHIFT | Il traffico di produzione delle Canarie viene indirizzato alla revisione verde e il lifecycle hook viene richiamato con un timeout di 24 ore. La seconda fase sposta il traffico di produzione rimanente verso la revisione ecologica. | Sì (solo Lambda) |
| POST_PRODUCTION_TRAFFIC_SHIFT | Lo spostamento del traffico di produzione è completo. | Sì |
| BAKE_TIME | La durata in cui le revisioni del servizio blu e verde vengono eseguite contemporaneamente. | No |
| CLEAN_UP | La revisione del servizio blu è stata completamente ridotta a 0 attività in esecuzione. La revisione del servizio verde è ora la revisione del servizio di produzione dopo questa fase. | No |
Parametri di configurazione
Le implementazioni Canary richiedono i seguenti parametri di configurazione:
-
Percentuale canaria: la percentuale di traffico da indirizzare verso la nuova revisione del servizio durante la fase canaria. Ciò consente di eseguire i test con un sottoinsieme controllato del traffico di produzione.
-
Tempo di attesa canario: il tempo di attesa durante la fase canaria prima di trasferire il traffico rimanente alla nuova revisione del servizio. Ciò fornisce il tempo necessario per monitorare e convalidare la nuova versione.
Gestione del traffico
Le implementazioni Canary utilizzano gruppi target di load balancer per gestire la distribuzione del traffico:
-
Gruppo target originale: contiene attività della versione stabile corrente e riceve la maggior parte del traffico.
-
Gruppo target delle Canarie: contiene le attività della nuova versione e riceve una piccola percentuale di traffico per i test.
-
Routing ponderato: il load balancer utilizza regole di routing ponderate per distribuire il traffico tra i gruppi target in base alla percentuale canaria configurata.
Monitoraggio e convalida
Le implementazioni Canary efficaci si basano su un monitoraggio completo:
-
Controlli dello stato di salute: entrambi i set di attività devono superare i controlli sanitari prima di ricevere traffico.
-
Confronto delle metriche: confronta gli indicatori chiave di prestazione tra la versione originale e quella canaria, come il tempo di risposta, il tasso di errore e la velocità effettiva.
-
Rollback automatico: configura gli CloudWatch allarmi per attivare automaticamente il rollback se la versione canaria mostra prestazioni ridotte.
-
Convalida manuale: utilizza il periodo di valutazione per esaminare manualmente registri, metriche e feedback degli utenti prima di procedere.
Procedure consigliate per le implementazioni di Canary
Segui queste best practice per garantire il successo delle implementazioni Canary con i servizi.
Scegli le percentuali di traffico appropriate
Quando selezioni le percentuali di traffico delle Canarie, considera questi fattori:
-
Inizia in piccolo: inizia con il 5-10% del traffico per ridurre al minimo l'impatto in caso di problemi.
-
Considerate la criticità delle applicazioni: utilizzate percentuali inferiori per le applicazioni mission-critical e percentuali maggiori per i servizi meno critici.
-
Considera il volume di traffico: assicurati che la percentuale canaria generi traffico sufficiente per una convalida significativa.
Stabilisci periodi di valutazione appropriati
Configura i periodi di valutazione in base a queste considerazioni:
-
Concedi un tempo sufficiente: imposta periodi di valutazione sufficientemente lunghi da acquisire dati significativi sulle prestazioni, in genere 10-30 minuti.
-
Considera i modelli di traffico: tieni conto dei modelli di traffico dell'applicazione e degli orari di picco di utilizzo.
-
Bilancia velocità e sicurezza: periodi di valutazione più lunghi forniscono più dati ma rallentano la velocità di implementazione.
Implementa un monitoraggio completo
Imposta il monitoraggio per tenere traccia delle prestazioni di implementazione di Canary:
-
Metriche chiave: monitora i tempi di risposta, il tasso di errore, la produttività e l'utilizzo delle risorse per entrambi i set di attività.
-
Alarm-based rollback: configura gli CloudWatch allarmi per attivare automaticamente il rollback quando le metriche superano le soglie.
-
Analisi comparativa: configura dashboard per confrontare fianco a fianco le metriche tra la versione originale e quella canaria.
-
Metriche aziendali: includi metriche specifiche per l'azienda, come i tassi di conversione o il coinvolgimento degli utenti, oltre alle metriche tecniche.
Pianifica le strategie di rollback
Preparati a potenziali scenari di rollback con queste strategie:
-
Rollback automatico: configura i trigger di rollback automatici in base ai controlli di integrità e alle metriche delle prestazioni.
-
Procedure di rollback manuale: documenta procedure chiare per il rollback manuale quando i trigger automatici non rilevano tutti i problemi.
-
Test di rollback: verifica regolarmente le procedure di rollback per assicurarti che funzionino correttamente quando necessario.
Effettua una convalida approfondita prima dell'implementazione
Garantisci una convalida completa prima di procedere con le implementazioni di Canary:
-
Pre-deployment test: testa accuratamente le modifiche negli ambienti di staging prima dell'implementazione di Canary.
-
Configurazione del controllo dello stato: assicurati che i controlli sullo stato riflettano accuratamente la disponibilità e la funzionalità delle applicazioni.
-
Convalida delle dipendenze: verifica che le nuove versioni siano compatibili con i servizi downstream e upstream.
-
Coerenza dei dati: assicurati che le modifiche allo schema del database e le migrazioni dei dati siano compatibili con le versioni precedenti.
Coordina il coinvolgimento del team
Garantisci un coordinamento efficace del team durante gli schieramenti di Canary:
-
Finestre di distribuzione: pianifica le implementazioni di Canary durante l'orario lavorativo, quando i team sono disponibili per monitorare e rispondere.
-
Canali di comunicazione: stabilisci canali di comunicazione chiari per lo stato dell'implementazione e l'escalation dei problemi.
-
Assegnazione dei ruoli: definisci ruoli e responsabilità per il monitoraggio, il processo decisionale e l'esecuzione del rollback.