Funzionalità supportate da Cloud Service Mesh con le API Google Cloud
Questo documento riassume le funzionalità disponibili in Cloud Service Mesh.
Un Cloud Service Mesh è costituito dalle tue applicazioni, da un piano dati compatibile con xDS (il proxy Envoy open source o senza proxy gRPC) e da Cloud Service Mesh come piano di controllo.
Nelle tabelle seguenti, il valore N/A (non applicabile) indica che una funzionalità non può essere supportata perché non è compatibile con la configurazione specifica di Cloud Service Mesh. Uno spazio vuoto, senza un segno di spunta o N/D, indica che la funzionalità non è supportata.
Alcune di queste funzionalità sono disponibili solo con le API di bilanciamento del carico. Ti consigliamo vivamente di utilizzare le API di routing dei servizi e di non creare nuovi deployment utilizzando le API di bilanciamento del carico.
Versioni di xDS supportate
Cloud Service Mesh utilizza le API del piano di controllo xDS open source per configurare i client gRPC Envoy e senza proxy. Questi client agiscono per conto del tuo codice applicazione per fornire le funzionalità di networking delle applicazioni di Cloud Service Mesh.
Versione | Assistenza |
---|---|
xDS v2 | Disponibilità generale. Alcune funzionalità, inclusa la sicurezza del servizio, sono disponibili solo con xDS v3. Il supporto di xDS v2 terminerà il 20 giugno 2024. |
XDS v3 | Disponibilità generale |
Piattaforme per eseguire i servizi mesh
Puoi eseguire le applicazioni sulle seguenti piattaforme e adottarle in un mesh di servizi globale configurato da Cloud Service Mesh.
Selezione delle | Supportato |
---|---|
Istanze di macchine virtuali (VM) Compute Engine | ✔ |
Istanze di container Google Kubernetes Engine (GKE) | ✔ |
Kubernetes su istanze di container di Compute Engine | ✔ |
Gestione dei servizi
I servizi in un mesh configurato da Cloud Service Mesh beneficiano di quanto segue:
Rilevamento dei servizi. Quando un'applicazione nel tuo mesh vuole raggiungere un'altra applicazione, può chiamare quel servizio per nome.
Scalabilità automatica di 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. Quando vengono create o rimosse nuove istanze, vengono automaticamente associate al servizio.
Selezione delle | Supportato |
---|---|
Deployment automatico di proxy collaterali per le VM di Compute Engine | ✔ |
Iniezione automatica dei proxy collaterali per i pod GKE | ✔ |
Service Discovery 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 gestione (solo VM di Compute Engine in gruppi di istanze gestite o gruppi di istanze gestite) |
✔ |
Riparazione automatica delle istanze 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 | ✔ |
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 mesh e all'esterno del mesh. Cloud Service Mesh 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 le richieste all'endpoint corretto.
Nella tabella seguente, le applicazioni descritte come presenti nel mesh sono quelle che utilizzano il piano dati gestito da Cloud Service Mesh per comunicare con altri servizi. Queste applicazioni possono inviare il traffico a servizi e servizi in-mesh al di fuori del mesh.
Selezione delle | 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 | ✔ |
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 distribuiti insieme alle tue applicazioni. Cloud Service Mesh è altamente flessibile e supporta topologie del piano dati adatte alle tue esigenze di networking.
Selezione delle | Supportato |
---|---|
Proxy Sidecar in esecuzione insieme alle applicazioni | ✔ |
Applicazioni gRPC senza proxy | ✔ |
Proxy centrali tra due applicazioni in un mesh | ✔ |
Proxy perimetrali ai confini del tuo mesh | ✔ |
Mesh che comprende più cluster GKE e/o VM di Compute Engine in più regioni | ✔ |
Configurazione programmatica basata su API
Tutta la configurazione è pronta all'uso tramite la nostra API REST e la nostra dashboard, 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.
Selezione delle | Supportato |
---|---|
API REST | ✔ |
Console Google Cloud | ✔ |
Google Cloud CLI | ✔ |
Cloud Deployment Manager | ✔ |
Supporto per Terraform | ✔ |
Supporto delle lingue con applicazioni gRPC senza proxy
Puoi creare applicazioni gRPC senza proxy compatibili con Cloud Service Mesh utilizzando i seguenti linguaggi di programmazione. Le 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
Le applicazioni possono utilizzare i seguenti protocolli di richiesta quando utilizzano il piano dati configurato da Cloud Service Mesh per comunicare.
Selezione delle | Supportato |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Sicurezza dei servizi
Cloud Service Mesh supporta la sicurezza dei servizi con le configurazioni seguenti.
Selezione delle | Logo Envoy | gRPC |
---|---|---|
TLS con pod GKE | ✔ | ✔ |
mTLS con pod GKE | ✔ | ✔ |
Controllo dell'accesso e autorizzazione | ✔ | ✔ |
Routing e gestione del traffico
Cloud Service Mesh supporta criteri avanzati di gestione del traffico che puoi utilizzare per indirizzare, suddividere e modellare il traffico mentre passa attraverso il tuo piano dati.
Alcune funzionalità avanzate di gestione del traffico non sono disponibili con i servizi gRPC senza proxy, mentre nessuna di quelle avanzate è disponibile con la risorsa proxy TCP di destinazione.
Le seguenti funzionalità non sono supportate quando Cloud Service Mesh gestisce il traffico TCP (non HTTP(S).
Selezione delle | Supportata con proxy Envoy configurato per gestire il traffico HTTP(S) o gRPC | Supportata con gRPC senza proxy |
---|---|---|
Routing delle richieste HTTP/livello 7 in base alla corrispondenza di 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 | ✔ | ✔ Tranne per timeout per nuovo tentativo |
Reindirizzamenti | ✔ | |
Riscritture dell'URI | ✔ | |
Trasformazioni intestazione 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 avanzati di bilanciamento del carico per bilanciare il carico a livello di servizio, gruppo di backend (gruppi di istanze o gruppi di endpoint di rete) e singoli livelli di backend o endpoint. Per ulteriori informazioni, consulta la Panoramica dei servizi di backend e la Panoramica del bilanciamento del carico avanzato.
Selezione delle | Supportata con 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 di 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 di backend basata su criteri di bilanciamento del carico configurabili. Per informazioni su ogni criterio integrato, consulta
|
|
|
Resilienza dei servizi
Cloud Service Mesh supporta funzionalità che consentono di migliorare la resilienza dei tuoi servizi. Ad esempio, puoi utilizzare Cloud Service Mesh per implementare un pattern di deployment blu/verde, test canary o l'interruzione di circuito (Envoy, gRPC).
Selezione delle | Supportata con proxy Envoy configurato per gestire il traffico HTTP(s), TCP o gRPC | Supportata con gRPC senza proxy |
---|---|---|
Selezione del servizio in base alle suddivisioni del traffico in base alla ponderazione | ✔ | ✔ |
Interruzione di circuito | ✔ | ✔ Solo maxRequests |
Gestione della capacità di servizio e backend
Cloud Service Mesh tiene conto della capacità del servizio e del backend per garantire una distribuzione ottimale del traffico tra i backend dei servizi. Cloud Service Mesh è integrato nell'infrastruttura di Google Cloud in modo da raccogliere automaticamente i dati sulla capacità. Puoi anche impostare e configurare la capacità manualmente.
Selezione delle | 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à manuale e override per le istanze VM e di container nei gruppi di istanze gestite e nei 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 l'uptime del servizio. Cloud Service Mesh supporta questi tipi di deployment abilitando la ridondanza multizona/più regioni.
Selezione delle | 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à
Cloud Service Mesh supporta il controllo di integrità centralizzato per determinare l'integrità del backend.
Per informazioni di riferimento, consulta la panoramica dei controlli di integrità.
Selezione delle | 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 della tua applicazione non deve fare nulla di particolare per generare questi dati di osservabilità.
La dashboard di integrità dei servizi è disponibile con i servizi gRPC senza proxy, ma non è possibile configurare il logging e il tracciamento del piano dati. Cloud Service Mesh 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.
Selezione delle | Supportata con proxy | Supportata con servizi gRPC senza proxy |
---|---|---|
Dashboard di integrità del servizio | ✔ | ✔ |
Logging del piano dati | ✔ | ✔ |
Tracciamento del piano dati | ✔ | ✔ |
Affinità sessione
Le comunicazioni client-server spesso comportano più richieste successive. In questo caso, è utile instradare le richieste del client successive allo stesso backend o server. Cloud Service Mesh fornisce opzioni configurabili per inviare richieste da un particolare client, secondo il criterio del massimo impegno, allo stesso backend, purché il backend sia integro e disponga di capacità. Per ulteriori informazioni, consulta la panoramica dei servizi di backend.
Selezione delle | 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
Cloud Service Mesh supporta le topologie di rete più comuni di Google Cloud.
Selezione delle | Supportato |
---|---|
Singola rete 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ù progetti Google Cloud) | ✔ |
Per una spiegazione dettagliata di come il VPC condiviso è supportato con Cloud Service Mesh, consulta la pagina 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 saperne di più su Cloud Service Mesh, consulta la panoramica di Cloud Service Mesh.
- Per trovare i casi d'uso e i pattern di architettura per i servizi gRPC senza proxy, consulta la panoramica dei servizi gRPC senza proxy.