Il modello di progettazione della rete di servizi si riferisce a una metodologia per la gestione della comunicazione tra microservizi all’interno di un’architettura applicativa distribuita. Implica la distribuzione di un livello di infrastruttura dedicato che gestisce la comunicazione da servizio a servizio, scaricando attività come l’individuazione dei servizi, il bilanciamento del carico, la gestione del traffico e le policy di sicurezza dai singoli microservizi. Questo modello garantisce coerenza, affidabilità e osservabilità tra i microservizi centralizzando queste preoccupazioni di rete in un livello di infrastruttura separato e scalabile, in genere implementato utilizzando proxy sidecar come Envoy o Linkerd.
Un modello di service mesh si riferisce all’approccio architetturale che prevede l’utilizzo di un livello di infrastruttura dedicato per gestire e controllare la comunicazione tra microservizi all’interno di un sistema distribuito. Questo modello astrae le complessità della comunicazione di rete dai singoli servizi distribuendo proxy sidecar accanto a ciascuna istanza di microservizio. Questi proxy gestiscono attività di comunicazione come routing, bilanciamento del carico, crittografia, autenticazione e osservabilità, promuovendo così coerenza e resilienza tra le interazioni dei servizi. I modelli di service mesh consentono alle organizzazioni di adottare architetture di microservizi in modo efficiente garantendo al tempo stesso affidabilità e sicurezza operativa.
Il concetto di service mesh comprende un insieme di tecnologie di rete e modelli architettonici progettati per migliorare l’osservabilità, la sicurezza e l’affidabilità della comunicazione dei microservizi all’interno di un sistema distribuito. Implica l’implementazione di un livello di infrastruttura che fornisce funzionalità quali rilevamento dei servizi, gestione del traffico, tolleranza agli errori e raccolta di metriche. Le architetture service mesh utilizzano in genere modelli di distribuzione proxy sidecar per intercettare e gestire il traffico tra i microservizi, offrendo controllo e visibilità centralizzati sui modelli e comportamenti di comunicazione nell’intera applicazione.
Esempi di implementazioni di service mesh includono Istio, Linkerd e Consul Connect. Istio, basato sul proxy Envoy, si integra con Kubernetes per fornire funzionalità di service mesh avanzate come gestione del traffico, policy di sicurezza (come TLS reciproco) e telemetria (metriche, registrazione, tracciamento). Linkerd è una rete di servizi mesh leggera progettata per applicazioni native del cloud, che si concentra sulla semplicità e sulle prestazioni offrendo funzionalità come bilanciamento del carico trasparente, rilevamento dei servizi e osservabilità. Consul Connect, parte del servizio Consul di HashiCorp, fornisce funzionalità di service mesh come la comunicazione sicura da servizio a servizio e il rilevamento dei servizi in ambienti ibridi e multi-cloud. Questi esempi di service mesh illustrano diversi approcci per migliorare le architetture di microservizi con solide capacità di rete e vantaggi operativi.