Panoramica di Cloud Service Mesh
Cloud Service Mesh è un service mesh disponibile su Google Cloud e sulle piattaforme GKE Enterprise supportate. Supporta i servizi in esecuzione su una serie di infrastruttura di calcolo. Cloud Service Mesh è controllato da API progettate per Google Cloud, per open source o per entrambi.
Questo documento è rivolto a te se sei un nuovo utente di Cloud Service Mesh o sei ancora cliente di Anthos Service Mesh o Traffic Director.
Che cos'è un service mesh?
Un mesh di servizi è un'architettura che consente comunicazioni gestite, osservabili e sicure tra i tuoi servizi, semplificando la creazione di applicazioni aziendali solide composte da molti microservizi nell'infrastruttura scelta. 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 sulla creazione e sulla gestione di applicazioni straordinarie per i propri utenti.
Dal punto di vista architetturale, un mesh di servizi è costituito da uno o più piani di controllo e da una piano dati. Il mesh di servizi monitora tutto il traffico in entrata e in uscita dai tuoi servizi. In Kubernetes, un proxy viene disegnato da un pattern sidecar per i microservizi nel mesh. Su Compute Engine, puoi eseguire il deployment dei proxy sulle VM oppure utilizza gRPC senza proxy per il piano dati.
Questo pattern separa l'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 i team di sviluppo disaccoppiano il loro lavoro l'uno dall'altro.
L'architettura delle applicazioni come microservizi offre molti vantaggi. Tuttavia, i carichi di lavoro possono diventare più complessi e frammentati man mano che vengono scalati. Servizio aiuta a risolvere il problema di frammentazione e semplifica la gestione di microservizi.
Che cos'è Cloud Service Mesh?
Cloud Service Mesh è la soluzione di Google per Google Cloud e ambienti GKE Enterprise supportati.
- Su Google Cloud: Cloud Service Mesh fornisce API che sono
specifici per l'infrastruttura di computing su cui
vengono eseguiti i carichi di lavoro.
- Per i carichi di lavoro di Compute Engine, Cloud Service Mesh utilizza API di routing dei servizi specifiche di Google Cloud.
- Per i carichi di lavoro Google Kubernetes Engine (GKE), Cloud Service Mesh utilizza le API Istio open source.
- Al di fuori di Google Cloud: con Distributed Cloud o GKE multi-cloud, Cloud Service Mesh supporta le API Istio per Kubernetes carichi di lavoro con scale out impegnativi.
Sia all'interno che all'esterno di Google Cloud, Cloud Service Mesh ti consente gestire, osservare e proteggere i servizi senza dover modificare il codice dell'applicazione.
Cloud Service Mesh riduce il lavoro manuale per le operazioni e lo sviluppo semplificando la fornitura dei servizi, dalla gestione del traffico alla rete per proteggere le comunicazioni tra i servizi. Il servizio completamente gestito di Google mesh di servizi consente di gestire ambienti complessi e di godere dei vantaggi la promessa.
Funzionalità
Cloud Service Mesh include una suite di funzionalità per la gestione del traffico, osservabilità, telemetria e sicurezza.
Gestione del traffico
Cloud Service Mesh controlla il flusso di traffico tra i servizi nel dalla rete mesh (in entrata) e in servizi esterni (in uscita). Configura e implementa le risorse per gestire questo traffico a livello di applicazione (L7). Ad esempio, puoi eseguire le seguenti operazioni:
- Utilizza Service Discovery.
- Configurare il bilanciamento del carico tra i servizi.
- Crea deployment canary e blu/verde.
- Controlla con precisione il routing per i tuoi servizi.
- Configura gli interruttori di sicurezza.
Cloud Service Mesh gestisce un elenco di tutti i servizi nel mesh per nome e per i rispettivi endpoint. Conserva questo elenco per gestire il flusso (ad esempio, indirizzi IP dei pod Kubernetes o indirizzi IP alle VM di Compute Engine in un gruppo di istanze gestite). Utilizzando il registro di servizio ed eseguendo i proxy uno accanto all'altro con può indirizzare il traffico all'endpoint appropriato. I carichi di lavoro gRPC senza proxy possono essere utilizzati anche in parallelo con i carichi di lavoro che utilizzano i proxy Envoy.
Approfondimenti sull'osservabilità
Interfaccia utente di Cloud Service Mesh nella console Google Cloud fornisce insight sulla tua rete mesh di servizi. Queste metriche vengono automaticamente generati per i carichi di lavoro configurati tramite le API Istio.
- Metriche di servizio e log per il traffico HTTP all'interno dell'infrastruttura GKE del tuo mesh vengono importati automaticamente in Google Cloud.
- Le dashboard di servizio preconfigurate ti forniscono le informazioni di cui hai bisogno a comprendere i tuoi servizi.
- La telemetria approfondita, basata su Cloud Monitoring, Cloud Logging e Cloud Trace, ti consente di approfondire le metriche e i log dei tuoi servizi. Puoi filtrare e segmentare i dati in base a una vasta gamma di attributi.
- Le relazioni tra servizi ti aiutano a comprendere a colpo d'occhio le dipendenze tra servizi e chi si connette a ciascun servizio.
- Potete vedere rapidamente il livello di sicurezza della comunicazione, non solo ma le sue relazioni con altri servizi.
- Gli obiettivi del livello di servizio (SLO) ti offrono insight sull'integrità i servizi di machine learning. Puoi definire uno SLO e un avviso in base ai tuoi standard di salute del servizio.
Scopri di più sulle funzionalità di osservabilità di Cloud Service Mesh nel nostro Guida all'osservabilità.
Vantaggi per la sicurezza
Cloud Service Mesh offre molti vantaggi in termini di sicurezza.
- Riduce il rischio di attacchi di ripetizione o di impersonificazione che utilizzano le credenziali rubate. Cloud Service Mesh si basa su certificati TLS reciproci (mTLS) per autenticare i peer, anziché su token bearer come i token web JSON (JWT).
- Assicura la crittografia in transito. L'utilizzo di mTLS per l'autenticazione garantisce inoltre che tutte le comunicazioni TCP siano criptate in transito.
- Mitiga il rischio che client non autorizzati possano accedere a un servizio con 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 tua rete di produzione. Puoi assicurarti 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 con dati sensibili. Cloud Service Mesh il logging degli accessi acquisisce l'identità mTLS del client, oltre al Indirizzo IP.
- Tutti i componenti 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 implementazione
In Cloud Service Mesh hai le seguenti opzioni di deployment:
- Su Google Cloud
- Cloud Service Mesh gestito: piano di controllo e di dati gestito per GKE (opzione consigliata)
- Managed Cloud Service Mesh - Piano dati e controllo gestito per Compute Engine con VM (consigliato)
- Piano di controllo nel cluster per GKE con API Istio (sconsigliato)
- Al di fuori di Google Cloud
- Piano di controllo nel cluster per Kubernetes con API Istio
Cloud Service Mesh gestito
Cloud Service Mesh gestito è costituito dal piano di controllo gestito per tutte le infrastrutture e dal piano dati gestito per GKE. Con Cloud Service Mesh gestito, Google gestisce gli upgrade, la scalabilità e la sicurezza al posto tuo, riducendo al minimo la manutenzione manuale da parte dell'utente. Questo copre il controllo il piano dati, il piano dati e le risorse correlate.
Implementazione del piano dati
Se utilizzi le API Google Cloud, il tuo piano dati può essere fornito da Envoy da proxy o da applicazioni gRPC senza proxy. Se stai aggiornando un modello esistente un'applicazione, 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.
I proxy Envoy e gRPC senza proxy utilizzano entrambi l'API xDS per connettersi al controllo aereo. Se utilizzi gRPC senza proxy, hai a disposizione una scelta di linguaggi supportati per le tue applicazioni, tra cui Go, C++, Java e Python.
Se utilizzi le API Istio open source, il piano dati è fornito dai proxy Envoy.
Implementazione del piano di controllo
Il piano di controllo di Cloud Service Mesh dipende dal fatto che le tue risorse sia on sia fuori da Google Cloud e sia che tu sia un al cliente.
Implementazione del piano di controllo per gli utenti esistenti
- Se la tua configurazione non è Google Cloud, utilizzi Piano di controllo non gestito nel cluster di Cloud Service Mesh. Per maggiori informazioni, consulta Funzionalità supportate dal 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 mediante le API Istio (control plane gestito).
- Se eri un utente di Traffic Director, utilizzi il piano di controllo gestito di Cloud Service Mesh con le API Google Cloud. Per ulteriori informazioni, consulta Funzionalità supportate di Cloud Service Mesh con le API Google Cloud.
Per determinare il piano di controllo attuale, vedi Identificare l'implementazione del piano di controllo. Per ulteriori informazioni sui control plane e sulla migrazione del control plane, consulta la Panoramica del control plane gestito per i clienti di lunga data.
Implementazione del piano di controllo per i nuovi utenti
- Se stai pianificando una configurazione esterna a Google Cloud, scegliendo il piano di controllo non gestito nel cluster di Cloud Service Mesh. Per saperne di più, consulta Funzionalità supportate dal piano di controllo in-cluster.
- Se stai pianificando una configurazione su Google Cloud su Kubernetes, tu scegli le API Istio, ma il tuo piano di controllo utilizza l'impostazione Director, tranne in alcuni casi descritti in Che cosa determina l'implementazione del piano di controllo. Per ulteriori dettagli, consulta Funzionalità supportate che utilizzano le API Istio (control plane gestito).
- Se stai pianificando una configurazione su Google Cloud Nelle VM di Compute Engine, il piano di controllo utilizza il piano di controllo, noto come implementazione di Traffic Director. Per ulteriori informazioni, consulta Funzionalità supportate di Cloud Service Mesh con le API Google Cloud.
Migrazione del piano di controllo
Se sei un cliente Anthos Service Mesh continua e utilizzi le API Istio, il tuo di cluster avvierà la migrazione al piano di controllo Traffic Director. Puoi continuare a utilizzare le API Istio per la configurazione.
Per determinare se i tuoi cluster utilizzano ancora il piano di controllo Istio o se è stata eseguita la migrazione al nuovo piano di controllo globale, leggi Identificare l'implementazione del piano di controllo.
Passaggi successivi
- Se sei un utente continuativo, leggi Piano di controllo gestito per i clienti continui.
- Se prevedi di eseguire la configurazione con GKE, leggi Eseguire il provisioning di un piano di controllo.
- Se prevedi di eseguire la configurazione con Compute Engine e VM, leggi Prepararsi alla configurazione delle API di routing dei servizi con Envoy e carichi di lavoro proxyless.