Panoramica di Cloud Service Mesh
Cloud Service Mesh è un mesh di servizi disponibile su Google Cloud e nelle piattaforme GKE supportate. Supporta i servizi in esecuzione su diverse infrastrutture di computing. È controllato da API progettate per Google Cloud, per l'open source o per entrambi.
Questo documento è rivolto ai nuovi utenti di Cloud Service Mesh o ai clienti di lunga data di Anthos Service Mesh o Traffic Director.
Che cos'è un mesh di servizi?
Un mesh di servizi è un'architettura che consente una comunicazione gestita, osservabile e sicura tra i tuoi servizi, semplificando la creazione di applicazioni aziendali affidabili composte da molti microservizi sull'infrastruttura che preferisci. I mesh di servizi gestiscono i requisiti comuni per l'esecuzione di un servizio, come monitoraggio, networking e sicurezza, con strumenti coerenti e potenti, consentendo agli sviluppatori e agli operatori di servizi di concentrarsi più facilmente sulla creazione e sulla gestione di applicazioni eccellenti per i propri utenti.
Dal punto di vista dell'architettura, un mesh di servizi è costituito da uno o più control plane e da un piano dati. Il mesh di servizi monitora tutto il traffico in entrata e in uscita dai tuoi servizi. Su Kubernetes, un pattern sidecar esegue il deployment di un proxy ai microservizi nel mesh. Su Compute Engine, puoi eseguire il deployment dei proxy sulle VM o utilizzare gRPC senza proxy per il piano dati.
Questo pattern separa la logica dell'applicazione o la logica di business dalle funzioni di rete e consente agli sviluppatori di concentrarsi sulle funzionalità di cui l'attività ha bisogno. I mesh di servizi consentono inoltre ai team operativi e di sviluppo di separare il proprio lavoro l'uno dall'altro.
L'architettura delle applicazioni come microservizi offre numerosi vantaggi. Tuttavia, i workload possono diventare più complessi e frammentati in funzione della scalabilità. Il mesh di servizi aiuta a risolvere il problema della frammentazione e semplifica la gestione dei microservizi.
Che cos'è Cloud Service Mesh?
Cloud Service Mesh è la soluzione di Google per Google Cloude per gli ambienti GKE Enterprise supportati.
- In Google Cloud: Cloud Service Mesh fornisce API specifiche dell'infrastruttura di computing su cui vengono eseguiti i workload.
- Per i workload Compute Engine, Cloud Service Mesh utilizza le API di routing dei servizi specifiche perGoogle Cloud.
- Per i workload di Google Kubernetes Engine (GKE), Cloud Service Mesh utilizza le API Istio open source.
- Fuori da Google Cloud: con Distributed Cloud o GKE multi-cloud, Cloud Service Mesh supporta le API Istio per i workload di Kubernetes.
Che sia all'interno o all'esterno di Google Cloud, Cloud Service Mesh ti consente di gestire, osservare e proteggere i servizi senza dover modificare il codice dell'applicazione.
Cloud Service Mesh riduce il lavoro manuale dei team dedicati alle operazioni e allo sviluppo semplificando la fornitura di servizi, dalla gestione del traffico alla telemetria mesh, fino alla protezione delle comunicazioni tra i servizi. Il mesh di servizi completamente gestito di Google ti consente di gestire ambienti complessi ottenendo i vantaggi che promettono.
Funzionalità
Cloud Service Mesh offre una suite di funzionalità per la gestione del traffico, l'osservabilità, la telemetria e la sicurezza.
Gestione del traffico
Cloud Service Mesh controlla il flusso di traffico tra i servizi nel mesh, in entrata nel mesh e in uscita verso servizi esterni. Devi configurare ed eseguire il deployment delle risorse necessarie per gestire questo traffico a livello di applicazione (L7). Ad esempio, puoi eseguire queste operazioni:
- Utilizzare Service Discovery.
- Configurare il bilanciamento del carico tra i servizi.
- Creare deployment canary e blu/verde.
- Controllare con precisione il routing per i tuoi servizi.
- Configurare gli interruttori di sicurezza.
Cloud Service Mesh gestisce un elenco di tutti i servizi presenti nel mesh in base al nome e ai rispettivi endpoint. Questo elenco ha lo scopo di gestire il flusso di traffico (ad esempio, gli indirizzi IP dei pod Kubernetes o gli indirizzi IP delle VM Compute Engine in un gruppo di istanze gestite). Utilizzando questo registro di servizi ed eseguendo i proxy affiancati ai servizi, il mesh può indirizzare il traffico all'endpoint appropriato. I workload gRPC senza proxy possono essere utilizzati anche in parallelo con i workload che utilizzano proxy Envoy.
Insight sull'osservabilità
L'interfaccia utente di Cloud Service Mesh nella console Google Cloud fornisce informazioni dettagliate sul tuo mesh di servizi. Queste metriche vengono generate automaticamente per i workload configurati tramite le API Istio.
- Le metriche e i log del servizio per il traffico HTTP all'interno del cluster GKE del mesh vengono importati automaticamente in Google Cloud.
- Le dashboard dei servizi preconfigurate ti forniscono le informazioni necessarie per comprendere i tuoi servizi.
- La telemetria approfondita, basata su Cloud Monitoring, Cloud Logging e Cloud Trace, ti consente di analizzare in dettaglio le metriche e i log del servizio. Puoi filtrare e segmentare i dati in base a un'ampia gamma di attributi.
- Le relazioni tra servizi ti aiutano a comprendere a colpo d'occhio le dipendenze tra servizi e a vedere chi si connette a ciascun servizio.
- Puoi visualizzare rapidamente non solo la security posture della comunicazione del tuo servizio, ma anche le sue relazioni con altri servizi.
- Gli obiettivi del livello di servizio (SLO) ti forniscono insight sullo stato di integrità dei tuoi servizi. Puoi definire uno SLO e un avviso in base ai tuoi standard di integrità del servizio.
Scopri di più sulle funzionalità di osservabilità di Cloud Service Mesh nella guida all'osservabilità.
Vantaggi per la sicurezza
Cloud Service Mesh offre numerosi vantaggi in termini di sicurezza.
- Riduce il rischio di attacchi di tipo replay o di furto d'identità che utilizzano credenziali rubate. Cloud Service Mesh si basa su certificati mTLS (mutual TLS) per autenticare i peer, anziché su token di connessione come i token web JSON (JWT).
- Garantisce la crittografia in transito. L'utilizzo di mTLS per l'autenticazione garantisce inoltre che tutte le comunicazioni TCP vengano criptate durante il transito.
- Riduce il rischio che client non autorizzati possano accedere a un servizio che contiene dati sensibili, indipendentemente dalla posizione di rete del client e dalle credenziali a livello di applicazione.
- Riduce il rischio di violazione dei dati utente all'interno della rete di produzione. Puoi avere la garanzia che gli addetti ai lavori possano accedere ai dati sensibili solo tramite client autorizzati.
- Identifica i client che hanno eseguito l'accesso a un servizio contenente dati sensibili. La registrazione degli accessi di Cloud Service Mesh acquisisce l'identità mTLS del client oltre all'indirizzo IP.
- Tutti i componenti e i proxy del piano di controllo in-cluster sono creati con moduli di crittografia convalidati FIPS 140-2.
Scopri di più sui vantaggi e sulle funzionalità di sicurezza di Service Mesh nella Guida alla sicurezza.
Opzioni di deployment
Cloud Service Mesh ti offre le seguenti opzioni di deployment:
- All'interno di Google Cloud
- Cloud Service Mesh gestito: control plane e piano dati gestiti per GKE (opzione consigliata)
- Cloud Service Mesh gestito: control plane e piano dati gestiti per Compute Engine con VM (opzione consigliata)
- Control plane in-cluster per GKE con le API Istio (opzione non consigliata)
- Al di fuori di Google Cloud
- Control plane in-cluster per Kubernetes con le API Istio
Cloud Service Mesh gestito
Cloud Service Mesh gestito è costituito dal control plane gestito per tutte le infrastrutture e dal piano dati gestito per GKE. Con Cloud Service Mesh gestito, Google gestisce upgrade, scalabilità e sicurezza al posto tuo, riducendo al minimo la manutenzione manuale da parte dell'utente. Questa gestione copre il control plane, il piano dati e le risorse correlate.
Implementazione del piano dati
Se utilizzi le API Google Cloud , il tuo piano dati può essere fornito dai proxy Envoy o dalle applicazioni gRPC senza proxy. Se stai aggiornando un'applicazione esistente, l'approccio basato su sidecar consente l'integrazione nel mesh senza modificare l'applicazione. Se vuoi evitare l'overhead dell'esecuzione di un sidecar, puoi aggiornare l'applicazione in modo che utilizzi gRPC.
Sia i proxy Envoy che gRPC senza proxy utilizzano l'API xDS per connettersi al control plane. Se utilizzi gRPC senza proxy, puoi scegliere tra i linguaggi supportati per le tue applicazioni, tra cui Go, C++, Java e Python.
Se utilizzi le API Istio open source, il piano dati viene fornito dai proxy Envoy.
Implementazione del control plane
Il control plane di Cloud Service Mesh dipende dal fatto che la tua configurazione sia all'interno o al di fuori di Google Cloud e dal fatto che tu sia o meno un nuovo cliente.
Implementazione del control plane per gli utenti esistenti
- Se la tua configurazione è al di fuori di Google Cloud, stai utilizzando il control plane non gestito in-cluster di Cloud Service Mesh. Per saperne di più, consulta Funzionalità supportate del control plane in-cluster.
- Se eri un utente di Anthos Service Mesh su Google Cloud, stai utilizzando le API Istio. Per saperne di più, consulta Funzionalità supportate che utilizzano le API Istio (control plane gestito).
- Se eri un utente di Traffic Director, utilizzi il control plane gestito di Cloud Service Mesh con le API Google Cloud . Per saperne di più, consulta Funzionalità supportate di Cloud Service Mesh con le API Google Cloud .
Per determinare il control plane attuale, consulta Identifica l'implementazione del control plane. Per saperne di più sui control plane e sulla relativa migrazione, consulta Panoramica del control plane gestito per i clienti di lunga data.
Implementazione del control plane per i nuovi utenti
- Se stai pianificando una configurazione al di fuori diGoogle Cloud , scegli il control plane non gestito in-cluster di Cloud Service Mesh. Per saperne di più, consulta Funzionalità supportate del control plane in-cluster.
- Se stai pianificando una configurazione all'interno diGoogle Cloud su Kubernetes, scegli le API Istio, ma il tuo control plane utilizza l'implementazione di Traffic Director, tranne in alcuni casi descritti in Che cosa determina l'implementazione del control plane. Per saperne di più, consulta Funzionalità supportate che utilizzano le API Istio (control plane gestito).
- Se stai pianificando una configurazione all'interno diGoogle Cloud sulle VM Compute Engine, il tuo control plane utilizza il control plane globale multi-tenant, noto come implementazione di Traffic Director. Per saperne di più, consulta Funzionalità supportate di Cloud Service Mesh con le API Google Cloud .
Migrazione del control plane
Se sei cliente di lunga data di Anthos Service Mesh e utilizzi le API Istio, verrà avviata la migrazione dei tuoi cluster al control plane di Traffic Director. Puoi continuare a utilizzare le API Istio per la configurazione.
Per determinare se i tuoi cluster utilizzano ancora il control plane Istio o se ne è stata eseguita la migrazione al nuovo control plane globale, consulta Identifica l'implementazione del control plane.
Passaggi successivi
- Se sei un utente di lunga data, consulta Control plane gestito per i clienti di lunga data.
- Se prevedi di eseguire la configurazione con GKE, consulta Esegui il provisioning di un control plane.
- Se prevedi di eseguire la configurazione con Compute Engine e le VM, consulta Preparati per la configurazione delle API di routing dei servizi con Envoy e workload senza proxy.