Risorse Service Connect per le implementazioni blu/verdi di Amazon ECS - Amazon Elastic Container Service

Risorse Service Connect per le implementazioni blu/verdi di Amazon ECS

Quando si utilizza Service Connect con implementazioni blu/verdi, è necessario configurare componenti specifici per consentire il corretto instradamento del traffico tra le revisioni del servizio blu e verde. Questa sezione spiega i componenti richiesti e la loro configurazione.

Panoramica dell'architettura

Service Connect sviluppa funzionalità di rilevamento servizi e mesh di servizi tramite un proxy sidecar gestito che viene inserito automaticamente nelle attività di Amazon ECS. Questi proxy gestiscono le decisioni di instradamento, i nuovi tentativi e la raccolta delle metriche, mentre AWS Cloud Map fornisce il backend del registro dei servizi. Quando si implementa un servizio con Service Connect abilitato, il servizio si registra in AWS Cloud Map e i servizi client lo rilevano tramite il namespace.

In un'implementazione standard di Service Connect, i servizi client si connettono ai nomi di servizio logici e il proxy sidecar gestisce l'instradamento verso le effettive istanze di servizio. Con le implementazioni blu/verdi, questo modello viene esteso per includere l'instradamento del traffico di test attraverso la configurazione testTrafficRules.

Durante un'implementazione blu/verde, i seguenti componenti chiave interagiscono tra loro:

  • Proxy di Service Connect: tutto il traffico tra i servizi passa attraverso il proxy di Service Connect, che prende decisioni di instradamento in base alla configurazione.

  • Registrazione di AWS Cloud Map: sia le implementazioni blu che quelle verdi vengono registrate con AWS Cloud Map, ma l'implementazione verde viene inizialmente registrata come endpoint di “test”.

  • Test dell'instradamento del traffico: la testTrafficRules nella configurazione di Service Connect determina come identificare e instradare il traffico di test verso l'implementazione verde. Ciò viene ottenuto tramite l'instradamento basato sulle intestazioni, in cui intestazioni HTTP specifiche nelle richieste indirizzano il traffico verso la revisione di test. Per impostazione predefinita, Service Connect riconosce l'intestazione x-amzn-ecs-blue-green-test per i protocolli basati su HTTP quando non vengono specificate regole personalizzate.

  • Configurazione del client: tutti i client nel namespace ricevono automaticamente sia i percorsi di produzione che quelli di test, ma solo le richieste che soddisfano le regole di test andranno all'implementazione verde.

Ciò che rende questo approccio efficace è la capacità di gestire la complessità del rilevamento servizi durante le transizioni. Man mano che il traffico si sposta dall'implementazione blu a quella verde, tutti i meccanismi di connettività e rilevamento si aggiornano automaticamente. Non è necessario aggiornare i record DNS, riconfigurare i bilanciatori del carico o implementare le modifiche al rilevamento servizi in modo separato, poiché la mesh di servizi gestisce tutto.

Instradamento e test del traffico

Service Connect offre funzionalità avanzate di instradamento del traffico per implementazioni blu/verdi, tra cui l'instradamento basato su intestazioni e la configurazione degli alias del client per scenari di test.

Regole di intestazione del traffico di test

Durante le implementazioni blu/verdi, è possibile configurare le regole dell'intestazione del traffico di test per instradare richieste specifiche alla (nuova) revisione del servizio verde a scopo di test. Ciò consente di convalidare la nuova versione con traffico controllato prima di completare l'implementazione.

Service Connect utilizza l'instradamento basato sulle intestazioni per identificare il traffico di test. Per impostazione predefinita, Service Connect riconosce l'intestazione x-amzn-ecs-blue-green-test per i protocolli basati su HTTP quando non vengono specificate regole personalizzate. Quando questa intestazione è presente in una richiesta, il proxy di Service Connect instraderà automaticamente la richiesta nell'implementazione verde per il test.

Le regole di intestazione del traffico di test ti consentono di:

  • Indirizzare le richieste con intestazioni specifiche alla revisione del servizio verde

  • Testare nuove funzionalità con un sottoinsieme di traffico

  • Convalidare il comportamento del servizio prima della conversione completa del traffico

  • Implementare strategie di test canary

  • Eseguire test di integrazione in un ambiente simile a quello di produzione

Il meccanismo di instradamento basato sulle intestazioni si integra perfettamente con l'architettura applicativa esistente. I servizi client non devono necessariamente essere consapevoli del processo di implementazione blu/verde: includono semplicemente le intestazioni appropriate quando inviano le richieste di test e il proxy di Service Connect gestisce automaticamente la logica di instradamento.

Per maggiori informazioni su come configurare le regole di intestazione del traffico di test, consultare ServiceConnectTestTrafficHeaderRules nella Documentazione di riferimento API di Amazon Elastic Container Service.

Regole di corrispondenza delle intestazioni

Le regole di corrispondenza delle intestazioni definiscono i criteri per il routing del traffico di test durante le implementazioni blu/verdi. È possibile configurare più condizioni di corrispondenza per controllare con precisione quali richieste vengono indirizzate alla revisione del servizio verde.

La corrispondenza delle intestazioni supporta:

  • Corrispondenza esatta del valore dell'intestazione

  • Verifica della presenza dell'intestazione

  • Corrispondenza basata su modelli

  • Combinazioni multiple di intestazioni

I casi d'uso di esempio includono il routing delle richieste con stringhe di utenti agenti specifiche, versioni API o flag di funzionalità al servizio verde per i test.

Per maggiori informazioni sulla configurazione della corrispondenza delle intestazioni, consultare ServiceConnectTestTrafficHeaderMatchRules nella Documentazione di riferimento API di Amazon Elastic Container Service.

Alias del client per implementazioni blu/verdi

Gli alias client forniscono endpoint DNS stabili per i servizi durante le implementazioni blu/verdi. Consentono un instradamento fluido del traffico tra le revisioni dei servizi blu e verdi senza richiedere alle applicazioni client di modificare gli endpoint di connessione.

Durante un'implementazione blu/verde, gli alias del client:

  • Mantengono coerenti i nomi DNS per le connessioni client

  • Abilitano lo spostamento automatico del traffico tra le revisioni del servizio

  • Supportano strategie di migrazione graduale del traffico

  • Forniscono funzionalità di rollback reindirizzando il traffico alla revisione blu

È possibile configurare più alias client per porte o protocolli diversi, consentendo ad architetture di servizio complesse di mantenere la connettività durante le implementazioni.

Per maggiori informazioni sulla configurazione degli alias dei clienti, consultare ServiceConnectClientAlias nella Documentazione di riferimento API di Amazon Elastic Container Service.

Best practice per l'instradamento del traffico

Quando si implementa l'instradamento del traffico per le implementazioni blu/verdi con Service Connect, considerare le seguenti best practice:

  • Inizia con i test basati sulle intestazioni: utilizza le regole di intestazione del traffico di test per convalidare il servizio verde con traffico controllato prima di cambiare tutto il traffico.

  • Configurare i controlli dell'integrità: assicurarsi che sia i servizi blu che quelli verdi abbiano la configurazione dei controlli di integrità appropriati per evitare di instradare il traffico verso istanze non integre.

  • Monitora le metriche del servizio: tieni traccia degli indicatori chiave di prestazione per entrambe le revisioni del servizio durante l'implementazione per identificare tempestivamente i problemi.

  • Pianificare la strategia di rollback: configurare gli alias dei client e le regole di instradamento per consentire il ripristino rapido del servizio in caso di problemi.

  • Verifica la logica di corrispondenza delle intestazioni: convalida le regole di corrispondenza delle intestazioni in un ambiente non di produzione prima di applicarle alle implementazioni di produzione.

Flusso di implementazione blu/verde di Service Connect

La comprensione del modo in cui Service Connect gestisce il processo di implementazione blu/verde aiuta a implementare e risolvere in modo efficace i problemi delle implementazioni. Il seguente flusso di lavoro mostra come interagiscono i diversi componenti durante ogni fase dell'implementazione.

Fasi di implementazione

Un'implementazione blu/verde di Service Connect procede attraverso diverse fasi distinte:

  1. Stato iniziale: il servizio blu gestisce il 100% del traffico di produzione. Tutti i servizi client nel namespace si connettono al servizio blu tramite il nome del servizio logico configurato in Service Connect.

  2. Registrazione del servizio verde: quando inizia l'implementazione verde, si registra con AWS Cloud Map come endpoint di “test”. Il proxy di Service Connect nei servizi client riceve automaticamente le configurazioni di instradamento di produzione e test.

  3. Test di instradamento del traffico: le richieste contenenti le intestazioni del traffico di test (come x-amzn-ecs-blue-green-test) vengono instradate automaticamente al servizio verde dal proxy di Service Connect. Il traffico di produzione continua a fluire verso il servizio blu.

  4. Preparazione dello spostamento del traffico: dopo l'esito positivo dei test, il processo di implementazione prepara lo spostamento del traffico di produzione. Sia i servizi blu che quelli verdi rimangono registrati e integri.

  5. Spostamento del traffico di produzione: la configurazione di Service Connect si aggiorna per instradare il traffico di produzione verso il servizio verde. Ciò avviene automaticamente senza richiedere aggiornamenti del servizio client o modifiche al DNS.

  6. Periodo di tempo di incorporamento: la durata in cui le revisioni del servizio blu e verde vengono eseguite contemporaneamente dopo lo spostamento del traffico di produzione.

  7. Annullamento della registrazione al servizio blu: dopo la convalida e il corretto spostamento del traffico, la registrazione del servizio blu da AWS Cloud Map viene annullata e tale servizio viene terminato, completando l'implementazione.

Comportamento del proxy di Service Connect

Il proxy di Service Connect svolge un ruolo cruciale nella gestione del traffico durante le implementazioni blu/verdi. La comprensione del suo comportamento aiuta a progettare strategie di test e implementazione efficaci.

Principali comportamenti del proxy durante le implementazioni blu/verdi:

  • Rilevamento di instradamento automatico: il proxy rileva automaticamente sia i percorsi di produzione che quelli di test da AWS Cloud Map senza richiedere riavvii delle applicazioni o modifiche alla configurazione.

  • Instradamento basato sulle intestazioni: il proxy esamina le intestazioni di richiesta in entrata e instrada il traffico alla revisione del servizio appropriata in base alle regole del traffico di test configurate.

  • Integrazione del controllo dell'integrità: il proxy instrada il traffico solo verso istanze di servizio integre, escludendo automaticamente le attività non integre dal pool di instradamento.

  • Nuovo tentativo e utilizzo di interruttori: il proxy offre funzionalità integrate di logica di tentativi e interruzione, migliorando la resilienza durante le implementazioni.

  • Raccolta di metriche: il proxy raccoglie metriche dettagliate per i servizi blu e verdi, consentendo un monitoraggio completo durante le implementazioni.

Aggiornamenti del rilevamento servizi

Uno dei principali vantaggi dell'utilizzo di Service Connect per le implementazioni blu/verdi è la gestione automatica degli aggiornamenti di rilevamento servizi. Le implementazioni blu/verdi tradizionali richiedono spesso aggiornamenti DNS complessi o la riconfigurazione del bilanciatore del carico, ma Service Connect gestisce queste modifiche in modo trasparente.

Durante un'implementazione, Service Connect gestisce:

  • Aggiornamenti del namespace: il namespace di Service Connect include automaticamente gli endpoint di servizio blu e verdi, con regole di instradamento appropriate.

  • Configurazione del client: tutti i servizi client nel namespace ricevono automaticamente informazioni di instradamento aggiornate senza richiedere riavvii o nuove implementazioni.

  • Transizione graduale: gli aggiornamenti di rilevamento servizi avvengono in modo graduale e sicuro, garantendo l'assenza di interruzioni delle richieste in corso.

  • Supporto per il rollback: se è necessario un rollback, Service Connect può ripristinare rapidamente le configurazioni di rilevamento servizi per instradare nuovamente il traffico verso il servizio blu.