Funzionalità supportate di Cloud Service Mesh con le API Google Cloud
Questo documento riassume le funzionalità disponibili in Cloud Service Mesh.
Un mesh di servizi cloud è costituito dalle tue applicazioni, da un piano dati compatibile con xDS (il proxy Envoy open source o il piano dati 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 particolare configurazione di Cloud Service Mesh. Uno spazio vuoto, senza segno di spunta o N/A, 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 del servizio e di non creare nuove implementazioni utilizzando le API di bilanciamento del carico.
Versione xDS supportata
Cloud Service Mesh utilizza le API open source del control plane xDS per configurare i client Envoy e gRPC senza proxy. Questi client agiscono per conto del codice dell'applicazione per fornire le funzionalità di rete delle applicazioni di Cloud Service Mesh.
È supportato solo xDS v3. Esegui la migrazione a xDS v3 se utilizzi xDS v2. Per informazioni su come eseguire la 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 mesh di servizi globale configurato da Cloud Service Mesh.
Funzionalità | Supportato |
---|---|
Istanze di macchine virtuali (VM) Compute Engine | ✔ |
Istanze container Google Kubernetes Engine (GKE) | ✔ |
Kubernetes sulle istanze container di Compute Engine | ✔ |
Gestione dei servizi
I servizi in una mesh configurata da Cloud Service Mesh usufruiscono di quanto segue:
Service Discovery. Quando un'applicazione nella tua mesh vuole raggiungere un'altra applicazione, può chiamare il servizio per nome.
Scalabilità automatica del backend. Le istanze che eseguono il codice dell'applicazione vengono scalate in modo dinamico in base alle tue esigenze.
Registrazione automatica degli endpoint. Man mano che vengono create o rimosse nuove istanze, queste vengono associate automaticamente al tuo servizio.
Funzionalità | Supportato |
---|---|
Deployment automatico dei proxy sidecar per le VM di Compute Engine | ✔ |
Inserimento automatico di proxy sidecar per i pod GKE | ✔ |
Service Discovery basata sul nome host | ✔ |
Scalabilità automatica delle istanze basata sull'utilizzo della CPU | ✔ |
Scalabilità automatica delle istanze in base al carico di traffico/alla capacità di gestione (solo VM Compute Engine nei gruppi di istanze gestite o MIG) |
✔ |
Riparazione automatica delle istanze in base a controlli di integrità configurabili | ✔ |
Registrazione automatica degli endpoint per le VM di Compute Engine | ✔ |
Registrazione automatica degli endpoint per le istanze/i pod container GKE | ✔ |
API per aggiungere o rimuovere endpoint a livello di programmazione | ✔ |
Endpoint per il traffico del data plane
I microservizi utilizzano il data plane per raggiungere i servizi nel mesh e al di fuori del mesh. Cloud Service Mesh ti consente di separare la logica dell'applicazione dalla logica di rete, in modo che la tua applicazione debba solo inviare richieste al piano dati (ad esempio, il 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 data plane gestito da Cloud Service Mesh per comunicare con altri servizi. Queste applicazioni possono inviare traffico ai servizi in-mesh e ai servizi 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 della mesh | ✔ |
Applicazioni basate su container al di fuori del mesh | ✔ |
Applicazioni in esecuzione nei data center on-premise | ✔ |
Applicazioni in ambienti multi-cloud | ✔ |
Topologie del piano dati
Nel modello di mesh di servizi, le tue applicazioni utilizzano un piano dati per comunicare. Questo piano dati spesso è costituito da proxy sidecar distribuiti insieme alle tue applicazioni. Cloud Service Mesh è estremamente flessibile e supporta topologie del piano dati adatte alle tue esigenze di networking dei servizi.
Funzionalità | Supportato |
---|---|
Proxy sidecar eseguiti insieme alle applicazioni | ✔ |
Applicazioni gRPC senza proxy | ✔ |
Proxy intermedi tra due applicazioni in una mesh | ✔ |
Proxy perimetrali al confine della tua rete mesh | ✔ |
Mesh che si estende su più cluster GKE e/o VM Compute Engine in più regioni | ✔ |
Configurazione programmatica basata su API
Tutta la configurazione è esposta tramite la nostra API REST e la dashboard predefinita, consentendoti di automatizzare le modifiche in team di grandi dimensioni e gestirle in modo programmatico. Alcune funzionalità non possono essere configurate utilizzando la console Google Cloud .
Funzionalità | Supportato |
---|---|
API REST | ✔ |
ConsoleGoogle Cloud | ✔ |
Google Cloud CLI | ✔ |
Cloud Deployment Manager | ✔ |
Supporto di Terraform | ✔ |
Supporto linguistico con applicazioni gRPC senza proxy
Puoi creare applicazioni gRPC proxyless che funzionano con Cloud Service Mesh utilizzando i seguenti linguaggi di programmazione. Le funzionalità di 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 con Cloud Service Mesh per comunicare.
Funzionalità | Supportato |
---|---|
HTTP | ✔ |
HTTPS | ✔ |
HTTP/2 | ✔ |
TCP | ✔ |
gRPC | ✔ |
Sicurezza del servizio
Cloud Service Mesh supporta la sicurezza dei servizi con le seguenti configurazioni.
Funzionalità | Envoy | gRPC |
---|---|---|
TLS con i pod GKE | ✔ | ✔ |
mTLS con i pod GKE | ✔ | ✔ |
Controllo dell'accesso e autorizzazione | ✔ | ✔ |
Limitazione della frequenza con Google Cloud Armor | ✔ |
Routing e gestione del traffico
Cloud Service Mesh supporta criteri avanzati di gestione del traffico che puoi utilizzare per indirizzare, dividere e modellare il traffico mentre passa attraverso il piano dati.
Alcune funzionalità di gestione avanzata del traffico non sono disponibili con i servizi gRPC proxyless e nessuna delle funzionalità di gestione avanzata del traffico è 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)).
Funzionalità | Supportato con il proxy Envoy configurato per gestire il traffico HTTP(S) o gRPC | Supportato con gRPC senza proxy |
---|---|---|
Routing delle richieste HTTP/di livello 7 basato sulla corrispondenza di suffisso/prefisso/completa/regex su: | ||
• Nome host | ✔ | ✔ |
• Percorso | ✔ | ✔ |
• Intestazioni | ✔ | ✔ |
• Metodo | ✔ | N/D |
• Cookie | ✔ | ✔ |
• Parametri di richiesta | ✔ | N/D |
Fault injection | ✔ | ✔ |
Timeout configurabili | ✔ | N/A Vedi Durata massima dello stream. |
Nuovi tentativi | ✔ | ✔ Ad eccezione del timeout per i tentativi |
Reindirizzamenti | ✔ | |
Riscritture degli URI | ✔ | |
Trasformazioni delle intestazioni di richiesta/risposta | ✔ | |
Suddivisione del traffico | ✔ | ✔ |
Mirroring del traffico | ✔ | |
Rilevamento outlier | ✔ | ✔ |
Interruzione del circuito | ✔ | ✔ Solo maxRequests |
Durata massima dello stream | ✔ | ✔ |
Bilanciamento del carico
Puoi configurare metodi e algoritmi 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 e la panoramica del bilanciamento del carico avanzato.
Funzionalità | Supportato con il proxy Envoy configurato per gestire il traffico HTTP(S), TCP o gRPC | Supportato 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 integra) | ✔ | ✔ |
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 in base alla modalità di bilanciamento basata sull'utilizzo (solo VM nei gruppi di istanze Compute Engine) | ✔ | ✔ |
Capacità massima configurabile per backend (solo Compute Engine e GKE) | ✔ | ✔ |
Selezione del backend in base a criteri di bilanciamento del carico configurabili. Per informazioni su ogni policy integrata, vedi
|
|
|
Resilienza del servizio
Cloud Service Mesh supporta funzionalità che ti aiutano a migliorare la resilienza dei tuoi servizi. Ad esempio, puoi utilizzare Cloud Service Mesh per implementare un pattern di deployment blu/verde, test canary o interruzione del circuito (Envoy, gRPC).
Funzionalità | Supportato con il proxy Envoy configurato per gestire il traffico HTTP(S), TCP o gRPC | Supportato con gRPC senza proxy |
---|---|---|
Selezione del servizio in base alle suddivisioni del traffico basate sul peso | ✔ | ✔ |
Interruzione del circuito | ✔ | ✔ Solo maxRequests |
Gestione della capacità di servizi e backend
Cloud Service Mesh tiene conto della capacità del servizio e del backend per promuovere la distribuzione ottimale del traffico tra i backend dei tuoi servizi. Cloud Service Mesh è integrato con l'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 (MIG). | ✔ |
Capacità manuale e override per le istanze VM e container nei gruppi di istanze gestite e nei gruppi di endpoint di rete in base alla tasso di richieste. | ✔ |
Scarico manuale della capacità. | ✔ |
Failover
I carichi di lavoro aziendali in genere si basano su deployment ad alta disponibilità per migliorare l'uptime del servizio. Cloud Service Mesh supporta questi tipi di deployment abilitando la ridondanza multizona/multiregionale.
Funzionalità | Supportato |
---|---|
Failover automatico a un'altra zona all'interno della stessa regione con capacità di backend integra. | ✔ |
Failover automatico alla regione più vicina con capacità di backend integra. | ✔ |
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à.
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 della richiesta configurabile (HTTP, HTTPS, HTTP/2) | ✔ |
Stringa o percorso della richiesta 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 la tuamesh di servizih. Le seguenti funzionalità sono fornite per impostazione predefinita o configurate nel tuo data plane. Il codice dell'applicazione non deve fare nulla di speciale per generare questi dati di osservabilità.
La dashboard sullo stato del servizio è disponibile con i servizi gRPC senza proxy, ma non puoi configurare la registrazione e la tracciabilità del piano dati. Cloud Service Mesh non può configurare il logging e la tracciabilità di un'applicazione gRPC. Puoi attivare la registrazione e la tracciabilità seguendo le istruzioni nelle sezioni di risoluzione dei problemi o nelle guide gRPC disponibili sui siti open source. Ad esempio, per attivare la raccolta e il tracciamento delle metriche nei servizi gRPC senza proxy, puoi utilizzare OpenTelemetry.
Funzionalità | Supportato con i proxy | Supportato con i servizi gRPC proxyless |
---|---|---|
Dashboard Integrità dei servizi | ✔ | ✔ |
Logging del piano dati | ✔ | ✔ |
Tracciamento del piano dati | ✔ | ✔ |
Affinità sessione
Le comunicazioni client-server spesso comportano più richieste successive. In questo caso, è utile indirizzare le richieste successive del client allo stesso backend o server. Cloud Service Mesh offre opzioni configurabili per inviare richieste da un determinato client, nel miglior modo possibile, allo stesso backend, a condizione che sia integro e abbia capacità. Per saperne di più, consulta la panoramica dei servizi di backend.
Funzionalità | Supportato con i proxy HTTP(S) | Supportato con i proxy TCP | Supportato con i servizi gRPC proxyless |
---|---|---|---|
Indirizzo IP client | ✔ | ✔ | |
Cookie HTTP | ✔ | N/D | |
Intestazione HTTP | ✔ | N/D | ✔ |
Cookie generato (imposta il cookie client alla prima richiesta) | ✔ | N/D |
Topologie di rete
Cloud Service Mesh supporta topologie di rete comuni. Google Cloud
Funzionalità | 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, vedi 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 casi d'uso e pattern di architettura per i servizi gRPC senza proxy, consulta la Panoramica dei servizi gRPC senza proxy.