Funzionalità di Traffic Director
Traffic Director ti aiuta a eseguire microservizi in un mesh di servizi globale. La rete mesh gestisce il networking per i microservizi in modo che tu possa scrivere codice dell'applicazione che non ha bisogno di conoscere le complessità di networking sottostanti. Questa separazione tra la logica dell'applicazione e la logica di networking consente di migliorare la velocità di sviluppo, aumentare la disponibilità dei servizi e introdurre pratiche DevOps moderne nella tua organizzazione.
Il mesh di servizi è costituito dalle tue applicazioni, da un piano dati compatibile con xDS (in genere il proxy Envoy open source) e da Traffic Director come piano di controllo mesh.
Per eseguire il deployment di servizi gRPC senza proxy con Traffic Director nel tuo mesh di servizi, puoi utilizzare una versione supportata di gRPC.
Questo documento riassume le funzionalità disponibili in Traffic Director. Il valore N/A (non applicabile) indica che una funzionalità non può essere supportata perché non è compatibile con la specifica configurazione di Traffic Director. Uno spazio vuoto senza un segno di spunta o N/D indica che la funzionalità non è supportata, ma potrebbe esserlo in futuro.
Piano di controllo completamente gestito per mesh di servizi
Traffic Director è un servizio del piano di controllo gestito e ad alta disponibilità eseguito in Google Cloud. Poiché non è necessario installare o aggiornare il piano di controllo, avrai un componente in meno da gestire nell'infrastruttura del mesh di servizi.
Versioni di xDS supportate
Traffic Director utilizza le API del piano di controllo xDS open source per configurare Envoy e client gRPC senza proxy. Questi client agiscono per conto del codice dell'applicazione per fornire le funzionalità di networking delle applicazioni di Traffic Director.
Versione | Assistenza |
---|---|
xDS v2 | Disponibilità generale. Alcune funzioni, inclusa la sicurezza del servizio, sono disponibili solo con xDS v3. Il supporto di xDS v2 termina il 20 giugno 2024. |
xDS v3 | Disponibilità generale |
Piattaforme per l'esecuzione di servizi mesh
Puoi eseguire le applicazioni sulle seguenti piattaforme e adottarle in un mesh di servizi globale configurato da Traffic Director.
Funzionalità | Supportato |
---|---|
Istanze di macchine virtuali (VM) Compute Engine | ✔ |
Istanze di container di Google Kubernetes Engine (GKE) | ✔ |
Kubernetes su istanze di container di Compute Engine | ✔ |
Gestione dei servizi
I servizi in un mesh configurato da Traffic Director traggono vantaggio dai seguenti vantaggi:
Service Discovery. Quando un'applicazione nel tuo mesh vuole raggiungere un'altra applicazione, può chiamare quel servizio per nome.
Scalabilità automatica del backend. Le istanze che eseguono il codice dell'applicazione fanno lo scale up o lo scale down in modo dinamico a seconda delle esigenze.
Registrazione automatica degli endpoint. Le nuove istanze create o rimosse vengono automaticamente associate al servizio.
Funzionalità | Supportato |
---|---|
Deployment automatico dei proxy sidecar per le VM di Compute Engine | ✔ |
Iniezione automatica di proxy sidecar per i pod GKE | ✔ |
Service Discovery basato sul nome host | ✔ |
Scalabilità automatica dell'istanza basata sull'utilizzo della CPU | ✔ |
Scalabilità automatica delle istanze basata sul carico del traffico/capacità di pubblicazione (solo VM di Compute Engine in gruppi di istanze gestite o MIG) |
✔ |
Riparazione automatica dell'istanza basata su controlli di integrità configurabili | ✔ |
Registrazione automatica degli endpoint per le VM di Compute Engine | ✔ |
Registrazione automatica degli endpoint per pod/istanze di container GKE | ✔ |
Associa i servizi di Service Directory a un servizio di backend | ✔ |
API per aggiungere o rimuovere gli endpoint in modo programmatico | ✔ |
Endpoint per il traffico del piano dati
I microservizi utilizzano il piano dati per raggiungere i servizi nel tuo mesh e all'esterno del tuo mesh. Traffic Director consente di separare la logica dell'applicazione dalla logica di networking in modo che l'applicazione debba solo inviare richieste al piano dati, ad esempio al proxy sidecar in esecuzione insieme all'applicazione. Il piano dati invia quindi richieste all'endpoint corretto.
Nella tabella seguente, le applicazioni descritte come presenti nel mesh sono quelle che utilizzano il piano dati gestito da Traffic Director per comunicare con altri servizi. Queste applicazioni possono inviare il traffico a servizi e servizi in-mesh al di fuori del mesh.
Funzionalità | Supportato |
---|---|
Applicazioni basate su VM nel mesh | ✔ |
Applicazioni basate su container nel mesh | ✔ |
Applicazioni basate su VM al di fuori del mesh | ✔ |
Applicazioni basate su container al di fuori del mesh | ✔ |
Applicazioni in esecuzione in data center on-premise | ✔ |
Applicazioni in ambienti multi-cloud | ✔ |
Endpoint in Service Directory | ✔ |
Topologie del piano dati
Nel modello mesh di servizi, le applicazioni utilizzano un piano dati per comunicare. Questo piano dati è spesso costituito da proxy sidecar di cui è stato eseguito il deployment insieme alle applicazioni. Traffic Director è altamente flessibile e supporta topologie del piano dati adatte alle tue esigenze di networking di servizi.
Funzionalità | Supportato |
---|---|
Proxy sidecar in esecuzione insieme alle applicazioni | ✔ |
Applicazioni gRPC senza proxy | ✔ |
Proxy centrali tra due applicazioni in un mesh | ✔ |
Proxy perimetrali ai confini della tua rete mesh | ✔ |
Mesh che comprende più cluster GKE e/o VM di Compute Engine in più regioni | ✔ |
Configurazione programmatica basata su API
Tutta la configurazione è esposta tramite l'API REST e la dashboard pronte all'uso, che ti consentono di automatizzare le modifiche nei team di grandi dimensioni e di gestire le modifiche in modo programmatico. Alcune funzionalità non possono essere configurate utilizzando la console Google Cloud.
Funzionalità | Supportato |
---|---|
API REST | ✔ |
Console Google Cloud | ✔ |
Google Cloud CLI | ✔ |
Cloud Deployment Manager | ✔ |
Supporto per Terraform | ✔ |
Supporto dei linguaggi con applicazioni gRPC senza proxy
Puoi creare applicazioni gRPC proxyless compatibili con Traffic Director utilizzando i seguenti linguaggi di programmazione. Le funzionalità del mesh di servizi supportate in varie implementazioni e versioni di gRPC sono elencate su GitHub.
linguaggio | Supportato |
---|---|
Java | ✔ |
Go | ✔ |
C++ | ✔ |
Python | ✔ |
Ruby | ✔ |
PHP | ✔ |
Nodo | ✔ |
Protocolli di richiesta
Le applicazioni possono utilizzare i seguenti protocolli di richiesta quando usano il piano dati configurato da Traffic Director per comunicare.
Funzionalità | Supportato |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Sicurezza dei servizi
Traffic Director supporta la sicurezza del servizio con le seguenti configurazioni.
Funzionalità | Envoy | gRPC |
---|---|---|
TLS con pod GKE | ✔ | ✔ |
mTLS con pod GKE | ✔ | ✔ |
Controllo dell'accesso e autorizzazione | ✔ | ✔ |
Routing e gestione del traffico
Traffic Director supporta criteri avanzati di gestione del traffico che puoi utilizzare per indirizzare, suddividere e modellare il traffico mentre passa attraverso il piano dati.
Alcune funzionalità di gestione avanzata del traffico non sono disponibili con i servizi gRPC senza proxy e nessuna di queste funzionalità è disponibile con la risorsa proxy TCP di destinazione.
Le seguenti funzionalità non sono supportate quando Traffic Director gestisce il traffico TCP (non HTTP(S).
Funzionalità | Supportata con il proxy Envoy configurato per gestire il traffico HTTP(S) o gRPC | Supportata con gRPC senza proxy |
---|---|---|
Routing delle richieste HTTP/di livello 7 in base alla corrispondenza con suffisso/prefisso/completa/regex su: | ||
• Nome host | ✔ | ✔ |
• Percorso | ✔ | ✔ |
• Intestazioni | ✔ | ✔ |
• Metodo | ✔ | N/A |
• Cookie | ✔ | ✔ |
• Parametri di richiesta | ✔ | N/A |
Fault injection | ✔ | ✔ |
Timeout configurabili | ✔ | N/D Consulta Durata massima dello stream. |
Nuovi tentativi | ✔ | ✔ Eccetto per il timeout per nuovo tentativo |
Reindirizzamenti | ✔ | |
Riscritture URI | ✔ | |
Trasformazioni dell'intestazione di richiesta/risposta | ✔ | |
Suddivisione del traffico | ✔ | ✔ |
Mirroring del traffico | ✔ | |
Rilevamento outlier | ✔ | ✔ |
Interruzione di circuito | ✔ | ✔ Solo maxRequests |
Durata massima dello stream | ✔ | ✔ |
Bilanciamento del carico
Puoi configurare algoritmi e metodi di bilanciamento del carico avanzati per bilanciare il carico a livello di servizio, gruppo di backend (gruppi di istanze o gruppi di endpoint di rete) e singoli backend o endpoint. Per ulteriori informazioni, consulta la Panoramica dei servizi di backend.
Funzionalità | Supportata con il proxy Envoy configurato per gestire il traffico HTTP(s), TCP o gRPC | Supportata con gRPC senza proxy |
---|---|---|
Selezione del backend (gruppo di istanze o gruppo di endpoint di rete) in base alla regione (preferisci la regione più vicina con capacità di backend integro) | ✔ | ✔ |
Selezione del backend utilizzando la modalità di bilanciamento basata sulla frequenza (richieste al secondo). | ✔ Non supportato con il traffico TCP (non HTTP(S). |
✔ |
Selezione del backend basata sulla modalità di bilanciamento basato sull'utilizzo (solo VM in gruppi di istanze Compute Engine) | ✔ | ✔ |
Capacità massima configurabile per backend (solo Compute Engine e GKE) | ✔ | ✔ |
Selezione del backend basata su criteri di bilanciamento del carico configurabili. Per informazioni su ogni criterio integrato, consulta
|
|
|
Resilienza dei servizi
Traffic Director supporta funzionalità che consentono di migliorare la resilienza dei servizi. Ad esempio, puoi utilizzare Traffic Director per implementare un pattern di deployment blu/verde, test canary o un'interruzione di circuito (Envoy, gRPC).
Funzionalità | Supportata con il proxy Envoy configurato per gestire il traffico HTTP(s), TCP o gRPC | Supportata con gRPC senza proxy |
---|---|---|
Selezione del servizio in base a suddivisioni del traffico in base alla ponderazione | ✔ | ✔ |
Interruzione di circuito | ✔ | ✔ Solo maxRequests |
Gestione della capacità di backend e servizi
Traffic Director prende in considerazione la capacità dei servizi e del backend per garantire una distribuzione ottimale del traffico tra i backend dei tuoi servizi. Traffic Director è integrato nell'infrastruttura Google Cloud in modo da raccogliere automaticamente i dati sulla capacità. Puoi anche impostare e configurare la capacità manualmente.
Funzionalità | Supportato |
---|---|
Monitora automaticamente la capacità e l'utilizzo del backend, in base alla CPU, per le istanze VM in un gruppo di istanze gestite. | ✔ |
Capacità e override manuali per le istanze VM e di container nei MIG e nei gruppi di endpoint di rete (NEG) in base alla tasso di richieste. | ✔ |
Svuotamento manuale della capacità. | ✔ |
Esegui il failover
I carichi di lavoro aziendali si basano generalmente su deployment ad alta disponibilità per garantire l'uptime dei servizi. Traffic Director supporta questi tipi di deployment abilitando la ridondanza multizona/più regioni.
Funzionalità | Supportato |
---|---|
Failover automatico a un'altra zona all'interno della stessa regione con capacità di backend integro. | ✔ |
Failover automatico alla regione più vicina con capacità di backend integro. | ✔ |
Controlli di integrità
Traffic Director supporta il controllo di integrità centralizzato per determinare l'integrità del backend. Tuttavia, non puoi impostare un controllo di integrità se un servizio di backend contiene un'associazione di servizi per un servizio Service Directory.
Per informazioni di riferimento, consulta la panoramica dei controlli di integrità.
Funzionalità | Supportato |
---|---|
Controlli di integrità gRPC | ✔ |
Controlli di integrità HTTP | ✔ |
Controlli di integrità HTTPS | ✔ |
Controlli di integrità HTTP/2 | ✔ |
Controlli di integrità TCP | ✔ |
Controlli di integrità configurabili:
|
✔ |
Percorso di richiesta configurabile (HTTP, HTTPS, HTTP/2) | ✔ |
Stringa o percorso di richiesta configurabile (TCP o SSL) | ✔ |
Stringa di risposta prevista configurabile | ✔ |
Osservabilità
Gli strumenti di osservabilità forniscono informazioni di monitoraggio, debug e prestazioni per aiutarti a comprendere il tuo mesh di servizi. Le seguenti funzionalità sono fornite per impostazione predefinita o configurate nel piano dati. Il codice dell'applicazione non deve fare nulla di particolare per generare questi dati di osservabilità.
La dashboard dell'integrità dei servizi è disponibile con i servizi gRPC senza proxy, ma non puoi configurare il logging e il tracciamento del piano dati. Traffic Director non può configurare il logging e il tracciamento di un'applicazione gRPC. Puoi abilitare il logging e il tracciamento seguendo le istruzioni nelle sezioni per la risoluzione dei problemi o nelle guide gRPC disponibili sui siti open source. Ad esempio, per abilitare la raccolta e il tracciamento delle metriche nei servizi gRPC senza proxy, puoi utilizzare Opencensus.
Funzionalità | Supportata con proxy | Supportata con servizi gRPC senza proxy |
---|---|---|
Dashboard di integrità dei servizi | ✔ | ✔ |
Logging del piano dati | ✔ | ✔ |
Tracciamento del piano dati | ✔ | ✔ |
Affinità sessione
Le comunicazioni client-server spesso comportano più richieste successive. In tal caso, è utile instradare richieste client successive allo stesso backend o server. Traffic Director offre opzioni configurabili per inviare richieste da un determinato client, secondo il criterio del miglior sforzo, allo stesso backend, purché il backend sia integro e abbia capacità. Per ulteriori informazioni, consulta la panoramica dei servizi di backend.
Funzionalità | Supportato con i proxy HTTP(S) | Supportato con i proxy TCP | Supportata con servizi gRPC senza proxy |
---|---|---|---|
Indirizzo IP client | ✔ | ✔ | |
Cookie HTTP | ✔ | N/A | |
Intestazione HTTP | ✔ | N/A | ✔ |
Cookie generato (imposta il cookie del cliente alla prima richiesta) | ✔ | N/A |
Topologie di rete
Traffic Director supporta le topologie di rete comuni di Google Cloud.
Funzionalità | Supportato |
---|---|
Rete singola in un progetto Google Cloud | ✔ |
Mesh multipli in un progetto Google Cloud | ✔ |
Più gateway in un progetto Google Cloud | ✔ |
VPC condiviso (una singola rete condivisa tra più progetti Google Cloud) | ✔ |
Per una spiegazione dettagliata di come il VPC condiviso è supportato con Traffic Director, consulta Limitazioni.
Conformità
Traffic Director è conforme ai seguenti standard.
Certificazione di conformità | Supportato |
---|---|
HIPAA | ✔ |
ISO 27001, ISO 27017, ISO 27018 | ✔ |
SOC1, SOC2, SOC3 | ✔ |
PCI DSS | ✔ |
Passaggi successivi
- Per scoprire di più su Traffic Director, consulta la panoramica di Traffic Director.
- Per trovare i casi d'uso e i pattern di architettura per i servizi gRPC proxyless, consulta la panoramica dei servizi gRPC senza proxy.