Jump to section

Che cos'è una event mesh?

Copia URL

Un'event mesh è un'infrastruttura dinamica che permette di inviare notifiche alle applicazioni in un ambiente distribuito. Nell'ambito dell'architettura guidata dagli eventi (EDA), con evento si intende un cambiamento, un'azione o un rilevamento all'interno di un sistema che genera una notifica. Questa notifica viene poi inviata agli altri sistemi così che possano rispondere all'evento. L'event mesh crea il collegamento tra i sistemi.

agile integration illustration

Integrazione agile: un modello per l'architettura aziendale

Trovandosi a diffondere enormi quantità di dati in infrastrutture altamente distribuite, le aziende moderne devono disporre di applicazioni mission critical capaci di comunicare tra loro in modo affidabile e tempestivo per condividere i dati necessari a elaborare le interazioni e le transazioni alla base delle attività aziendali.

La sfida consiste nel capire come spostare, in modo efficiente, scalabile ed economico, i dati in un'infrastruttura che non solo si trova in aree geografiche distanti ma che esiste in cluster separati ed eterogenei. La soluzione è l'event mesh, un'infrastruttura progettata per il trasporto lineare di eventi in qualsiasi ambiente, anche tra più cloud.

Per capire l'event mesh è necessario spiegare cosa si intende per architettura guidata dagli eventi (EDA), ovvero uno stile architetturale software basato sulla comunicazione tramite eventi. Un evento è un cambiamento, un'azione o un rilevamento all'interno di un sistema che genera una notifica. Questa notifica viene poi inviata agli altri sistemi così che possano rispondere all'evento.

Un evento può essere attivato ad esempio da un cambiamento nell'indirizzo di fatturazione di un cliente, da un'azione come l'invio di un nuovo ordine, o dal rilevamento di una temperatura o del livello di carica di una batteria da parte di un sensore. Ogni evento rappresenta un'informazione che deve essere utilizzata da altre applicazioni. I vari consumer ricevono lo stesso messaggio ma utilizzano i dati associati in modo diverso per svolgere attività specifiche.

Per questa tipologia di trasferimento dati è più indicata la comunicazione basata sugli eventi e asincrona dell'EDA rispetto alla comunicazione sincrona tradizionale. Nella messaggistica sincrona, due applicazioni creano una connessione diretta, di solito mediante interfacce di programmazione delle applicazioni (API) HTTP. Affinché la comunicazione vada a buon fine, entrambi i servizi devono essere disponibili e reattivi, in caso contrario, il messaggio non può essere elaborato e l'intero sistema potrebbe bloccarsi o addirittura arrestarsi. La trasmissione sincrona non è quindi il metodo ottimale per lo scambio di grandi volumi di informazioni tra i diversi sistemi dell'azienda. 

La trasmissione asincrona invece, essendo guidata dagli eventi, permette una comunicazione simultanea, tempestiva e praticamente in tempo reale tra più applicazioni. Inoltre, se un sistema non è disponibile a ricevere un evento, la natura asincrona dell'EDA garantisce che la notifica verrà comunque recapitata non appena il sistema sarà di nuovo disponibile.

Non richiedendo runtime per l'accoppiamento tra producer eventi e consumer eventi, l'EDA è la scelta ideale per le moderne applicazioni distribuite.

All'interno di un'azienda si generano centinaia, addirittura migliaia, di eventi al minuto. Diventa quindi essenziale adottare un sistema efficace per trasmettere grandi volumi di eventi alle varie applicazioni installate su ambienti distribuiti cloud e on premise. Ecco perché le imprese guidate dagli eventi sfruttano l'event mesh.

Un'event mesh è un'infrastruttura dinamica che trasmette eventi dai producer ai consumer attraverso una rete di broker di eventi interconnessi. L'event mesh è eseguibile in ogni ambiente senza bisogno di configurare il routing degli eventi; è progettata per recapitare eventi su diverse piattaforme cloud, indipendentemente che le applicazioni siano installate su un cloud pubblico, privato o ibrido, Platform-as-a-Service (PaaS), Internet of Things (IoT) e anche on premise. 

L'event mesh permette a publisher e sottoscrittori di utilizzare i meccanismi per gli eventi nativi delle rispettive piattaforme. Ad esempio, uno sviluppatore Node.js in un cluster Kubernetes può pubblicare un evento e uno sviluppatore Java in un cluster diverso può sottoscrivere quell'evento. In pratica ogni consumer può utilizzare l'evento indipendentemente dal tipo di applicazione, dalla piattaforma su cui l'applicazione è stata sviluppata, dalla tecnologia usata per i flussi di messaggistica o dal tipo di cloud su cui è ospitata l'applicazione.

Poiché in grado di trasmettere informazioni tra le applicazioni a prescindere dal loro ambiente, un'event mesh supporta un'integrazione a basso accoppiamento tra le applicazioni, i database e i dispositivi esistenti e le moderne applicazioni cloud native basate sui microservizi.

Un'event mesh è anche in grado di adattarsi a diversi servizi di messaggistica e fungere da intermediario. Apache Kafka è il più utilizzato per la messaggistica dell'EDA, soprattutto dagli sviluppatori cloud native, ma un'event mesh supporta anche altre opzioni di messaggistica come Knative Eventing, Cloud Events, HTTP, AMQP e così via.

L'event mesh è da considerarsi come la fase finale del percorso di adozione dell'EDA. Per quanto le interazioni asincrone e le architetture guidate dagli eventi non siano una novità, l'event mesh rappresenta un approccio innovativo all'integrazione e si prospetta come l'infrastruttura di comunicazione delle aziende di nuova generazione.

Nonostante la somiglianza tra i termini, l'event mesh e la service mesh sono due infrastrutture distinte. L'event mesh è asincrona mentre la service mesh supporta un tradizionale sistema di messaggistica sincrono di tipo request-reply.

 

L'event mesh e la service mesh sono due opzioni di comunicazione complementari, forniscono un servizio diverso ma comunque efficace per gli sviluppatori, che possono scegliere la soluzione migliore per le applicazioni che stanno progettando. Occorre ricordare però che, non supportando la comunicazione asincrona guidata dagli eventi, la service mesh non può sostituire l'event mesh e risulta quindi più adatta ai deployment su un solo cluster.

Per poter soddisfare le esigenze aziendali sfruttando i vantaggi di un'architettura guidata dagli eventi, un'event mesh deve avere le seguenti caratteristiche:

  • Supportare diversi servizi di messaggistica, come Apache Kafka, Knative Eventing, HTTP, AMQP, ecc.
  • Garantire la tolleranza di errore per il recapito di messaggi affidabile, incluso il recupero automatico dai guasti di rete e le destinazioni di fallback per i messaggi non recapitabili.
  • Supportare bridge multiprotocollo tra diversi eventi, applicazioni e piattaforme di messaggistica.
  • Supportare il deployment on premise e multicloud.
  • Supportare indirizzi multicast (tutti i sottoscrittori ricevono una copia di ogni messaggio) e anycast (un sottoscrittore riceve una copia di ogni messaggio emesso).
  • Rafforzare le connessioni e la trasmissione di messaggi evento.

Scenari di utilizzo dell'event mesh

Gli scenari di utilizzo per un'architettura guidata dagli eventi integrata da un'event mesh sono molteplici, soprattutto associati a topologie multicloud complesse e ampiamente distribuite che fanno uso di diversi stack applicativi. Di seguito sono riportati alcuni dei possibili scenari di utilizzo dell'event mesh.

Integrazione di microservizi

L'event mesh permette di collegare facilmente le applicazioni basate sui microservizi tra loro e con le tecnologie esistenti.

E-commerce

L'event mesh permette di elaborare le transazioni in modo tempestivo per garantire un'interazione con il cliente veloce e affidabile su siti web e applicazioni.

Assistenza clienti

L'event mesh supporta la trasmissione veloce dei dati relativi alle interazioni con i clienti, permettendo ai team di assistenza di rispondere ai clienti in tempo reale e di creare un'esperienza personalizzata.

Servizi finanziari

L'event mesh fornisce ai provider di servizi finanziari una sincronizzazione immediata e a bassa latenza dei dati commerciali e trasmette le informazioni in tempo reale sulle transazioni sospette, così da prevenire eventuali frodi.

Connettività dell'IoT

L'event mesh fornisce una connettività affidabile e scalabile tra dispositivi IoT e sistemi back end, che permette di elaborare le metriche prodotte da pressoché qualsiasi tipologia di sensore.

Grazie all'event mesh l'azienda può ottenere i seguenti vantaggi.

Capacità di risposta in tempo reale

Il successo di un'azienda dipende dalla sua abilità di reagire al cambiamento. Trasmettendo i dati in tempo reale, sotto forma di flussi di eventi in un'architettura guidata dagli eventi, l'event mesh permette di rispondere al cambiamento in modo tempestivo. L'event mesh è una soluzione efficiente perché riesce a determinare il percorso più veloce tra un producer eventi e un consumer eventi ed eliminare così la latenza dei messaggi. In questo modo gli stakeholder aziendali possono reagire prontamente alle criticità che richiedono decisioni immediate.

Esperienza dei clienti migliorata

L'event mesh trasmette in tempo reale i dati necessari ai team di front office e alle tecnologie per l'e-commerce, consentendo all'azienda di soddisfare le esigenze dei clienti in modo veloce e puntuale e di migliorare nel complesso l'esperienza dei clienti.

Costi operativi ridotti

Offendo visibilità in tempo reale su produzione, vendite, inventario e spedizioni, l'event mesh permette all'azienda di ottimizzare le operazioni, aumentare l'efficienza e ridurre i costi.

Sviluppo più efficiente

Grazie all'event mesh, gli sviluppatori di applicazioni non sono più vincolati a un certo ambiente, sistema di messaggistica o protocollo e sono liberi di implementare la logica di business sfruttando le migliori tecnologie sul mercato. Possono sviluppare applicazioni senza bisogno di creare una rete per la distribuzione dei dati complessa e senza limitazioni sulla scelta dell'ambiente di sviluppo, della piattaforma di messaggistica e della tipologia di cloud.

Keep reading

Articolo

Cosa si intende per integrazione?

Cos'è l'integrazione? Scopri cos'è, come introdurla e i vantaggi che offre se abbinata all'open source.

Articolo

Come funziona Apache Kafka?

Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale.

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Scopri di più sull'integrazione

Prodotti

Set completo di tecnologie per l'integrazione e la messaggistica.

Accelera la distribuzione e lo sviluppo applicativo.

Trasforma il tuo business e soddisfa le richieste di un mercato in costante evoluzione.

Semplifica l'esperienza nel cloud ibrido e riduci i costi operativi e la complessità della distribuzione di applicazioni cloud native.

Scopri come progettare. distribuire ed eseguire le applicazioni in maniera sicura in ambienti cloud ibridi su larga scala.

Risorse

Ebook

Creare un'infrastruttura agile per dare vita a un'azienda adattiva

Formazione

Corso di formazione gratuito

Red Hat Agile Integration Technical Overview