Funzionalità supportate di 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 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 un 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 dei servizi e di non creare nuovi implementazioni utilizzando le API di bilanciamento del carico.

Versione xDS supportata

Cloud Service Mesh utilizza le API del control plane xDS open source per configurare i client Envoy e gRPC senza proxy. Questi client agiscono per conto del codice dell'applicazione per fornire le funzionalità di networking delle applicazioni di Cloud Service Mesh.

È supportata solo la versione 3 di xDS. Esegui la migrazione a xDS v3 se utilizzi xDS v2. Per informazioni su come eseguire la migrazione, consulta 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 contenitore di Google Kubernetes Engine (GKE)
Istanze container Kubernetes su Compute Engine

Gestione dei servizi

I servizi in un mesh configurati da Cloud Service Mesh beneficiano di quanto segue:

  • Service Discovery. Quando un'applicazione nel tuo mesh vuole raggiungere un'altra applicazione, può chiamare il servizio per nome.

  • Scalabilità automatica del backend. Le istanze che eseguono il codice dell'applicazione aumentano o diminuiscono dinamicamente in base alle tue esigenze.

  • Registrazione automatica degli endpoint. Quando vengono create o rimosse nuove istanze, queste vengono associate automaticamente al tuo servizio.

Funzionalità Supportato
Deployment automatico di proxy sidecar per le VM di Compute Engine
Inserimento automatico di proxy sidecar per i pod GKE
Discovery dei servizi in base al nome host
Scalabilità automatica delle istanze in base all'utilizzo della CPU
Scalabilità automatica delle istanze in base al carico del traffico/alla capacità di servizio
(solo VM Compute Engine in 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 i pod/le istanze contenitore GKE
API per aggiungere o rimuovere endpoint in modo programmatico

Endpoint per il traffico del piano dati

I microservizi utilizzano il piano dati per raggiungere i servizi all'interno e al di fuori del tuo mesh. Cloud Service Mesh ti consente di separare la logica di 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 appartenenti al mesh sono quelle che utilizzano il piano dati gestito da Cloud Service Mesh per comunicare con altri servizi. Queste applicazioni possono inviare traffico ai servizi in-mesh e ai servizi esterni al 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

Topologie del piano dati

Nel modello di mesh di servizi, le applicazioni utilizzano un piano dati per comunicare. Questo piano di dati è spesso costituito da proxy sidecar di cui è stato eseguito il deployment insieme alle tue applicazioni. Cloud Service Mesh è estremamente flessibile e supporta topologie di data plane adatte alle tue esigenze di networking dei servizi.

Funzionalità Supportato
Proxy sidecar in esecuzione insieme alle applicazioni
Applicazioni gRPC senza proxy
Proxy intermedi tra due applicazioni in una mesh
Proxy perimetrali al confine della rete mesh
Mesh che copre più cluster GKE e/o VM Compute Engine in più regioni

Configurazione basata su API e programmatica

Tutta la configurazione è esposta tramite la nostra API REST e la dashboard, consentendoti di automatizzare le modifiche in team di grandi dimensioni e di gestirle 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 di Terraform

Supporto linguistico con applicazioni gRPC proxyless

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 da 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

Routing e gestione del traffico

Cloud Service Mesh supporta criteri di gestione del traffico avanzati che puoi utilizzare per indirizzare, suddividere e modellare il traffico mentre passa attraverso il piano dati.

Alcune funzionalità avanzate di gestione del traffico non sono disponibili con i servizi gRPC proxyless e nessuna delle funzionalità avanzate di gestione 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 in base alla 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 ogni tentativo
Reindirizzamenti
Ricostruzioni dell'URI
Trasformazioni delle intestazioni di richiesta/risposta
Suddivisione del traffico
Mirroring del traffico
Rilevamento outlier
Interruttore di sicurezza
Solo maxRequests
Durata massima dello stream

Bilanciamento del carico

Puoi configurare metodi e algoritmi di bilanciamento del carico avanzati per il bilanciamento del carico a livello di servizio, gruppo di backend (gruppi di istanze o gruppi di endpoint di rete) e livelli di 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 (preferibilmente la regione più vicina con capacità di backend efficiente)
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 in base all'utilizzo (solo VM in 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 ciascun criterio integrato, consulta localityLbPolicy.

  • Utilizza un unico criterio integrato. Scegli tra le seguenti opzioni:

    • Round robin
    • Least request
    • Hash circolare
    • Casuale
    • Destinazione originale
    • Maglev

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 in base al peso
Interruttore di sicurezza
Solo maxRequests

Gestione della capacità di servizi e backend

Cloud Service Mesh prende in considerazione la capacità dei servizi e dei backend per garantire una distribuzione ottimale del traffico tra i backend dei 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 sostituzioni per le istanze VM e container nei gruppi di istanze gestite (MIG) e nei gruppi di endpoint di rete (NEG) in base alla tasso di richieste.
Scarico manuale della capacità.

Failover

I carichi di lavoro aziendali in genere si basano su implementazioni ad alta disponibilità per garantire il tempo di attività del servizio. Cloud Service Mesh supporta questi tipi di deployment attivando la ridondanza multizona/multiregione.

Funzionalità Supportato
Failover automatico a un'altra zona all'interno della stessa regione con capacità di backend efficiente.
Failover automatico alla regione più vicina con capacità di backend integra.

Controlli di integrità

Cloud Service Mesh supporta i controlli di integrità centralizzati 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:

  • Porta
  • Controlla gli intervalli
  • Timeout
  • Soglie di stato integro e non integro
Percorso 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 su 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 speciale per generare questi dati di osservabilità.

La dashboard dell'integrità del servizio è disponibile con i servizi gRPC proxyless, ma non puoi configurare il logging e il monitoraggio del piano dati. Cloud Service Mesh non può configurare il logging e il monitoraggio di un'applicazione gRPC. Puoi attivare il logging e il monitoraggio seguendo le istruzioni riportate nelle sezioni sulla risoluzione dei problemi o nelle guide gRPC disponibili sui siti open source. Ad esempio, per attivare la raccolta e il monitoraggio delle metriche nei servizi gRPC senza proxy, puoi utilizzare Opencensus.

Funzionalità Supportato con i proxy Supportato con servizi gRPC proxyless
Dashboard Integrità dei servizi
Logging del piano dati
Monitoraggio 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 fornisce opzioni configurabili per inviare richieste da un determinato client, secondo il criterio del "best effort", allo stesso backend, a condizione che il backend sia integro e abbia capacità. Per ulteriori informazioni, consulta la Panoramica dei servizi di backend.

Funzionalità Supportato con proxy HTTP(S) Supportato con proxy TCP Supportato con servizi gRPC proxyless
Indirizzo IP del 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 topologia di rete Google Cloud comuni.

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 (singola rete condivisa tra più progetti Google Cloud)

Per una spiegazione dettagliata di come il VPC condiviso è supportato con 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