#artificialintelligenceinaction

Elaborazione di Big Data: il caso Revelis

Artificial Intelligence solutions

Big Data processing

L’elaborazione di Big Data è diventata una componente essenziale per sfruttare appieno il potenziale informativo racchiuso nei vasti dataset a disposizione nell’era digitale in cui viviamo, dove la gestione efficiente dei dati è diventata cruciale per le aziende che cercano di rimanere competitive e innovative. 

Nel presente articolo, esploreremo quindi la progettazione di un’infrastruttura ad alta affidabilità per l’elaborazione di Big Data, concentrandoci sulla soluzione di successo adottata da  Revelis.

Elaborazione di Big Data: il panorama tecnologico

Prima di immergerci nei dettagli della soluzione per l’elaborazione di big data adottata da Revelis, è fondamentale comprendere le tecnologie fondamentali utilizzate per la gestione di grandi quantità di dati. La parola chiave di questo contesto è “elaborazione di Big Data”, un termine che sarà al centro della nostra analisi.

L’ecosistema tecnologico di Revelis è basato su una combinazione di strumenti all’avanguardia. La comunicazione tra le diverse componenti della piattaforma avviene attraverso Apache Kafka, una piattaforma di streaming distribuita che garantisce l’affidabilità e la scalabilità necessarie per gestire grandi volumi di dati in tempo reale.

Il linguaggio di programmazione Java è il cuore del sistema, supportato da Spring Boot e la programmazione reattiva per la creazione di un ecosistema di microservizi. Questa scelta non solo permette di sviluppare applicazioni robuste e modulari ma consente anche una scalabilità orizzontale per adattarsi alle esigenze di crescita dell’azienda.

L’architettura complessiva è orientata al cloud, con tutte le componenti containerizzate e gestite su un cluster Kubernetes. Questa scelta non solo facilita la distribuzione e la gestione delle risorse, ma garantisce anche una maggiore flessibilità nel ridimensionamento delle applicazioni in risposta alle variazioni di carico.

Per lo storage dei Big Data, Revelis sfrutta Elasticsearch, un motore di ricerca distribuito altamente scalabile e versatile. Ciò consente un rapido accesso e analisi dei dati, garantendo una base solida per l’implementazione di algoritmi di intelligenza artificiale e analisi avanzata.

Per quanto riguarda il processing dei dati in streaming, Revelis si affida ad Apache Flink, un framework open-source progettato per gestire flussi di dati in tempo reale con elevata efficienza e bassa latenza. Questa scelta è fondamentale per le applicazioni che richiedono analisi in tempo reale e decisioni immediate basate sui dati in arrivo.

L’elaborazione degli algoritmi di AI è affidata ad Apache Spark, un framework di elaborazione distribuita che offre potenti capacità di calcolo per il machine learning e l’analisi predittiva. L’integrazione di Spark consente a Revelis di implementare soluzioni AI avanzate, sfruttando il potenziale dei Big Data accumulati.

Progettazione di un’infrastruttura ad alta affidabilità per l’elaborazione dei Big Data

Ora che abbiamo delineato il contesto tecnologico di base, esploriamo come Revelis ha progettato un’infrastruttura ad alta affidabilità per l’elaborazione dei Big Data. Di seguito potete vedere il disegno generale dell’architettura implementata da Revelis.

Le funzionalità di questa piattaforma sono erogate per mezzo di un’applicazione Spring Boot, arricchita con appositi meccanismi di security, che espone opportune API REST necessarie al funzionamento del Presentation Layer e all’integrazione con piattaforme esterne che vogliano avvalersi di queste funzionalità.

L’intera piattaforma è in grado di interagire con il cluster Kubernetes su cui è installata e di creare e gestire POD o altri tipi di risorse.

I principali concetti della piattaforma (alla base anche del IoT Layer) sono i Gateway e i Device.

  • Un Device è un dispositivo hardware (ad esempio un sensore IoT) o software (una qualsiasi altra sorgente dati) in grado di trasmettere o generare dati. I dati trasmessi da un Device vengono rappresentati per mezzo di un modello unificato, interno alla piattaforma. Tale modello è usato sia per trasmettere i dati (dei device) sulla coda interna (in questo caso il dato viene serializzato in formato Json) che per memorizzarli su Elasticsearch (anche in questo caso il dato viene serializzato in formato Json);
  • Un Gateway è un’applicazione ad-hoc (in base al contesto, nella piattaforma esistono già svariate implementazioni pronte all’uso) in grado di connettersi ai Device. Quando un Gateway si connette ad un Device:
    1. Legge i suoi dati;
    2. Li decodifica nel modello unificato;
    3. Li trasmette, in formato Json, sulla coda interna (Kafka).

Il Data Layer è quindi formato da un cluster Elasticsearch (su cui vengono memorizzati i Big Data) e da un database relazionale necessario al funzionamento della piattaforma e all’arricchimento dei dati con ulteriori meta informazioni.

Nel Business Layer, oltre allo strato di API REST, trovano spazio tutte quelle componenti necessarie ad erogare servizi quali:

  • Gestione di allarmi e notifiche: tramite un opportuno engine di regole è possibile configurare flussi di elaborazione per il monitoraggio in real-time di determinate condizioni, al soddisfacimento delle quali è possibile generare messaggi di allarmi da inviare su specifici canali (email, whatsapp, notifiche web);
  • Gestione dei processi aziendali (BPM): tramite un opportuno ambiente grafico è possibile disegnare ed eseguire un qualsiasi processo aziendale, integrando informazioni provenienti da qualsiasi sorgente (ad esempio, da macchinari IoT);
  • Manutenzione predittiva: nel caso di dati provenienti da macchinari, la piattaforma è dotata di un certo numero di algoritmi in grado rilevare guasti in maniera preventiva;
  • Analisi delle anomalie: nel caso del monitoraggio di dispositivi IoT, la piattaforma è dotata di algoritmi in grado di capire se un dato sensore sta trasmettendo o meno dati corretti;
  • Analisi personalizzate: grazie al supporto nativo di framework e librerie quali Apache Spark, Keras, Tensorflow, ecc. la piattaforma consente di integrare qualsiasi tipo di analisi personalizzata.

I vantaggi della soluzione sviluppata da Revelis

La soluzione sviluppata da Revelis per l’elaborazione di Big Data è in grado di offrire numerosi vantaggi. Vediamoli nel dettaglio.

Comunicazione affidabile con Apache Kafka

La scelta di utilizzare Apache Kafka per la comunicazione tra le componenti della piattaforma ha dimostrato di essere fondamentale per garantire la coerenza e l’affidabilità delle informazioni scambiate. Grazie a Kafka, Revelis ha implementato un sistema di messaggistica distribuito che gestisce grandi volumi di dati senza compromettere la velocità o la sicurezza.

Programmazione Java e microservizi scalabili

Il linguaggio di programmazione Java, supportato da Spring Boot e la programmazione reattiva, ha fornito a Revelis la flessibilità necessaria per sviluppare un ecosistema di microservizi altamente scalabili e fault-tolerant. Questa architettura modulare permette a Revelis di adattarsi rapidamente ai cambiamenti del mercato e di distribuire nuove funzionalità senza interrompere il flusso operativo.

Architettura Cloud-Oriented con Kubernetes

L’adozione di un’architettura cloud-oriented, con tutte le componenti containerizzate e gestite su un cluster Kubernetes, ha migliorato significativamente la flessibilità operativa di Revelis. La scalabilità automatica e la gestione semplificata delle risorse hanno consentito un utilizzo efficiente delle risorse, riducendo al minimo i tempi di inattività e ottimizzando le prestazioni complessive.

Storage efficiente con Elasticsearch

Elasticsearch si è dimostrato un’opzione ideale per lo storage dei Big Data di Revelis. La sua capacità di indicizzare rapidamente e recuperare informazioni da grandi quantità di dati ha permesso all’azienda di accedere in modo efficiente alle informazioni cruciali per l’analisi e l’implementazione di algoritmi di AI.

Processing in streaming con Apache Flink ed elaborazione di AI con Apache Spark

L’utilizzo combinato di Apache Flink per il processing dei dati in streaming e Apache Spark per l’elaborazione degli algoritmi di AI ha consentito a Revelis di ottenere il massimo dalle sue capacità analitiche. Il flusso costante di dati è gestito in modo efficiente da Flink, consentendo analisi in tempo reale, mentre Spark offre le risorse computazionali necessarie per implementare algoritmi di AI avanzati su vasti dataset.

Conclusioni

In conclusione, la progettazione di un’infrastruttura ad alta affidabilità per l’elaborazione di Big Data è una sfida cruciale per le aziende che cercano di trarre il massimo beneficio dai dati a loro disposizione. Nel caso di Revelis, la combinazione di tecnologie avanzate come Apache Kafka, Java, Kubernetes, Elasticsearch, Apache Flink e Apache Spark ha creato un ambiente robusto e scalabile, consentendo all’azienda di fornire soluzioni di AI e analisi di Big Data all’avanguardia.

L’esperienza di Revelis dimostra che investire in un’infrastruttura tecnologica solida è fondamentale per affrontare le sfide della gestione dei Big Data e consentire un’analisi avanzata che può portare a decisioni più informate e strategie aziendali più efficaci. Con l’elaborazione di Big Data al centro delle operazioni, Revelis dimostra che l’innovazione tecnologica è la chiave per il successo nell’era digitale.

Autore: Massimiliano Ruffolo