Cos' è un service mesh?

 

Un service mesh indica il modo in cui il codice software delle applicazioni in hosting su cloud viene integrato a diversi livelli del server web nei layer integrati. Anziché funzionare in un runtime isolato sul layer superiore di una configurazione in stack del server web, il codice dell'applicazione in hosting su cloud può essere integrato con le API per semplificare le chiamate ad altri servizi basati su software disponibili a livello di sistema operativo, server web, rete o data center. Un service mesh aumenta la funzionalità potenziale delle applicazioni software estendendo i livelli di comunicazione interoperabile tra gli elementi dell'infrastruttura negli ambienti di produzione.

 

Un service mesh integra migliaia di microservizi sulle VM in un data center su cloud elastico tramite comunicazione inter-canale automatizzata tra le applicazioni in esecuzione. La funzionalità di comunicazione da servizio a servizio dedicata è richiesta dalle applicazioni di orchestrazione del cloud, bilanciamento del carico, individuazione delle risorse, routing SDN, comunicazione API, sincronizzazione del database e ottimizzazione degli script a tutti i livelli di operation del data center. Un service mesh consente di migliorare le funzionalità di analisi dei dati e le metriche relative al traffico per l'architettura di rete multi-tier per milioni di server rack multi-tenant simultaneamente.

Service mesh

La sinergia tra service mesh e SDN offre funzioni cruciali quali la virtualizzazione della rete e l'automazione.

Scopri come 

Vantaggi di un service mesh

  • Maggiore interoperabilità: un service mesh estende le funzionalità delle caratteristiche di routing SDN per gli ambienti con microservizi integrati a supporto del codice di applicazioni SaaS, web e mobili.
  • Individuazione avanzata dei microservizi: un service mesh migliora la configurazione e la gestione della rete mediante una migliore individuazione dei microservizi.
  • Funzionalità dettagliate di analisi e monitoraggio dell'attività di rete in tempo reale: un service mesh può accedere ai processi back-end e all'hardware del server web per garantire funzionalità più dettagliate di analisi e monitoraggio dell'attività di rete in tempo reale.
  • Potente automazione degli script web e mobili: gli sviluppatori possono eseguire script della funzionalità di service mesh tramite file YAML o utility quali Vagrant, Jenkins, Puppet, Chef e così via per creare una potente automazione degli script web e mobili secondo necessità. Questo tipo di architettura è necessario per il supporto di applicazioni SaaS complesse negli ambienti di produzione aziendali. Un service mesh consente di coordinare migliaia di container in esecuzione simultaneamente nel cloud.

 

Come funziona un service mesh?

Il funzionamento di un service mesh è legato all'individuazione e al routing delle applicazioni installate su ogni nodo o istanza di VM in una rete di server web elastica al fine di registrare i microservizi in esecuzione per mezzo dell'indirizzo IP. Per la configurazione, la gestione e l'amministrazione di tutti i microservizi in esecuzione simultaneamente su una rete viene utilizzato un registro centrale. Tutte le applicazioni parallele in esecuzione sui diversi layer di un server web, di un data center o di un'applicazione possono fare riferimento al service mesh per estendere l'interoperabilità tramite funzionalità di analisi dei dati e monitoraggio della rete. Ciò comporta una maggiore automazione del data center a livello di routing IP, definizioni SDN, impostazioni firewall, filtri, regole e bilanciamento del carico del cloud.

 

Le connessioni API possono fare riferimento al service mesh per le definizioni relative alla posizione in cui individuare le applicazioni in esecuzione e alle caratteristiche dei microservizi per il trasferimento dei dati o le attività necessarie di elaborazione. Le piattaforme di server web elastiche che scalano in modo automatico con Kubernetes utilizzano Istio come utility di gestione della configurazione e del registro centrale per l'individuazione dei microservizi. Piattaforme di server web elastiche come AWS EC2 e Kubernetes utilizzano il service mesh per la gestione di più copie di applicazioni cloud in runtime simultanei durante la fase di sincronizzazione delle modifiche apportate al database master e alle informazioni sullo storage. Un service mesh consente la comunicazione tra il layer applicativo e il server web, internet e le risorse di rete del data center, tramite API o vice versa, a seconda dei requisiti relativi alla base di codice o al microservizio.

 

Architettura del service mesh

Un service mesh si basa su un layer di astrazione installato su tutte le VM o su tutti i container di un data center su cloud. Il codice viene installato su ogni VM o nodo che comunica con un'istanza del software di amministrazione centrale che gestisce l'orchestrazione del data center. Le soluzioni di service mesh, come VMware NSX e Istio, utilizzano Envoy per la creazione del data plane a livello del nodo. Envoy gestisce le informazioni che riguardano i microservizi in esecuzione, gli indirizzi IP con licenza, la crittografia HTTPS, i formati di database attivi e così via, per ogni VM o nodo. Con NSX, è inclusa l'integrazione del firewall distribuito a livello dell'hypervisor. Nelle reti cloud elastiche, le informazioni relative al data plane per ogni VM o nodo vengono utilizzate per il bilanciamento del carico. Le connessioni API utilizzano l'architettura del service mesh per i requisiti di routing tra le applicazioni. La telemetria a livello 7 del service mesh include DNS, HTTP/S, SMTP, POP3, FTP e così via.

 

Implementazione del service mesh

L'implementazione del service mesh include il bilanciamento del carico e il rilevamento dei servizi tra SDN, indirizzi IP, microservizi e risorse API di un'applicazione web/mobile. Il service mesh gestisce comunicazione, sincronizzazione e crittografia per le connessioni del server web back-end a livello di hardware in un'architettura di server web elastica. Nelle applicazioni cloud gli script, i database e i file web statici spesso vengono separati su hardware diversi, quindi assemblati sulla pagina finale del browser web. Il routing SDN tra hardware, script, database e file diventa ancora più complesso quando il codice contiene API di terze parti. Quando tutti questi elementi devono essere assemblati tra tutte le risorse per il carico di ogni pagina, il service mesh si occupa di integrare, sincronizzare e standardizzare le operation tra le VM in framework elastici di server web. Il service mesh è stato progettato per rispondere a esigenze a cui non erano in grado di rispondere altri software nel data center. Include inoltre funzionalità di analisi dei dati e metriche utente derivanti dalle connessioni di traffico web.

 

Service mesh Open Source

Attualmente Istio è il progetto di service mesh Open Source più avanzato, mentre Envoy viene utilizzato per le funzioni centrali relative alla gestione del data plane tra i nodi. Originariamente, Istio è stato sviluppato come parte di CNCF (Cloud Native Computing Foundation) e si integra nelle piattaforme VMware NSX Service Mesh ed Enterprise PKS. PKS è la distribuzione di Kubernetes di VMware che esegue l'orchestrazione di server web su cloud tramite container. PKS è disponibile come pacchetto con hosting automatico per i requisiti di public cloud e private cloud o come prodotto CaaS (Containers-as-a-Service) completamente gestito. Istio viene utilizzato per la comunicazione dei microservizi di Kubernetes con funzionalità di routing complesse degli indirizzi IP e crittografia dell'orchestrazione elastica dei server web nei data center aziendali secondo necessità. Linkerd, Conduit, Aspen e Consul sono altri progetti Open Source importanti sviluppati come componenti di framework di service mesh.

 

Service mesh elastico

Un service mesh elastico ha lo scopo di sincronizzare file di database e siti web in un framework di hosting su cloud come AWS EC2 o Kubernetes. Il service mesh controlla il routing tra le VM nel server web back-end per i requisiti di API e SDN in relazione al supporto alle applicazioni software. Quando il service mesh viene utilizzato anche per l'individuazione e il bilanciamento del carico nelle reti di server web elastiche, gli amministratori possono automatizzare l'allocazione delle risorse del data center per rispondere ai requisiti del traffico utente negli ambienti di produzione. Al fine di garantire un uso più efficiente delle risorse hardware del cloud, è possibile configurare i server web perché vengano avviati oppure terminati automaticamente in base alle necessità. La possibilità di integrare funzionalità di analisi e monitoraggio in tempo reale in un service mesh a livello di VM o nodo consente agli sviluppatori di software, ai programmatori e agli esperti di web publishing di creare nuove funzionalità per le applicazioni che fanno uso di microservizi.

 

Perché l'architettura dei microservizi necessita di un service mesh

Un public cloud può contenere milioni di microservizi in esecuzione simultanea sui container o sulle macchine virtuali che supportano diverse applicazioni e diversi database in parallelo tramite runtime isolati. Gli ambienti multi-tenant basati sulla virtualizzazione richiedono un metodo migliore per l'individuazione e la registrazione di microservizi in modo che la funzionalità esclusiva di ognuno di essi possa essere integrata dalle applicazioni o condivisa su altri dispositivi mediante API. Diversi formati di microservizi non sono progettati appositamente per le piattaforme di server web elastiche e, per gestire le operation nei container, richiedono l'utilizzo di un service mesh. Un service mesh offre funzionalità granulari di routing e crittografia su SDN che consentono la comunicazione tra le diverse API e i processi dei codici su server web, endpoint e altri dispositivi.

Risorse, soluzioni e prodotti VMware per service mesh

NSX Data Center

VMware NSX® Data Center garantisce la sicurezza e la virtualizzazione della rete interamente nel software.

VMware NSX Service Mesh

VMware NSX Service Mesh consente di introdurre visibilità e controllo coerenti di tutti i servizi, i dati e gli utenti.

VMware Enterprise PKS

VMware Enterprise PKS consente di distribuire, eseguire e gestire Kubernetes negli ambienti di produzione.