Panoramica di Cloud Service Mesh

Questo documento è rivolto agli amministratori di rete e ai proprietari di servizi che vogliono acquisire familiarità con Cloud Service Mesh e le sue funzionalità. Questo è un documento legacy che si applica alle configurazioni che utilizzano le API di bilanciamento del carico.

Cloud Service Mesh è un piano di controllo gestito per il networking delle applicazioni. Cloud Service Mesh ti consente di fornire servizi globali ad alta disponibilità con avanzate di funzionalità di networking delle applicazioni, come la gestione del traffico osservabilità.

Man mano che il numero di servizi e microservizi nel tuo deployment aumenta, puoi in genere iniziano ad affrontare problemi comuni di networking delle applicazioni, come segue:

  • Come posso rendere resilienti i miei servizi?
  • Come faccio a ricevere traffico per i miei servizi e come fanno i servizi a conoscere e comunicare tra loro?
  • Come faccio a capire cosa succede quando comunicano i miei servizi tra loro?
  • Come faccio ad aggiornare i miei servizi senza rischiare un'interruzione?
  • Come gestisco l'infrastruttura che rende possibile il mio deployment?
I servizi devono comunicare tra loro.
I servizi devono comunicare tra loro (fai clic per ingrandire)

Cloud Service Mesh ti aiuta a risolvere questo tipo di sfide in un ambiente moderno, un deployment basato sui servizi. Cloud Service Mesh si basa su strumenti gestiti da Google Cloud in modo da non dover gestire la tua infrastruttura. Tu sulla distribuzione del codice dell'applicazione in grado di risolvere i problemi aziendali consentendo a Cloud Service Mesh di gestire le complessità di networking delle applicazioni.

Cloud Service Mesh

Un modello comune per risolvere le sfide di networking delle applicazioni è utilizzare un mesh di servizi. Cloud Service Mesh supporta mesh di servizi e altre di deployment che soddisfino le tue esigenze.

Un tipico mesh di servizi.
Un tipico mesh di servizi (fai clic per ingrandire)

In un tipico mesh di servizi, si verifica quanto segue:

  • Esegui il deployment dei tuoi servizi in un cluster Kubernetes.
  • Ciascuno dei servizi I pod hanno un proxy dedicato (di solito Envoy) in esecuzione come un proxy collaterale.
  • Ogni proxy sidecar comunica con l'infrastruttura di rete (un piano di controllo) installato nel cluster. Il piano di controllo comunica ai proxy sidecar su servizi, endpoint e criteri nel tuo mesh di servizi.
  • Quando un pod invia o riceve una richiesta, questa va al proxy sidecar del pod. Il proxy sidecar gestisce la richiesta, ad esempio inviandolo alla destinazione prevista.

Nei diagrammi in questo documento e in altri documenti di Cloud Service Mesh, i sei icone rosa laterali rappresentano i proxy. Il piano di controllo è collegato e fornisce le informazioni necessarie ai proxy per gestire le richieste. Frecce tra le caselle mostrano i flussi di traffico. Ad esempio, il codice dell'applicazione in Service A invia una richiesta. Il proxy gestisce la richiesta e la inoltra a Service B.

Questo modello ti consente di spostare la logica di networking all'esterno dell'applicazione le API nel tuo codice. Puoi concentrarti sulla fornitura di valore aziendale permettendo per gestire il networking delle applicazioni.

In che modo Cloud Service Mesh è diverso

Cloud Service Mesh funziona in modo simile a questo modello, ma è diverso nelle in molti modi diversi. Tutto inizia dal fatto che Cloud Service Mesh è un Servizio gestito da Google Cloud. Non devi installarla, non viene eseguita nel tuo senza necessità di gestione.

Nel diagramma seguente, Cloud Service Mesh è il piano di controllo. Esistono quattro in questo cluster Kubernetes, ciascuno con proxy sidecar connessa a Cloud Service Mesh. Cloud Service Mesh fornisce le informazioni i proxy devono instradare le richieste. Ad esempio, il codice dell'applicazione su un pod appartiene a Service A invia una richiesta. Il proxy sidecar in esecuzione accanto a questo Il pod gestisce la richiesta e la instrada a un pod appartenente a Service B.

Esempio di mesh di servizi con Cloud Service Mesh.
Esempio di mesh di servizi con Cloud Service Mesh (fai clic per ingrandire)

Oltre il mesh di servizi

Cloud Service Mesh supporta più tipi di deployment rispetto a un tipico mesh di servizi.

Kubernetes multi-cluster

Con Cloud Service Mesh, il networking delle applicazioni funziona su cluster Kubernetes. Nel diagramma seguente, Cloud Service Mesh fornisce il per i cluster Kubernetes in us-central1 e europe-west1. Le richieste possono essere indirizzate tra i tre servizi in us-central1, tra due servizi in europe-west1 e tra servizi nei due cluster.

Esempio di Kubernetes multi-cluster con Cloud Service Mesh.
Esempio di Kubernetes multi-cluster con Cloud Service Mesh (fai clic per ingrandire)

Il tuo mesh di servizi può estendersi su più cluster Kubernetes in più regioni di Google Cloud. I servizi in un cluster possono comunicare con i servizi in un altro cluster. Puoi anche avere servizi costituiti da pod in più cluster.

Con il bilanciamento del carico globale basato sulla prossimità di Cloud Service Mesh, le richieste destinato a Service B, vai al pod più vicino in grado di gestire la richiesta. Tu e un failover senza interruzioni, Se un pod non è attivo, la richiesta esegue automaticamente il failover su un altro pod in grado di gestire la richiesta, anche questo pod si trova in un cluster Kubernetes diverso.

Macchine virtuali

Kubernetes sta diventando sempre più popolare, ma viene eseguito il deployment di molti carichi di lavoro in di macchine virtuali (VM). Cloud Service Mesh risolve il networking delle applicazioni anche per questi carichi di lavoro; i carichi di lavoro basati su VM interagiscono con per i carichi di lavoro basati su Kubernetes.

Nel diagramma seguente, il traffico entra nel deployment tramite un bilanciatore del carico delle applicazioni esterno. Viene instradato a Service A nel cluster Kubernetes in asia-southeast1 e a Service D su una VM in europe-west1.

Un esempio di VM e Kubernetes con Cloud Service Mesh.
Un esempio di VM e Kubernetes con Cloud Service Mesh (fai clic per ingrandire)

Google fornisce un meccanismo senza soluzione di continuità per configurare i carichi di lavoro basati su VM con Cloud Service Mesh. Aggiungi un flag solo al modello di istanza VM di Compute Engine, e Google gestisce la configurazione dell'infrastruttura. Questa configurazione include l'installazione e configurazione dei proxy che forniscono funzionalità di networking delle applicazioni.

gRPC senza proxy

gRPC è una RPC open source ricca di funzionalità che puoi utilizzare per scrivere microservizi ad alte prestazioni. Con Cloud Service Mesh, puoi sfruttare le funzionalità di networking delle applicazioni (ad esempio Service Discovery, bilanciamento del carico e gestione del traffico) alle applicazioni gRPC. Per ulteriori informazioni, vedi Cloud Service Mesh e gRPC, servizi senza proxy per la rete mesh di servizi.

Nel diagramma seguente, le applicazioni gRPC instradano il traffico ai servizi in base Kubernetes in una regione e ai servizi in esecuzione su VM in diversi regioni. Due di questi servizi includono proxy collaterali e gli altri sono senza proxy.

Un esempio di applicazioni gRPC senza proxy con Cloud Service Mesh.
Un esempio di applicazioni gRPC senza proxy con Cloud Service Mesh (fai clic per ingrandire)

Cloud Service Mesh supporta i servizi gRPC senza proxy. Questi servizi utilizza una versione recente della libreria gRPC open source che supporta xDS su quelle di livello inferiore. Le tue applicazioni gRPC possono connettersi a Cloud Service Mesh con le stesse API xDS usate da Envoy.

Dopo aver connesso le applicazioni, la libreria gRPC si occupa funzioni di networking delle applicazioni come Service Discovery, bilanciamento del carico e la gestione del traffico. Queste funzioni vengono eseguite in modo nativo in gRPC, quindi i servizi i proxy non sono necessari; ecco perché vengono chiamati gRPC senza proxy diverse applicazioni.

Ingress e gateway

Per molti casi d'uso, è necessario [gestire il traffico che ha origine dai clienti che non sono configurati Cloud Service Mesh. Ad esempio, potresti dover far entrare il traffico internet pubblico verso il tuo di microservizi. Potresti anche voler configurare un bilanciatore del carico come che gestisce il traffico da un client prima di inviarlo a una destinazione.

Nel diagramma seguente, un bilanciatore del carico delle applicazioni esterno consente il traffico in entrata per con il traffico indirizzato ai servizi in un cluster Kubernetes. Un il bilanciatore del carico delle applicazioni interno instrada il traffico interno al servizio in esecuzione sulla VM.

Cloud Service Mesh con Cloud Load Balancing per il traffico in entrata.
Cloud Service Mesh con Cloud Load Balancing per il traffico in entrata (fai clic per ingrandire)

Cloud Service Mesh funziona con Cloud Load Balancing per fornire una un'esperienza in entrata gestita. Puoi configurare un bilanciatore del carico esterno o interno, e poi configurare il bilanciatore del carico per inviare traffico ai microservizi. Nel nel diagramma precedente, i client internet pubblici raggiungono i tuoi servizi attraverso Application Load Balancer esterno Clienti come di microservizi ospitati sulla tua rete Virtual Private Cloud (VPC), utilizzano un bilanciatore del carico delle applicazioni interno per raggiungere i tuoi servizi.

Per alcuni casi d'uso, potresti voler configurare Cloud Service Mesh per configurare gateway. Un gateway è essenzialmente un proxy inverso, solitamente Envoy che esegue su una o più VM, che rimane in ascolto delle richieste in entrata, le gestisce e per giungere a una destinazione. La destinazione può essere in qualsiasi regione Google Cloud o un cluster Google Kubernetes Engine (GKE). Può anche essere una destinazione al di fuori di Google Cloud raggiungibile da Google Cloud tramite ibrido per la connettività. Per ulteriori informazioni su quando utilizzare un consulta Traffico in entrata per il tuo mesh.

Nel diagramma seguente, una VM nella regione europe-west1 esegue un proxy che funge da gateway a tre servizi che non eseguono proxy. Traffico sia da un bilanciatore del carico delle applicazioni esterno sia da un bilanciatore del carico delle applicazioni interno viene instradato al gateway e poi ai tre servizi.

Cloud Service Mesh utilizzato per configurare un gateway.
Cloud Service Mesh utilizzato per configurare un gateway (fai clic per ingrandire)

Più ambienti

Che tu disponga di servizi in Google Cloud, on-premise o in altri cloud, tutti questi aspetti, le sfide fondamentali del networking delle applicazioni rimangono in modo analogo. Come ricevi il traffico verso questi servizi? Come funzionano questi servizi comunicare tra loro?

Nel diagramma seguente, Cloud Service Mesh instrada il traffico dai servizi in esecuzione su Google Cloud fino a Service G, in esecuzione in un altro cloud pubblico, e a Service E e Service F, entrambi in esecuzione in un data center on-premise. Service A, Service B e Service C utilizzano Envoy come proxy sidecar, mentre Service D è un servizio gRPC senza proxy.

Cloud Service Mesh utilizzato per la comunicazione tra ambienti.
Cloud Service Mesh utilizzato per la comunicazione tra ambienti (fai clic per ingrandire)

Quando utilizzi Cloud Service Mesh, puoi inviare richieste a destinazioni al di fuori di in Google Cloud. Ciò ti consente di utilizzare Cloud Interconnect o Cloud VPN per instradare privatamente il traffico dai servizi all'interno di Google Cloud ai servizi o gateway in altri ambienti.

Configurazione di Cloud Service Mesh

La configurazione di Cloud Service Mesh prevede due passaggi. Una volta completata la di configurazione, la tua infrastruttura gestisce il networking delle applicazioni Cloud Service Mesh mantiene tutto aggiornato in base alle modifiche apportate al tuo e deployment continuo.

Esegui il deployment delle applicazioni

Il primo è il deployment del codice dell'applicazione in container o VM. Google fornisce meccanismi che consentono di aggiungere un'infrastruttura di networking delle applicazioni (di solito proxy Envoy) alle tue istanze VM e ai tuoi pod. Questa infrastruttura per comunicare con Cloud Service Mesh e scoprire di più sui tuoi servizi.

Configura Cloud Service Mesh

Poi devi configurare i servizi globali e definire la modalità di gestione del traffico gestiti. Per configurare Cloud Service Mesh, puoi utilizzare la console Google Cloud (per alcune funzionalità e configurazioni), Google Cloud CLI, l'API Traffic Director o altre come Terraform.

Dopo aver completato questi passaggi, Cloud Service Mesh è pronto per configurare il tuo dell'infrastruttura di rete delle applicazioni.

L'infrastruttura gestisce il networking delle applicazioni

Quando un'applicazione invia una richiesta a my-service, il networking dell'applicazione infrastruttura (ad esempio, un proxy sidecar Envoy) gestisce la richiesta in base alle informazioni ricevute da Cloud Service Mesh. Ciò consente a una richiesta affinché my-service venga instradato senza problemi a un'istanza dell'applicazione in grado per ricevere la richiesta.

Monitoraggio e aggiornamenti continui

Cloud Service Mesh monitora le istanze dell'applicazione che costituiscono i servizi di machine learning. Questo monitoraggio consente a Cloud Service Mesh di rilevare che un servizio è integro o che la capacità di un servizio è cambiata, ad esempio, quando un nuovo viene creato il pod Kubernetes. In base a queste informazioni, Cloud Service Mesh aggiorna continuamente l'infrastruttura di networking delle applicazioni.

Funzionalità

Le funzionalità di Cloud Service Mesh offrono di networking delle applicazioni ai tuoi microservizi. Alcuni punti salienti sono trattati in questa sezione.

Piano di controllo, controllo di integrità e bilanciamento del carico completamente gestiti

Vuoi dedicare tempo a fornire valore aziendale, non a gestire dell'infrastruttura. Cloud Service Mesh è una soluzione completamente gestita in modo da non dover installare, configurare o aggiornare l'infrastruttura. Vantaggi dalla stessa infrastruttura utilizzata da Google per il controllo di integrità e il bilanciamento del carico.

Basato su prodotti open source

Cloud Service Mesh utilizza lo stesso piano di controllo (API xDS) progetti open source popolari come Envoy e Istio. Per visualizzare le versioni dell'API supportate, consulta le API del piano di controllo xDS.

L'infrastruttura che offre il networking delle applicazioni di sicurezza: Envoy o gRPC a seconda del caso d'uso è anch'esso open source, quindi non devi preoccuparti legate all'infrastruttura di proprietà.

Scala

Da soluzioni una tantum di networking delle applicazioni a un enorme mesh di servizi di deployment con migliaia di servizi, Cloud Service Mesh è progettato per soddisfare di scalabilità automatica.

Service Discovery e monitoraggio di endpoint e backend

Quando la tua applicazione invia una richiesta a my-service, la tua infrastruttura gestisce perfettamente la richiesta e la invia alla destinazione corretta. Il tuo dell'applicazione non ha bisogno di sapere Indirizzi IP, protocolli o altre complessità di rete.

Bilanciamento del carico e failover globali

Cloud Service Mesh utilizza il bilanciamento del carico globale di Google e il controllo di integrità per bilanciare in modo ottimale il traffico in base alla località del client e al backend, alla vicinanza del backend, all'integrità e la capacità di archiviazione. Puoi migliorare la disponibilità dei servizi impostando il traffico automaticamente fai il failover su backend integri con e la capacità di archiviazione. Puoi personalizzare il bilanciamento del carico per distribuire il traffico nel modo più appropriato per supportare le esigenze della tua attività.

Gestione del traffico

Gestione avanzata del traffico, inclusi routing e manipolazione delle richieste (in base su nome host, percorso, intestazioni, cookie e altro), ti consente di determinare come di traffico tra i tuoi servizi. Puoi anche applicare azioni come nuovi tentativi, i reindirizzamenti e la suddivisione del traffico basata sulla ponderazione per i deployment canary. Avanzata pattern come fault injection, mirroring del traffico e rilevamento outlier consentono Casi d'uso DevOps che migliorano la resilienza.

Osservabilità

L'infrastruttura di rete delle applicazioni raccoglie informazioni di telemetria, ad esempio come metriche, log e tracce, che possono essere aggregati centralmente Observability di Google Cloud. Una volta raccolte queste informazioni, ottenere approfondimenti e creare avvisi in modo che, in caso di problemi, notificato.

Controlli di servizio VPC

Puoi utilizzare i Controlli di servizio VPC per le risorse e i servizi dell'applicazione. Puoi aggiungere progetti ai perimetri di servizio che proteggono risorse e servizi (come Cloud Service Mesh) dalle richieste al di fuori del perimetro. Per saperne di più sui Controlli di servizio VPC, vedi il Panoramica dei Controlli di servizio VPC.

Per saperne di più sull'utilizzo di Cloud Service Mesh con i Controlli di servizio VPC, consulta alla pagina Prodotti supportati.

Passaggi successivi

Questo è un documento legacy che si applica principalmente alle API di bilanciamento del carico. Ti consigliamo vivamente di non configurare Cloud Service Mesh utilizzando le API di bilanciamento del carico.