Sentiamo in continuazione parlare di flussi dati in contesti molto diversi, da quelli generati all’interno dei software di gioco a quelli relativi agli acquisti effettuati su portali di e-commerce. Siamo parte di una grande macchina che produce continuamente una quantità enorme di dati.
Immaginiamoci il mondo composto da un gigantesco flusso di dati (o data streaming come lo chiameremo successivamente), anzi da innumerevoli flussi di dati.
Ogni dato, sia preso singolarmente che clusterizzato, può generare un enorme valore in termini di business e, più in generale, anche di conoscenza. Questo flusso non può per sua natura essere immobile ma, al contrario, in continuo divenire. Per interpretare questo flusso di dati è necessario avere la capacità di catturare, analizzare e estrarre il valore intrinseco dei dati in tempo reale.
Bene, ora possiamo iniziare dal principio.
Cosa è il Data streaming?
È una modalità di gestione dei dati che opera in tempo reale intercettandone i molteplici flussi e, allo stesso tempo, effettuando su di essi una serie di analisi e operazioni. Questo tipo di gestione “sincrona” supera quella “asincrona” utilizzata tradizionalmente caricando i dati in strutture ad hoc per sottoporli ad analisi successive (batch processing).
Permette di:
- ricevere dati in tempo reale (message broking)
- processare i dati in tempo reale (data enrichment)
- memorizzare i dati (storage)
I dati vengono generati in modo continuo da diverse fonti che generano così un flusso che viene trasmesso e analizzato in tempo reale o in alcuni casi in “quasi” tempo reale (near real time).
L’approccio del Data Streaming si avvale delle capacità della tecnologia scelta per effettuare continue analisi matematiche o statistiche all’interno del flusso di dati. Le soluzioni di stream processing sono infatti progettate per gestire grandi volumi in tempo reale con un’architettura scalabile seguendo queste caratteristiche:
- elaborazioni di grandi quantità di eventi
- risposte in tempo reale
- prestazioni e scalabilità (i volumi di dati aumentano di dimensioni e complessità senza abbassamento dell’efficienza)
- integrazione rapida con infrastrutture esistenti
- sistemi di alerting
Il fattore real-time quanto è importante?
Ottenere le informazioni salienti al momento giusto.
Sembra piuttosto importante no? Infatti è proprio la variabile tempo a fare spesso la differenza nella qualità del servizio, sia se si parla di assistenza ai clienti che di servizi che richiedono la continuità di servizio. Le informazioni, catturate ed analizzate, non solo permettono una visione più ampia del business alle aziende, ma consentono risposte tempestive e, di conseguenza, efficaci.
Ad esempio le aziende possono monitorare i cambiamenti nei gusti e nei comportamenti di acquisto dei clienti e cambiare in modo rapido offerte, servizi o modelli in vendita. O ancora: le fabbriche possono ottimizzare le produzioni a seconda della richiesta effettiva e reale e non guardando a “proiezioni” stimate a priori.
Spesso capita di capire il concetto di una determinata nozione, tecnologia o modalità specifica in modo astratto, senza però riuscire ad afferrarne realmente l’utilizzo concreto, i bisogni che soddisfa e l’applicabilità nel mondo reale.
Per evitare che anche questo sia uno di quei casi ecco a seguire qualche esempio reale!
In ambito industriale ed agricolo le applicazioni in streaming, grazie ai sensori associati a macchinari e dispositivi che raccolgono dati, possono monitorare le prestazioni e anticipare fermi e guasti, migliorando l’efficienza del sistema produttivo.
Nel settore energetico questo tipo di tecnologia è utile ad esempio a monitorare in tempo reale lo stato di pannelli fotovoltaici o la quantità di energia in transito, avendo la possibilità di gestire costantemente la resa energetica e di prevedere interventi di manutenzione sui dispositivi.
Nel gaming online vengono raccolte enormi quantità di dati relative al gioco stesso e alle interazioni tra i giocatori. In questo caso è possibile analizzare in tempo reale questi dati per creare delle risposte o offerte ad hoc, aumentando la customer satisfaction, il coinvolgimento nel gioco stesso e sperabilmente la fedeltà al servizio.
Nell’health & fitness le apparecchiature mediche e i fitness tracker, munite di sensori, raccolgono e trasmettono informazioni per determinate decisioni mediche o monitorano più in generale attività legate al sonno, all’alimentazione e all’allenamento. La trasmissione e l’analisi in tempo reale di queste informazioni rende il servizio prezioso e di reale supporto sia agli esperti del settore che agli utenti stessi.
In ambito e-commerce la gestione dell’inventario è importante per la soddisfazione del cliente. Quando si effettua un acquisto, l’articolo acquistato viene rimosso dall’inventario. Cosa accade se si acquista l’ultimo articolo rimasto nel suo genere, in un determinato momento, contemporaneamente ad un altro utente? Semplice. Solo uno dei due avrà la possibilità di concludere l’ordine con successo. Per lo sfortunato non rimarrà che una brutta esperienza utente, poiché verrà messo al corrente della mancanza del prodotto in inventario a processo di acquisto avviato o quasi concluso.
Grazie agli aggiornamenti in tempo reale degli eventi, l’utente può essere informato che il prodotto non è più disponibile e il carrello può essere svuotato automaticamente dei prodotti non più acquistabili in quel momento. In questo modo non solo il servizio viene migliorato ma vengono tutelate le aspettative di acquisto del cliente.
Questi sono solo alcuni degli scenari citabili e dei settori che potremmo prendere in considerazione.
Tecnicamente, come si gestisce il Data Streaming?
Senza alcun dubbio, a parere di tutti gli esperti del settore, la tecnologia migliore per la progettazione di applicazioni streaming è Apache Kafka.
Siamo partiti dallo spiegare cosa è lo streaming dati e a immagine una serie di reali casi d’uso per comprenderne il funzionamento e le potenzialità di miglioramento per differenti tipi di servizio.
Ora passiamo alla tecnologia:
Che cosa è Kafka?
Una delle soluzioni open source più performanti e scalabili nel Data Streaming.
È una piattaforma di data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale. Permette di ricevere dati da diversi tipi di sorgenti (detti producer), elaborandoli all’interno della sua architettura e rendendoli disponibili ai riceventi (consumer).
Nasce nel 2010 dall’esigenza di uno dei più celebri social media al mondo di gestire le problematiche relative alla gestione di grandi quantità di dati sul web.
È progettata per gestire flussi di dati provenienti da più fonti, producer, distribuendoli a più riceventi, consumer. In breve, consente di elaborare grandi volumi di dati, rendendoli immediatamente disponibili agli utenti.
A cosa serve e quali sarebbero i vantaggi?
Partiamo dal beneficio che porta l’utilizzo di Apache Kafka: gli utenti possono usufruire dei dati in tempo reale. E dell’importanza di questo fattore in determinati contesti ne abbiamo parlato per arrivare fino a qui.
Apache Kafka è integrato nei flussi di data streaming che consentono la condivisione di dati tra sistemi e/o applicazioni e può essere utilizzato in tutti quei casi in cui velocità e scalabilità elevate sono fondamentali.
Nelle problematiche legate ai Big Data, in ambienti applicativi, come nel settore dell’IoT (Internet of Things) e nei social media, dove il volume di dati crescendo in maniera costante e veloce può compromettere le applicazioni esistenti, l’elaborazione scalabile di Apache Kafka consente di rispondere in modo corretto gestendo la crescita (improvvisa o costante) dei dati.
Apache Kafka permette ad esempio agli utenti di usufruire dei dati più velocemente, grazie alla sua capacità di limitare al minimo il ricorso a integrazioni point to point per la condivisione di dati in determinate applicazioni, riducendo infatti la latenza a millisecondi. Un vantaggio tutt’altro che trascurabile per determinati servizi, come l’e-commerce, di cui abbiamo citato precedentemente un caso d’uso, che sulla tempestività dell’aggiornamento dei dati e dell’analisi della stessa basa gran parte della qualità del servizio offerto.
Per concludere
Le caratteristiche di questa tecnologia hanno portato da qualche anno il nostro team tecnico ad avvicinarsi a questo mondo, diventandone ad oggi a tutti gli effetti esperti.
Contatta i nostri esperti per saperne di più su Apache Kafka!