Service mesh

Nelle architetture software un service mesh è un componente utilizzato per facilitare le comunicazioni tra servizi o microservizi, spesso implementato sotto forma di proxy. Da un punto di vista architetturale può risiedere ad un livello di astrazione inferiore a quello dei servizi che fruiscono delle sue funzioni, a cui risulta quindi invisibile.

Descrizione

Un service mesh è composto da un proxy di rete associato a ciascun servizio di un'applicazione e da un insieme di processi di gestione delle attività. I proxy, normalmente chiamati sidecar, formano il data plane, mentre i processi di gestione compongono il control plane. Il data plane intercetta le chiamate tra servizi diversi e le “elabora”; il control plane è il cervello della mesh che coordina il comportamento dei proxy e mette a disposizione, al personale operativo e di manutenzione, tramite un'interfaccia utente o delle API, gli strumenti necessari per manipolare e osservare l'intera rete.

Utilizzare un service mesh per implementare un livello architetturale dedicato alle funzioni di comunicazione può fornire una serie di vantaggi. Ad esempio è possibile aggiungere ai servizi utilizzatori, senza modificarli e in modo completamente trasparente, capacità di monitoraggio delle comunicazioni, connessione sicura, regimazione del traffico, rilevamento dinamico, il bilanciamento del carico, autenticazione, autorizzazione, circuit breaker, e molto altro.

Alcuni prodotti software commerciali che implementano funzionalità service mesh sono Istio, Linkerd, HashiCorp Consul, AWS App Mesh, Kuma, Traefik Mesh e Open Service Mesh.

Note

Bibliografia

Voci correlate

Collegamenti esterni