Funzionalità supportate da Cloud Service Mesh con le API Google Cloud
Questo documento riassume le funzionalità disponibili in Cloud Service Mesh.
Cloud Service Mesh è composto dalle tue applicazioni, un server il piano dati (il proxy Envoy open source o gRPC senza proxy) e Cloud Service Mesh come piano di controllo.
Nelle tabelle seguenti, il valore N/A (non applicabile) indica che una caratteristica non può essere supportato perché non è compatibile con la Configurazione di Cloud Service Mesh. Uno spazio vuoto, senza un segno di spunta o N/A, significa che la funzionalità non è supportata.
Alcune di queste funzionalità sono disponibili solo con le API di bilanciamento del carico. Me consigliamo vivamente di utilizzare le API di routing dei servizi e che non crei nuovi deployment utilizzando il bilanciamento del carico su quelle di livello inferiore.
Versione di xDS supportata
Cloud Service Mesh utilizza le API del piano di controllo xDS open source per configurare Client gRPC Envoy e senza proxy. Questi clienti agiscono per conto di per distribuire il networking delle applicazioni di Cloud Service Mesh le funzionalità di machine learning.
È supportato solo xDS v3. Esegui la migrazione a xDS v3 se utilizzi xDS v2. Per informazioni per informazioni sulla migrazione, vedi Eseguire la migrazione da xDS v2 a xDS v3.
Piattaforme per eseguire servizi mesh
Puoi eseguire applicazioni sulle seguenti piattaforme e adottarle in un ambiente globale mesh di servizi configurato da Cloud Service Mesh.
Funzionalità | Supportato |
---|---|
Istanze di macchine virtuali (VM) Compute Engine | ✔ |
Istanze di container Google Kubernetes Engine (GKE) | ✔ |
Istanze di container di Kubernetes su Compute Engine | ✔ |
Gestione dei servizi
I servizi in un mesh da cui Cloud Service Mesh configura traggono vantaggio le seguenti:
Rilevamento dei servizi. Quando un'applicazione nel tuo mesh vuole raggiungere un'altra applicazione, può chiamare quel servizio per nome.
Scalabilità automatica backend. Lo scale up delle istanze che eseguono il codice dell'applicazione o lo scale down in modo dinamico in base alle esigenze.
Registrazione automatica degli endpoint. Quando vengono create o rimosse nuove istanze, vengono associate automaticamente al tuo servizio.
Funzionalità | Supportato |
---|---|
Deployment automatico di proxy sidecar per le VM di Compute Engine | ✔ |
Iniezione automatica di proxy sidecar per i pod GKE | ✔ |
Rilevamento dei servizi basato sul nome host | ✔ |
Scalabilità automatica dell'istanza basata sull'utilizzo della CPU | ✔ |
Scalabilità automatica dell'istanza in base al carico del traffico/capacità di distribuzione (solo VM di Compute Engine nei gruppi di istanze gestite) |
✔ |
Riparazione automatica dell'istanza in base a controlli di integrità configurabili | ✔ |
Registrazione automatica degli endpoint per le VM di Compute Engine | ✔ |
Registrazione automatica degli endpoint per istanze/pod di container GKE | ✔ |
API per aggiungere o rimuovere endpoint a livello di programmazione | ✔ |
Endpoint per il traffico del piano dati
I microservizi usano il piano dati per raggiungere i servizi nel tuo mesh all'esterno della rete. Cloud Service Mesh ti consente di separare dalla logica di networking dell'applicazione, in modo che l'applicazione di inviare richieste al piano dati (ad esempio, il proxy sidecar in esecuzione insieme all'applicazione). Il piano dati invia quindi richieste l'endpoint corretto.
Nella tabella seguente, le applicazioni descritte come nel mesh sono quelle di applicazioni che utilizzano il piano dati gestito da Cloud Service Mesh per comunicare con altri servizi. Queste applicazioni possono inviare a servizi in-mesh e esterni al mesh.
Funzionalità | Supportato |
---|---|
Applicazioni basate su VM nel mesh | ✔ |
Applicazioni basate su container nel mesh | ✔ |
Applicazioni basate su VM esterne al mesh | ✔ |
Applicazioni basate su container al di fuori della rete mesh | ✔ |
Applicazioni in esecuzione nei data center on-premise | ✔ |
Applicazioni in ambienti multi-cloud | ✔ |
Topologie del piano dati
Nel modello mesh di servizi, le applicazioni utilizzano un piano dati per comunicare. Questo piano dati è spesso composto da proxy sidecar di cui è stato eseguito il deployment insieme diverse applicazioni. Cloud Service Mesh è altamente flessibile e supporta i dati di base che soddisfano le esigenze di networking dei servizi.
Funzionalità | Supportato |
---|---|
Proxy Sidecar in esecuzione insieme alle applicazioni | ✔ |
Applicazioni gRPC senza proxy | ✔ |
Proxy intermedi tra due applicazioni in un mesh | ✔ |
Proxy perimetrali al limite del mesh | ✔ |
Mesh che copre più cluster GKE e/o VM di Compute Engine in più regioni | ✔ |
Configurazione programmatica basata su API
L'intera configurazione è esposta tramite la nostra API REST e la nostra dashboard pronte all'uso, consentendoti di automatizzare le modifiche apportate a team di grandi dimensioni e 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 | ✔ |
Assistenza Terraform | ✔ |
Supporto dei linguaggi con applicazioni gRPC senza proxy
Puoi creare applicazioni gRPC senza proxy che funzionano con Cloud Service Mesh utilizzando i seguenti linguaggi di programmazione. Funzionalità del mesh di servizi supportate in varie implementazioni e versioni di gRPC sono elencate su GitHub.
Lingua | Supportato |
---|---|
Java | ✔ |
Go | ✔ |
C++ | ✔ |
Python | ✔ |
Ruby | ✔ |
PHP | ✔ |
Nodo | ✔ |
Protocolli di richiesta
Quando usano la funzione, le applicazioni possono utilizzare i seguenti protocolli di richiesta Piano dati configurato da Cloud Service Mesh per comunicare.
Funzionalità | Supportato |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Sicurezza dei servizi
Cloud Service Mesh supporta la sicurezza dei servizi con quanto segue configurazioni.
Funzionalità | Envoy | gRPC |
---|---|---|
TLS con pod GKE | ✔ | ✔ |
mTLS con i pod GKE | ✔ | ✔ |
Controllo dell'accesso e autorizzazione | ✔ | ✔ |
Routing e gestione del traffico
Cloud Service Mesh supporta i criteri avanzati di gestione del traffico che puoi utilizzare per indirizzare, suddividere e modellare il traffico che passa attraverso il tuo piano dati.
Alcune funzionalità di gestione avanzata del traffico non sono disponibili con servizi gRPC senza proxy e nessuno del traffico avanzato le funzionalità di gestione sono disponibili con la risorsa proxy TCP di destinazione.
Le seguenti funzionalità non sono supportate quando Cloud Service Mesh gestisce il traffico TCP (non HTTP(S)).
Funzionalità | Supportato con il proxy Envoy configurate per gestire il traffico HTTP(S) o gRPC | Supportato con proxyless gRPC |
---|---|---|
Routing delle richieste HTTP/Livello 7 basato su suffisso/prefisso/full/regex su: | ||
• Nome host | ✔ | ✔ |
• Percorso | ✔ | ✔ |
• Intestazioni | ✔ | ✔ |
• Metodo | ✔ | N/D |
• Cookie | ✔ | ✔ |
• Parametri della richiesta | ✔ | N/D |
Fault injection | ✔ | ✔ |
Timeout configurabili | ✔ | N/D Consulta Durata massima stream. |
Nuovi tentativi | ✔ | ✔ Eccetto timeout per nuovo tentativo |
Reindirizzamenti | ✔ | |
Riscrittura URI | ✔ | |
Trasformazioni intestazione richiesta/risposta | ✔ | |
Suddivisione del traffico | ✔ | ✔ |
Mirroring del traffico | ✔ | |
Rilevamento outlier | ✔ | ✔ |
Interruttore di circuito | ✔ | ✔ Solo maxRequests |
Durata massima stream | ✔ | ✔ |
Bilanciamento del carico
Puoi configurare metodi e algoritmi di bilanciamento del carico avanzato per bilanciare il carico a livello di servizio, gruppo di backend (gruppi di istanze o gruppi di endpoint di rete) a livello di singolo backend o endpoint. Per ulteriori informazioni, consulta Panoramica dei servizi di backend e Panoramica del bilanciamento del carico avanzato.
Funzionalità | Supportato con il proxy Envoy configurate per gestire il traffico HTTP(s), TCP o gRPC | Supportato con proxyless gRPC |
---|---|---|
Selezione del backend (gruppo di istanze o gruppo di endpoint di rete) in base a regione (preferisci la regione più vicina con capacità di backend integro) | ✔ | ✔ |
Selezione di backend utilizzando la modalità di bilanciamento basata sulla frequenza (richieste al secondo). | ✔ Non supportata con il traffico TCP (non HTTP(S). |
✔ |
Selezione del backend in base alla modalità di bilanciamento basata sull'utilizzo (solo VM nei gruppi di istanze Compute Engine) | ✔ | ✔ |
Capacità massima configurabile per backend (Compute Engine e (solo GKE) | ✔ | ✔ |
Selezione del backend in base a criteri di bilanciamento del carico configurabili. Per informazioni su ogni criterio integrato, consulta
|
|
|
Resilienza dei servizi
Cloud Service Mesh supporta funzionalità che aiutano a migliorare la resilienza dei i tuoi servizi. Ad esempio, puoi utilizzare Cloud Service Mesh per implementare un oggetto pattern di deployment blu/verde, test canary, o un'interruzione di circuito (Envoy, gRPC).
Funzionalità | Supportato con il proxy Envoy configurate per gestire il traffico HTTP(s), TCP o gRPC | Supportato con proxyless gRPC |
---|---|---|
Selezione del servizio in base alle suddivisioni del traffico in base alla ponderazione | ✔ | ✔ |
Interruttore di circuito | ✔ | ✔ Solo maxRequests |
Gestione della capacità di servizi e backend
Cloud Service Mesh tiene conto della capacità di servizio e backend per garantire per la distribuzione ottimale del traffico tra i servizi di backend. Cloud Service Mesh è integrato con l'infrastruttura Google Cloud, in modo che raccoglie i dati sulla capacità. Puoi anche impostare e configurare la capacità manualmente.
Funzionalità | Supportato |
---|---|
Tiene automaticamente traccia della capacità e dell'utilizzo del backend in base a CPU, per le istanze VM in un gruppo di istanze gestite. | ✔ |
Capacità ed override manuali per le istanze VM e di container nei MIG e gruppi di endpoint di rete (NEG) in base alla tasso di richieste. | ✔ |
Svuotamento manuale della capacità. | ✔ |
Failover
I carichi di lavoro aziendali in genere si basano su deployment ad alta disponibilità per garantire e l'uptime del servizio. Cloud Service Mesh supporta questi tipi di deployment abilitare la ridondanza multizona/multiregionale.
Funzionalità | Supportato |
---|---|
Failover automatico a un'altra zona all'interno della stessa regione ha una capacità di backend integra. | ✔ |
Failover automatico alla regione più vicina con capacità di backend integro. | ✔ |
Controlli di integrità
Cloud Service Mesh supporta il controllo di integrità centralizzato per determinare il backend l'integrità fisica.
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 di richiesta o percorso configurabile (TCP o SSL) | ✔ |
Stringa di risposta prevista configurabile | ✔ |
Osservabilità
Gli strumenti di osservabilità forniscono informazioni su monitoraggio, debug e prestazioni per aiutarti a comprendere il tuo mesh di servizi. Le seguenti funzionalità sono forniti per impostazione predefinita o configurati nel piano dati. Il codice della tua applicazione non deve fare nulla di speciale per generare questi dati di osservabilità.
La dashboard dell'integrità del servizio è disponibile con i servizi gRPC senza proxy, ma non puoi configurare il logging e il tracciamento del piano dati. Cloud Service Mesh impossibile configurare il logging e il tracciamento di un'applicazione gRPC. Puoi attivare il logging e il tracciamento seguendo le istruzioni riportate nella o guide a gRPC, disponibili sui siti open source. Ad esempio, per abilitare e il tracciamento delle metriche nei servizi gRPC senza proxy, puoi utilizzare Opencensus.
Funzionalità | Supportata con i proxy | Supportata con i servizi gRPC senza proxy |
---|---|---|
Dashboard dell'integrità dei servizi | ✔ | ✔ |
Logging del piano dati | ✔ | ✔ |
Tracciamento del piano dati | ✔ | ✔ |
Affinità sessione
Le comunicazioni client-server spesso implicano più richieste successive. In tale caso, è utile indirizzare le successive richieste del client allo stesso backend o server. Cloud Service Mesh offre opzioni configurabili per inviare le richieste di un determinato cliente, secondo il criterio del "best effort", allo stesso purché sia integro e abbia capacità. Per ulteriori informazioni, consulta la panoramica sui servizi di backend.
Funzionalità | Supportata con i proxy HTTP(S) | Supportata con i proxy TCP | Supportata con i servizi gRPC senza proxy |
---|---|---|---|
Indirizzo IP client | ✔ | ✔ | |
Cookie HTTP | ✔ | N/D | |
Intestazione HTTP | ✔ | N/D | ✔ |
Cookie generato (imposta il cookie del client alla prima richiesta) | ✔ | N/D |
Topologie di rete
Cloud Service Mesh supporta le topologie di rete più comuni di Google Cloud.
Funzionalità | Supportato |
---|---|
Rete singola in un progetto Google Cloud | ✔ |
Più mesh in un progetto Google Cloud | ✔ |
Più gateway in un progetto Google Cloud | ✔ |
VPC condiviso (una singola rete condivisa tra più reti progetti Google Cloud) | ✔ |
Per una spiegazione dettagliata di come il VPC condiviso è supportato Cloud Service Mesh, consulta Limitazioni.
Conformità
Cloud Service Mesh è 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 Cloud Service Mesh, consulta Panoramica di Cloud Service Mesh.
- Per trovare casi d'uso e pattern di architettura per i servizi gRPC senza proxy, consulta Panoramica dei servizi gRPC senza proxy.