L'architettura con service mesh è progettata per gestire interazioni complesse tra microservizi tramite un livello infrastrutturale separato. Il service mesh fornisce automaticamente funzionalità come routing, bilanciamento del carico, discovery dei servizi, sicurezza (ad esempio, mTLS), logging, tracciamento e retry delle richieste senza la necessità di implementarle in ogni servizio. Tutto ciò viene realizzato grazie a specifici proxy (sidecar) che vengono eseguiti accanto a ciascun microservizio e intercettano tutto il traffico di rete.
L'architettura tradizionale a microservizi richiede che la maggior parte di queste funzionalità venga implementata all'interno dei servizi stessi o a livello di piattaforma, il che complicano lo sviluppo e la manutenzione del progetto con un gran numero di servizi.
Esempio di configurazione del service mesh Istio per Kubernetes:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: my-service spec: hosts: - my-service http: - route: - destination: host: my-service subset: v1
Caratteristiche chiave:
Routing e gestione delle politiche di interazione di rete centralizzate.
Minimizzazione della duplicazione del codice logico di interazione in ogni servizio.
Sicurezza e monitoraggio migliorati senza modificare la logica di business delle applicazioni.
Il service mesh sostituisce completamente l'API gateway?
No, il service mesh e l'API gateway si completano a vicenda: l'API gateway fornisce il controllo all'ingresso, mentre il service mesh gestisce la comunicazione east-west tra i servizi.
È necessario modificare il codice dei servizi quando si implementa un service mesh?
Di solito no. Nella maggior parte dei casi, il proxy di servizio viene eseguito in modalità sidecar, e non è necessario modificare il codice della logica di business.
Il service mesh peggiora le prestazioni dei microservizi?
Il service mesh introduce effettivamente una leggera latenza a causa dell'elaborazione del traffico del proxy, ma per la maggior parte degli scenari, questo è trascurabile rispetto ai guadagni in gestibilità e affidabilità.