Cos'è un service mesh?

Un service mesh è un servizio applicativo preconfigurato che consente ai servizi di comunicare tra loro, condividendo dati e omogeneità attraverso il ciclo di vita di un'applicazione. Sono usati per gestire microservizi utilizzando lo strato sottile e scrivibile di un contenitore. Costruito per essere facilmente impostato e distribuito, un service mesh sblocca il valore dei microservizi, permettendo alle aziende di scoprire facilmente nuovi servizi e gestirli come prodotti API.

Diagramma di service mesh

Per implementare un service mesh, c'è bisogno di una moderna strategia di integrazione adatta all'era digitale. Deve essere agile, favorire l'innovazione e soddisfare i requisiti aziendali. Anche l'efficienza è importante, ma non è una priorità assoluta.

Vantaggi del service mesh

Standardizzazione delle applicazioni basate su microservizi. I comportamenti delle applicazioni distribuite variano a seconda della rete che le supporta. Comportamenti diversi possono creare una sfida per un sistema di gestione della configurazione. Un service mesh fa sembrare un centro di elaborazione dati esclusivo meno ingombrante per l'orchestratore.

Monitorare e migliorare il comportamento delle applicazioni distribuite. Un buon service mesh è progettato per posizionare i componenti altamente richiesti in una posizione sul piano di controllo dell'applicazione dove possono essere più facilmente accessibili. Detto questo, i componenti devono funzionare in modo fluido e più efficiente. Con un service mesh, i dati sono condivisi, ossia gli sviluppatori possono vedere cosa deve essere migliorato nella iterazione successiva.

Maggiore trasparenza nelle interazioni complicate. Spesso è difficile seguire il flusso di informazioni in un ambiente cloud nativo. Il service mesh rende trasparente il modo in cui sono forniti i servizi applicativi essenziali, consentendo di tracciare il loro comportamento.

Crittografia. Un service mesh gestisce le chiavi, i certificati e la configurazione TLS per garantire una crittografia continua che non abbia alcun malfunzionamento. Gli utenti non devono più implementare la crittografia o gestire i certificati. Queste responsabilità sono invece spostate dallo sviluppatore di app al livello dell'infrastruttura.

10 motivi per cui TIBCO è il leader per il collegamento delle architetture delle applicazioni moderne
10 motivi per cui TIBCO è il leader per il collegamento delle architetture delle applicazioni moderne
La tua architettura applicativa ha bisogno di evolversi. Ecco i 10 motivi principali per scegliere TIBCO come assistente.

Come funziona un'architettura di service mesh?

Un service mesh fornisce una raccolta di proxy leggeri che lavorano a fianco dei contenitori. Ogni proxy agisce da gateway per le interazioni che avvengono tra i container. Il proxy facilita la richiesta attraverso il service mesh ai contenitori a valle appropriati che servono la richiesta, essenzialmente estrapolando dai singoli servizi la logica che governa la comunicazione da servizio a servizio e astraendola a un livello di infrastruttura.

Per fare ciò, un service mesh è costruito in un'applicazione come raccolta di proxy di rete. Il controller nel piano di controllo orchestra le connessioni tra i proxy. Il controller fornisce l'accesso alle politiche di controllo e raccoglie i parametri dai contenitori. In un service mesh, le richieste sono indirizzate fra i microservizi tramite i proxy nel loro livello di infrastruttura. Per questo motivo, i singoli proxy che compongono un service mesh sono a volte chiamati "sidecar", dal momento che sono eseguiti a fianco di ogni servizio, piuttosto che al loro interno. Insieme, questi proxy "sidecar", disaccoppiati da ogni servizio, formano una rete mesh.

Componenti di un service mesh

Scoperta del servizio

I proxy forniscono il percorso per la comunicazione tra microservizi e altre applicazioni. La scoperta avviene dinamicamente quando vengono aggiunte o rimosse nuove copie.

Indirizzamento del service mesh

I proxy leggeri service mesh hanno meccanismi di indirizzamento intelligenti incorporati, che aiutano a fornire i migliori percorsi per le richieste. L'indirizzamento viene effettuato in modo dinamico fra i servizi.

Osservabilità del service mesh

I moderni service mesh hanno componenti distribuiti nel piano di controllo, che consentono la registrazione, il tracciamento delle richieste e delle chiamate di risposta tra i servizi, il monitoraggio e gli avvisi. Gli andamenti dei malfunzionamenti sono rilevati attraverso i pannelli di controllo.

Sicurezza del service mesh

I service mesh forniscono l'autenticazione, l'autorizzazione e la crittografia della comunicazione tra i servizi.

Fornire un'esperienza ottimizzata

Quando si crea un service mesh, si desidera costruire app separate e adatte allo scopo che allineano il design, la funzione e le potenzialità dell'app per adattarsi ai flussi di lavoro delle singole personas e modalità. Ciò offre l'opportunità di creare applicazioni costruite appositamente che sono più facili da progettare, sviluppare e distribuire. Inoltre, l'applicazione può essere maggiormente focalizzata sul canale preferito dall'utente quando esegue un compito, che si tratti di un'applicazione basata su web in esecuzione in un computer portatile, un'app mobile su uno smartphone o un'interfaccia convenzionale.

Progettare un service mesh che supporti più funzioni ed esperienze richiede un back-end flessibile per supportare le diverse potenzialità e i diversi flussi di lavoro per ogni applicazione in uso. Il back-end deve offrire un'esperienza continua, quindi quando si implementa, deve essere composto per supportare le esigenze specifiche di un'app ottimizzata e adatta allo scopo. Un particolare tipo di back-end, Backends for Frontends (noto anche come BFF) supporta flussi di lavoro personalizzati per queste app ottimizzate. I servizi devono anche allinearsi con una UX specifica. Questo modello permette ai team di sviluppo di implementare rapidamente nuove interfacce per supportare nuove personas o dispositivi senza impattare su altre app o altri servizi.

Prova TIBCO Cloud Integration - Prova gratuita
Prova TIBCO Cloud Integration - Prova gratuita
TIBCO Cloud Integration potenzia il tuo business con un'integrazione basata su API più semplice e veloce. È l'integrazione semplificata.

Casi d'uso per service mesh

Distribuzioni blue-green

Quando si tratta di siti web, specialmente quelli destinati all'e-commerce, ogni secondo di inattività ha un impatto diretto sulle entrate. Con le distribuzioni blue-green, è possibile eseguire aggiornamenti complessi alle proprie applicazioni senza creare costose interruzioni del servizio. Sebbene esistano molti tipi di distribuzioni blue-green, seguono tutte lo stesso tipo di schema:

  1. Website Blue è in esecuzione con traffico in tempo reale.
  2. Una versione aggiornata del sito web (Website Green) viene distribuita e testata mentre il traffico va ancora al Website Blue.
  3. Viene eseguita la distribuzione; una piccola quantità di traffico in tempo reale viene dirottata su Website Green (mentre si osserva che tutto funziona correttamente).
  4. La quantità di traffico verso Website Green è gradualmente aumentata mentre il traffico verso Website Blue è diminuito. Il processo continua fino a quando tutto il traffico va a Website Green.
  5. Website Blue viene tolto.
  6. Aumentando gradualmente il traffico sul nuovo sito invece di aggiornare tutto in una volta, si dà al team operativo la possibilità di annullare i cambiamenti prima che ci siano conseguenze a livello di sistema. Questo è particolarmente utile nei casi in cui il servizio da aggiornare ha interdipendenze complesse con altri servizi.

    Un service mesh è una tecnologia particolarmente adatta per eseguire distribuzioni blue-green poiché ha il controllo su tutto il traffico fra i servizi e un luogo centralizzato per gestire le distribuzioni e osservare la salute globale del sistema.

    Ottimizzare la comunicazione

    Ogni nuovo servizio aggiunto a un'app, o una nuova istanza di un servizio esistente in esecuzione in un contenitore, complica l'ambiente di comunicazione e introduce nuovi punti di fallimento. All'interno di una complessa architettura di microservizi, può diventare ingombrante e quasi impossibile individuare dove si sono verificati i problemi senza un service mesh.

    Questo perché un service mesh cattura anche ogni aspetto della comunicazione da servizio a servizio come i parametri delle prestazioni. Nel tempo, i dati resi visibili dal service mesh possono essere applicati alle regole per la comunicazione fra servizi, il che si traduce in richieste di servizi più efficienti e affidabili.

    Per esempio, se un dato servizio fallisce, un service mesh può raccogliere dati su quanto tempo è passato prima che un tentativo abbia avuto successo. Man mano che i dati sui tempi di fallimento per un dato servizio si aggregano, si possono scrivere regole per determinare il tempo di attesa ottimale prima di riprovare quel servizio, assicurando che il sistema non venga sovraccaricato da tentativi non necessari.