Cos'è un mesh di servizi?

Autori

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Definizione di mesh di servizi

Una service mesh è un livello software in una moderna architettura applicativa che gestisce la connettività tra i microservizi, consentendo il funzionamento delle applicazioni. Le service mesh forniscono molte funzionalità critiche, come la comunicazione da servizio a servizio, la scoperta dei servizi, il bilanciamento del carico e l'autenticazione.

Una delle maggiori sfide che gli sviluppatori di app devono affrontare nel moderno panorama aziendale è la scalabilità. Con l'aumento del numero di utenti delle applicazioni, diventa difficile per gli ingegneri di DevOps (la metodologia di sviluppo software che accelera la distribuzione delle app attraverso l'automazione) monitorare le prestazioni del servizio. Una mesh di servizi fornisce caratteristiche principale che aiutano a monitorare e gestire servizi critici come la registrazione, il tracciamento e il controllo del traffico.

Poiché le applicazioni sono diventate fondamentali per la trasformazione digitale, l'importanza delle mesh di servizi è aumentata. Oggi sono i principali abilitatori di alcune delle tecnologie applicative più avanzate disponibili, tra cui applicazioni cloud-native applicazioni, microservizi e container.

Secondo Forbes, nel 2022 il 70% delle organizzazioni gestiva già una service mesh e il 19% ne stava valutando una.1

Le ultime notizie nel campo della tecnologia, supportate dalle analisi degli esperti

Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Che cosa sono i microservizi?

I microservizi, noti anche come architettura di microservizi, sono un approccio architettonico cloud-native in cui le applicazioni sono costruite da molti componenti (o servizi) indipendenti e più piccoli. Questo approccio consente agli sviluppatori di aggiornare il codice più facilmente e di aggiungere o rimuovere caratteristiche e funzionalità senza impattare il resto dell'applicazione, con conseguente elevata scalabilità.

Le mesh di servizi sono critiche per l'architettura dei microservizi. Forniscono un livello di infrastruttura altamente configurabile in cui tutti i servizi dell'applicazione a microservizi possono connettersi e scambiare informazioni. Oltre a una service mesh, viene utilizzata anche l'architettura dei microservizi insieme alla tecnologia dei container e alla sua piattaforma più popolare, Kubernetes.

Sviluppo di applicazioni

Sali a bordo: sviluppo di applicazioni Enterprise nel cloud

In questo video il Dr. Peter Haumer illustra l'aspetto del moderno sviluppo di applicazioni aziendali nell'hybrid cloud, mostrando diversi componenti e pratiche, tra cui IBM Z Open Editor, IBM Wazi e Zowe. 

Cosa sono i container e Kubernetes?

La tecnologia conosciuta come container, insieme a una delle sue piattaforme di orchestrazione dei container più popolari, Kubernetes, è diventata indispensabile per la funzionalità di service mesh grazie al modo in cui consente agli sviluppatori di gestire applicazioni complesse basate su microservizi.

I container sono unità software eseguibili che "impacchettano" il codice dell'applicazione insieme alle relative librerie e dipendenze, facendo in modo che il codice possa essere eseguito in qualsiasi ambiente informatico. Con la proliferazione dei container nell'architettura delle applicazioni moderne, la gestione di grandi gruppi di container è diventata rapidamente una sfida.

Ed è qui che entra in scena Kubernetes (noto anche come k8s o Kube), una piattaforma di orchestrazione di container che è diventata una delle soluzioni di orchestrazione più popolari disponibili oggi sul mercato. I cluster Kubernetes, raccolte di nodi che rappresentano macchine fisiche e macchine virtuali (VM), sono gestiti sul piano di controllo.

Un altro aspetto importante della funzionalità del service mesh è il modo in cui viene gestito l'accesso ai servizi all'interno di un cluster specifico, un processo noto come ingress.

Come funziona una service mesh?

Le applicazioni più popolari di oggi richiedono la distribuzione di molti workload di lavoro o attività e processi di elaborazione contemporaneamente. Un'architettura di microservizi consente agli sviluppatori di costruire ogni applicazione come una collezione di piccoli servizi indipendenti più facili da gestire.

Tuttavia, affinché il codice dell'applicazione funzioni, i microservizi devono comunicare in modo rapido e preciso, ed è qui che l'architettura service mesh è critico. Le mesh di servizi sono progettate in modo da offrire agli sviluppatori un maggiore controllo sulla comunicazione da servizio a servizio all'interno di un'applicazione.

Al loro livello più fondamentale, le service mesh si basano su un tipo di comunicazione noto come comunicazione basata su proxy per migliorare la gestibilità e il controllo delle applicazioni basate su microservizi. Le caratteristiche di comunicazione basate su proxy presentano server proxy (noti anche come proxy) che fungono da intermediari tra il microservizio e l'organizzazione, consentendo di instradare il traffico da e verso un servizio tramite proxy. Questa funzionalità, nota come comunicazione proxy di rete, è fondamentale per mantenere la gestibilità, l'osservabilità e la sicurezza di molte applicazioni.

Oltre ai proxy, un'architettura di service mesh si basa su due componenti principali che ne consentono il funzionamento: il piano di controllo e il piano dati.

Piano di controllo

Il piano di controllo è la parte della rete informatica che controlla il modo in cui i dati vengono instradati tra gli utenti e i dispositivi (noti anche come nodi). I piani di controllo seguono regole di routing o protocolli informati da algoritmi che determinano il percorso migliore per l'acquisizione dei dati su una rete.

In una mesh di servizi, il piano di controllo include proxy appositamente progettati chiamati proxy sidecar che astraggono determinate funzionalità, come il monitoraggio e la sicurezza, per renderli più efficienti. Quando un servizio deve comunicare con un altro servizio in una rete di servizi, il proxy sidecar intercetta la richiesta e crea un canale sicuro e crittografato su cui viaggiare.

Piano dati

Il piano dati, noto anche come piano di inoltro , consente di inviare i dati nella rete attraverso dispositivi come router e switch. I piani dati utilizzano proxy sidecar per gestire la messaggistica tra servizi e funzionalità importanti come l'interruzione del circuito e le riprove. Il piano dati è anche il punto in cui vengono eseguite funzionalità chiave come il bilanciamento del carico, l'individuazione dei servizi e il routing.

Confronto tra service mesh e API gateway

Oltre al piano dati e al piano di controllo, il gateway di interfacce di protocollo di applicazione (API) è un'altra parte importante dell'architettura dei microservizi strettamente correlata alla funzionalità della mesh dei servizi.

Le API sono protocolli che consentono alle applicazioni software di comunicare e scambiare dati. I gateway API sono strumenti che fungono da intermediari tra i client API, ad esempio la popolare API REST che aiuta gli sviluppatori a creare applicazioni, e i servizi di back-end situati su un server.

I gateway API e le service mesh sono simili in quanto consentono uno sviluppo di applicazione più efficiente. Tuttavia, mentre un gateway API controlla l'accesso alle API, una service mesh collega i microservizi all'interno dell'applicazione. Le mesh di servizi e i gateway API vengono spesso implementati insieme per aumentare la flessibilità e l'osservabilità in un ecosistema di sviluppo di applicazioni.

Vantaggi di una service mesh

Le mesh di servizi e l'architettura di microservizi che rendono possibile offrono molti benefici critici a un'organizzazione. Ecco alcuni dei più comuni.

Observability

Una rete di servizi fornisce un'osservabilità integrata, una comprensione più profonda delle condizioni di un sistema complesso, per un'intera architettura di microservizi. Questo permette agli sviluppatori di monitorare metriche importanti come le dipendenze, la latenza e i tassi di errore, che sono importanti per capire come funziona un'app.

L'osservabilità aiuta anche nella risoluzione dei problemi, nell'ottimizzazione delle prestazioni, nella telemetria (registrazione del comportamento del sistema) e nel debug offrendo agli sviluppatori una visione completa e senza ostacoli del funzionamento interno di un ecosistema di microservizi.

Controllo

Affinché le app funzionino correttamente, gli sviluppatori e gli amministratori delle applicazioni devono controllare il modo in cui i servizi comunicano tra loro all'interno dell'app. Una service mesh aumenta le funzionalità di governance per le organizzazioni che implementano architetture di microservizi, per esempio il modo in cui i team applicano i requisiti di sicurezza e conformità in settori fortemente regolamentati.

Inoltre, le service mesh forniscono livelli di infrastruttura appositamente dedicati per gestire le esigenze di comunicazione da servizio a servizio con applicazioni distribuite, applicazioni che vengono eseguite su più di un computer connesso contemporaneamente.

Sicurezza

Le service mesh aiutano a garantire una comunicazione sicura tra i servizi attraverso funzionalità come la crittografia e l'autenticazione mTLS (Mutual Transport Layer Security). L'autenticazione mTLS aiuta a garantire che il traffico in un'applicazione sia sicuro e affidabile in entrambe le direzioni tra client e server.

mTLS garantisce inoltre la riservatezza dei dati crittografando le informazioni inviate tramite comunicazioni da servizio a servizio. Consente agli amministratori di applicare le politiche di autorizzazione, come l'accesso a endpoint specifici, un processo noto come sicurezza degli endpoint.

Rilevamento dei servizi

Le mesh di servizi hanno una funzionalità nota come rilevamento automatico dei servizi che consente di ridurre il workload della gestione degli endpoint di servizio, ovvero la posizione nella mesh di servizi in cui è possibile raggiungere un microservizio specifico. Un registro dei servizi consente ai servizi di trovare e comunicare tra loro automaticamente, ovunque si trovino, consentendo agli sviluppatori di implementare nuovi servizi in modo rapido e semplice.

Bilanciamento del carico

Il bilanciamento del carico, la distribuzione del traffico di rete tra più server per ottimizzare le prestazioni delle app, è una funzionalità chiave delle service mesh. Grazie agli algoritmi, la service mesh aiuta a bilanciare i workload tra i nodi, a ottimizzare le risorse e a garantire in generale l'alta disponibilità di un'applicazione.

Gestione del traffico e suddivisione del traffico

Le service mesh offrono caratteristiche avanzate di gestione e suddivisione del traffico per ottimizzare il flusso di informazioni e risorse su una rete. Sebbene sia la gestione del traffico che la suddivisione del traffico vengano utilizzate per controllare il flusso di informazioni su una rete, presentano una differenza importante che vale la pena di notare. La gestione del traffico si concentra su modifiche sistemiche a lungo termine all'infrastruttura per migliorare il flusso del traffico di informazioni, mentre la suddivisione del traffico comporta la distribuzione del traffico in base al peso tra back-end o versioni del servizio.

Le service mesh forniscono un controllo granulare e altamente specifico sul comportamento del routing e del traffico, consentendo transizioni più fluide quando un'applicazione viene aggiornata a una versione più recente del software. Ad esempio, nella popolare distribuzione canary, una nuova versione di un app viene rilasciata solo a un piccolo gruppo di utenti per testare le caratteristiche e le prestazioni prima che venga resa disponibile a tutti gli altri.

Scegliere la giusta soluzione di service mesh

Il mercato globale dei fornitori di service mesh è già forte e in rapida crescita. Secondo un recente sondaggio, è stato valutato a 0,22 miliardi di dollari nel 2023 e si prevede che crescerà fino a 5,05 miliardi di dollari entro il 2032, con un tasso di crescita annuale composto (CAGR) del 41,3%.2

In un settore che cresce a un ritmo così rapido, la scelta della giusta soluzione di service mesh può essere una sfida. Alcuni fattori chiave da considerare includono il costo, la facilità di implementazione, la compatibilità con le tecnologie esistenti, la sicurezza, le prestazioni e il supporto.

Ecco 5 delle soluzioni di service mesh più popolari disponibili e una breve panoramica di ciò che le rende uniche.

Istio

La service mesh più popolare disponibile è Istio. Il suo ampio set di caratteristiche lo rende altamente adattabile e adatto ai workload di livello aziendale. Istio è noto per le sue funzionalità avanzate di gestione del traffico, per le sue caratteristiche di sicurezza e per la sua estensibilità, potenziata dal suo ampio ecosistema di collaboratori.

Come altre offerte di service mesh, Istio è un progetto open source, il che significa che è stato sviluppato e gestito attraverso una collaborazione aperta e reso disponibile per l'uso da parte di chiunque. Funziona bene con Kubernetes e molte altre tecnologie vicine alle mesh dei servizi.

Linkerd

Più leggero e diretto di Istio, Linkerd è una semplice soluzione di service mesh che migliora le prestazioni mantenendo una latenza bassa. Linkerd dispone di tutte le funzionalità di base che le aziende si aspettano da un service mesh, tra cui il bilanciamento del carico, il rilevamento dei servizi, la crittografia e altro ancora. Come Istio, anche Linkerd è open source.  

Service mesh NGINX

NGINX è più completo della maggior parte delle altre mesh di servizi. Funziona sia come server web che come proxy inverso, il che significa che può offrire una gamma più ampia di protocolli rispetto ad altre mesh di servizi. NGINX è stato progettato per le massime prestazioni e stabilità ed è utilizzato da molti siti web ad alto traffico. Come Linkerd, Istio e altre soluzioni di service mesh, è open source.

Consul

Creato da HashiCorp, la popolare società di infrastrutture basate su cloud, Consul è una service mesh multicloud che offre molte delle stesse caratteristiche di altri popolari service mesh. Consul è una delle soluzioni di service mesh più flessibili disponibili e può essere utilizzata su diversi sistemi operativi (OS), tra cui Windows, Linux, macOS, FreeBSD e Solaris. Consul è anche open source ed è noto soprattutto per il suo popolare plug-in Prometheus, che migliora le funzionalità di monitoraggio.

App mesh AWS

Progettato specificamente per l'uso con le distribuzione cloud di Amazon Web Services (AWS), AWS App Mesh è una service mesh con molte delle stesse caratteristiche di Linkerd, Istio e altri, tra cui sicurezza, gestione del traffico e osservabilità migliorate. Tuttavia, AWS non è flessibile ed è considerato adatto solo per le organizzazioni che sono già integrate nell'architettura AWS.

Soluzioni correlate
IBM Enterprise Application Service for Java

Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.

Esplora le applicazioni Java
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Enterprise Application Development Services

Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.

Servizi per lo sviluppo di applicazioni
Fai il passo successivo

I servizi di consulenza per lo sviluppo delle applicazioni IBM Cloud offrono consulenza esperta e soluzioni innovative per semplificare la tua strategia cloud. Collabora con gli esperti di cloud e sviluppo di IBM per modernizzare, scalare e accelerare le tue applicazioni, ottenendo risultati trasformativi per la tua azienda.

Esplora i servizi per lo sviluppo di applicazioni Inizia a creare gratuitamente con IBM Cloud
Note a piè di pagina

Service Mesh As The Bridge To App Modernization, Forbes, marzo 2023

2 Service Mesh Market Report, Business Research Insights, ottobre 2024