8 migliori gestori di mesh di servizi per creare applicazioni moderne

Quando si utilizzano microservizi, le applicazioni sono costituite da molti servizi su piccola scala diversi che devono comunicare per funzionare insieme come un sistema.

I microservizi comunicano tra loro in molti casi direttamente tra i singoli servizi, il che li rende inefficienti e soggetti a guasti, ma è proprio qui che il service mesh potrebbe essere d’aiuto.

Che cos’è una rete di servizi?

Il termine service mesh descrive inizialmente un modo per controllare lo scambio di dati tra diversi microservizi di un’applicazione. Nello specifico, si tratta di utilizzare un software che abilita la comunicazione tra microservizi:

  • Identificazione dell’applicazione
  • Bilancio del carico
  • Autenticazione
  • Crittografia

Una rete mesh di microservizi interconnessi viene creata da connessioni parallele eseguite tramite i relativi proxy. A tale scopo, una rete di microservizi in rete è integrata in un sistema di gestione della rete di data center di livello superiore. È quindi più facile ottimizzare le comunicazioni senza subire tempi di fermo durante l’evoluzione dell’applicazione. In realtà, ogni servizio applicativo necessita di altri servizi per soddisfare le esigenze degli utenti.

Ad esempio, con un’applicazione di vendita online, prima di qualsiasi acquisto, l’utente scoprirà se l’articolo in questione è effettivamente disponibile. Per questo deve essere stabilita una comunicazione tra il servizio in relazione al database e la pagina web del prodotto. Quest’ultimo deve poi comunicare con il carrello online dell’utente.

Inoltre, il rivenditore può impostare un servizio di proposta di prodotto sull’applicazione per guidare meglio gli utenti. In questo caso, questo nuovo servizio deve scambiare non solo con un database di tag prodotto per emettere le proposte, ma anche con il database di inventario, che dovrebbe comunicare preventivamente con la pagina del prodotto. In realtà è un insieme di prodotti riutilizzabili.

Le applicazioni moderne sono generalmente configurate in questo modo come una rete di servizi il cui scopo è svolgere una specifica funzione aziendale.

Come funziona una rete di servizi e quali sono i suoi vantaggi?

Va notato che un Service Mesh non crea altre funzionalità nell’ambiente di lavoro di un’applicazione. Il Service Mesh creato in un’applicazione è sotto forma di un gruppo di proxy di rete che rimane un concetto familiare nel settore informatico aziendale.

Probabilmente utilizzi i proxy ogni volta che visiti pagine Web utilizzando un computer di lavoro. I proxy basati sul livello di infrastruttura dei microservizi aiutano a instradare le richieste tra di loro. Da qui la parola “sidecar” designa i proxy contenuti in una mesh di servizi, e questo perché la loro esecuzione avviene accanto ai servizi e non al loro interno. I proxy “sidecar” dei vari servizi costituiscono una rete mesh.

Inoltre, in assenza di una rete di servizi, gli sviluppatori si trovano a dover codificare ogni microservizio in base alla strategia di comunicazione tra i servizi. Poiché la logica di comunicazione tra i reparti è nascosta in ogni reparto, gli sviluppatori faticano a raggiungere gli obiettivi aziendali.

Inoltre, sono soggetti a difficoltà durante la diagnosi dei problemi di comunicazione. Infine, una rete di servizi consente di trovare soluzioni ad alcuni problemi relativi alla gestione della comunicazione tra servizi.

Con Service Mesh, puoi automatizzare questa comunicazione poiché i dati e le informazioni necessarie sono facilmente accessibili nell’infrastruttura esternalizzata della rete mesh. Semplifica la localizzazione ed elimina eventuali problemi e malfunzionamenti. Inoltre, consente ai reparti IT dell’azienda di essere alleggeriti e dedicarsi ad altre attività a valore aggiunto.

A causa dell’astrazione della comunicazione, anche i servizi non funzionanti possono essere bypassati automaticamente e non pregiudicano lo scambio di dati delle parti dell’applicazione funzionanti. I dati facilmente accessibili del sistema Service Mesh possono anche essere facilmente analizzati e quindi consentire il miglioramento operativo e l’aumento delle prestazioni dell’applicazione.

Abbiamo illustrato come funziona la rete di servizi; ora, diamo un’occhiata ad alcuni dei migliori gestori di mesh di servizi:

Meshery

Meshery è un gestore di servizi mesh che consente di eseguire diverse soluzioni di service mesh. Può essere distribuito su Kubernetes e Docker. Mastery fornisce un’interfaccia utente e una CLI per stabilire il punto di riferimento per tutte le principali soluzioni di servizi mesh, inclusi Linkerd e Istio. Meshery può essere distribuito direttamente sul cluster o localmente.

Amazon App Mesh

AWS App Mesh è un servizio di rete mesh per la piattaforma Kubernetes (EKS) di Amazon. Fornisce la gestione a livello di applicazione tramite Envoy sidecar proxy per il traffico in ingresso e in uscita e utilizza l’interruzione del circuito per fornire parametri di osservabilità utilizzando AWS X-Ray. L’app mesh di AWS può essere utilizzata anche insieme ad altri servizi come Amazon EC2 e AWS Fargate.

Linkerd

Linkerd è un gestore di rete mesh open source che utilizza un proxy personalizzato basato su Rust per gestire i microservizi. Viene fornito con Grafana preinstallato per fornire metriche di osservabilità. Linkerd, a differenza di altri gestori di mesh open source, offre GUI e non solo supporta Prometheus, ma supporta anche controller di ingresso come Traefik, Kong e Gloo. Linkerd supporta anche gli aggiornamenti automatici della distribuzione tra i cluster.

Istio

Istio è una mesh di servizi open source che usa il proxy Envoy per gestire i microservizi. Istio offre diverse funzionalità come bilanciamento del carico, creazione di criteri, instradamento del traffico, timeout, interruzione di circuito, spostamento del traffico e tentativi. ‌Istio fornisce anche funzionalità di traccia distribuita su container o macchine senza richiedere l’installazione di software aggiuntivo.

Kuma

Kuma è una rete di servizi creata da Kong, che viene utilizzata per estendere il funzionamento dei servizi esistenti tramite il proxy Envoy. Kuma supporta diversi microservizi e fornisce sicurezza e monitoraggio avanzati per le reti. Viene fornito con una serie di politiche pre-raggruppate per routing, mTLS, controllo del traffico e varie funzionalità di sicurezza. Con Kuma, puoi controllare facilmente diverse mesh isolate tramite un unico controllo e piano dati.

Maglia Nginx

Nginx è una rete di servizi per Kubernetes che crittografa il traffico tra container utilizzando il piano dati basato su Nginx Plus. Nginx utilizza la limitazione della velocità e gli interruttori automatici per gestire il traffico tra i servizi e viene fornito con un dashboard Grafana per l’osservazione delle metriche della rete di servizi.

Console

Console di HashiCorp è una rete di servizi che fornisce un livello proxy integrato e supporta anche il proxy sidecar Envoy. Offre routing basato sul percorso, spostamento del traffico e bilanciamento del carico. Consul è integrato con HashiCorp Vault e supporta anche mTLS. Può essere integrato con Prometheus e Grafana per visualizzare le metriche di osservabilità.

Gloo Mesh

Gloo Mesh è una rete di servizi basata sulla rete Istio e utilizza il proxy Envoy che consente di implementare un modello di sicurezza Zero Trust. Gloo supporta Kubernetes multi-tenancy, macchine virtuali e altri microservizi. È compatibile con CI/CD e GitOps, il che semplifica la distribuzione.

Parole finali

Service mesh risolve il problema di comunicazione tra diversi microservizi e offre vari vantaggi in termini di sicurezza; tuttavia, a causa delle centinaia di diverse soluzioni mesh disponibili sul mercato, diventa essenziale scegliere un servizio mesh che si adatti meglio alle proprie esigenze e sia facile da gestire.