A cosa serve la rete di servizi?

La rete di servizi viene utilizzata per gestire la comunicazione tra i microservizi all’interno di un’applicazione distribuita. Funziona come un livello di infrastruttura dedicato che gestisce la comunicazione da servizio a servizio, fornendo funzionalità come rilevamento dei servizi, bilanciamento del carico, gestione del traffico, policy di sicurezza e osservabilità. Astraendo la complessità della rete dal codice dell’applicazione, il service mesh semplifica la comunicazione del servizio, migliora l’affidabilità e abilita funzionalità avanzate come l’interruzione del circuito e i nuovi tentativi. Le architetture service mesh utilizzano in genere proxy sidecar (come Envoy o Linkerd) distribuiti insieme a ciascun microservizio per gestire il routing del traffico e l’applicazione delle policy in modo trasparente.

Dovresti prendere in considerazione l’utilizzo di una rete di servizi in scenari in cui disponi di un’architettura di microservizi complessa con più servizi che comunicano su una rete. Le service mesh sono particolarmente utili negli ambienti che richiedono elevata affidabilità, scalabilità e osservabilità. Forniscono un controllo centralizzato sulla comunicazione dei servizi, consentendo l’implementazione senza soluzione di continuità di nuovi servizi, scalabilità dinamica e gestione efficiente del traffico attraverso implementazioni distribuite. Il service mesh facilita inoltre l’implementazione di misure di sicurezza come la crittografia TLS (Transport Layer Security) reciproca tra i servizi, garantendo la riservatezza e l’integrità dei dati.

La funzione principale di una rete di servizi è migliorare l’affidabilità, la sicurezza e l’osservabilità della comunicazione dei microservizi. Raggiunge questo obiettivo intercettando e gestendo il traffico tra i servizi, applicando politiche di comunicazione e fornendo visibilità sulle interazioni dei servizi e sui parametri delle prestazioni. Le architetture mesh di servizi includono in genere componenti per l’individuazione dei servizi (per individuare i servizi disponibili), il bilanciamento del carico (per distribuire il traffico in modo uniforme) e la telemetria (per monitorare e registrare il comportamento del traffico). Scaricando queste responsabilità dai singoli microservizi, il service mesh migliora la resilienza complessiva del sistema e l’efficienza operativa.

Per utilizzare una rete di servizi in un’architettura di microservizi, in genere distribuisci un’implementazione di rete di servizi insieme ai microservizi. Ogni istanza del microservizio viene quindi abbinata a un proxy sidecar, che intercetta il traffico in entrata e in uscita. I proxy sidecar comunicano tra loro e con un piano di controllo centralizzato, che gestisce la configurazione, l’applicazione delle policy e il monitoraggio attraverso la rete di servizi. La configurazione delle regole di routing, delle strategie di bilanciamento del carico, delle policy di interruzione del circuito e delle misure di sicurezza (come il TLS reciproco) viene generalmente gestita tramite il piano di controllo, fornendo un modo centralizzato per configurare e applicare il comportamento di comunicazione nell’ambiente dei microservizi. Questo approccio garantisce una comunicazione coerente e affidabile tra i microservizi abilitando funzionalità avanzate per la gestione del traffico e l’osservabilità attraverso distribuzioni distribuite.