Il Red Hat Summit Connect torna anche quest’anno, consolidandosi come il principale evento in Italia dedicato all'innovazione tecnologica e al mondo open source. Le due tappe italiane, che si terranno il 7 novembre a Roma e il 19 novembre a Milano, rappresentano...
Com’è che abbiamo così tante informazioni, ma sappiamo così poco?
Noam Chomsky
La gestione dei flussi di dati sta diventando un componente fondamentale per le grandi aziende a causa della crescita esponenziale di informazioni provenienti da fonti di vario tipo, come sensori IoT, registri di sicurezza e applicazioni Web. In questi contesti si ha che fare con dati che vengono generati continuamente, in un flusso continuo, a volumi elevati e ad alta velocità, e che devono essere elaborati.
Disporre di così tante informazioni nei contesti aziendali può diventare un valore aggiunto in termini di business. Ma per ottenere il “sapere” da queste occorre elaborarli con un approccio fondamentale, ovvero il data streaming.
Una moderna architettura di streaming risulta vantaggiosa per le organizzazioni poiché permette:
- Gestione di flussi infiniti di eventi
- Elaborazione in tempo reale o quasi in tempo reale
- Rilevamento di anomalie
- Facile scalabilità all’aumentare del volume dei dati
Andiamo ad osservare in quali grandi realtà aziendali e tipi di settori è stata presa la scelta affidarsi all’approccio del data streaming e per quale necessità.
Il Data Streaming per la distribuzione di contenuti multimediali
Netflix, una delle piattaforme più innovative e utilizzate al mondo per la distribuzione via internet di film, serie televisive e altri contenuti d’intrattenimento a pagamento, utilizza la soluzione di data streaming Apache Kafka per inviare e ricevere notifiche.
Netflix utilizza ben due versioni di Kafka. Fronting Kafka, utilizzati per la raccolta e il buffering dei dati dai produttori e Consumer Kafka, che serve per l’indirizzamento dei contenuti ai consumatori. La quantità di dati da elaborare è molto grande, tanto è che vengono utilizzati ben 36 cluster Kafka (di cui 24 sono Fronting Kafka e 12 sono Consumer Kafka) per lavorare su quasi 700 miliardi di istanze al giorno.
Le attività di Data Streaming effettuate su Netflix permettono di effettuare anomaly detection utilizzando anche frameworks diversi, come dimostra il seguente video.
Il Data Streaming a supporto dei financial services
Cambiamo ambito e spostiamoci in quello finanziario. Goldman Sachs è una delle più importanti società del settore dei servizi finanziari, la quale ha sviluppato una piattaforma principale per gestire i dati che si aggirano intorno a 1,5 Tb alla settimana. Questa piattaforma utilizza Apache Kafka come soluzione di messaggistica per publish/subscribe.
I fattori chiave di Goldman Sachs erano lo sviluppo di un sistema con piattaforma centrale in grado di ottenere un tasso di prevenzione della perdita di dati più elevato, un più facile ripristino di emergenza e ridurre al minimo i tempi di interruzione. Questi obiettivi sono stati resi possibili attraverso l’implementazione di successo del sistema Core Platform e Apache Kafka.
Sono sempre di più le banche e le società finanziare che scelgono di affidarsi all’analisi in real time. Questo significa che vengono integrate in tempo reale diverse fonti informative in streaming, soprattutto in ambito IoT: tra queste ricordiamo real-time advertising, fraud detection (rilevamento delle frodi), predictive maintenance (manutenzione preventiva), new product development.
Apache Kafka e New York Times: un servizio migliore per utenti e abbonati
Anche il New York Times, una delle più antiche e celebri testate statunitensi, si è evoluto in questa era di trasformazione digitale. L’uso di tecnologie come l’analisi dei big data non è una novità per questa testata. Diamo un’occhiata a come Apache Kafka ha trasformato l’elaborazione dei dati del New York Times. Ogni volta che un articolo esce sul New York Times deve diventare disponibile su tutti i tipi di piattaforme e consegnato ai loro abbonati in pochissimo tempo. In precedenza vi sono stati alcuni problemi che impedivano agli utenti di accedere agli articoli precedentemente pubblicati.
Per risolvere questo problema, il NYT ha sviluppato un progetto per le pipeline di pubblicazione. L’uso di Apache Kafka diventa quindi fondamentale per rimuovere i problemi su API attraverso la sua architettura basata su log. Infatti, trattandosi di un sistema di messaggi pub-sub, la piattaforma non solo copre l’integrazione delle informazioni. Entra infatti in azione anche la parte di analisi dei dati a differenza di altri servizi di architettura basati su log. Apache Kafka ha così semplificato le implementazioni di backend e front-end. Ha ridotto anche il carico di lavoro degli sviluppatori e aiutato il celebre quotidiano a migliorare l’accessibilità dei contenuti.
Il Data Streaming per il trasporto pubblico
Sempre dalla “Grande Mela” arriva la conferma di quanto Apache Kafka sia diventata una delle tecnologie preferite da chi sceglie di elaborare dati in streaming.
MTA, l’agenzia che gestisce le metropolitane di New York, pubblica sempre aggiornamenti in tempo reale sui viaggi in metropolitana tramite una serie di API RESTful disponibili al pubblico.
Per interagire con il modello pub-sub Kafka, è stato implementato un produttore di messaggi che genera flussi di informazioni su Kafka. Il flusso di dati di MTA si aggiorna ogni 30 secondi, quindi il produttore va a interrogare l’API per gli ultimi aggiornamenti sui viaggi in metropolitana pubblicandoli per Kafka.
Dall’altro lato viene creato un messaggio utente che elaborerà le informazioni di aggiornamento man mano che arrivano. Il consumatore mantiene una struttura di dati in memoria che memorizza i tempi del treno di arrivo successivo per ogni stazione per linea della metropolitana. In questo modo è possibile mettere a disposizione un elenco dei prossimi orari di arrivo del treno per ogni stazione.
L’elaborazione dei flussi di dati per una Smart City ideale
L’uso della tecnologia per migliorare la vita dei cittadini trasforma una città in una Smart City. Stiamo parlando di un contesto cittadino dove si applicano strategie di pianificazione urbanistica finalizzate all’ottimizzazione e all’innovazione dei servizi pubblici anche per ridurre l’impatto ambientale. Queste città acquisiscono dati tramite sensori e utilizzano tecniche di analisi dei Big Data per migliorare gli aspetti ambientali, finanziari e sociali della vita urbana.
La diffusa crescita dei Big Data e l’evoluzione delle tecnologie IoT consentono alle città di avere a disposizione dati e informazioni elaborati in tempo reale. In una Smart City infatti vari dispositivi IoT generano continuamente flussi di dati che devono essere analizzati nel più breve periodo di tempo possibile e rivelando anomalie in tempo reale. Per poter gestire l’elaborazione dei dati in tempo reale per le Smart Cities sono stati fatti alcuni studi, pubblicati sul portale Springer Link, e concentrati sulla valutazione delle prestazioni di tre piattaforme, ovvero Apache Storm, Apache Spark Streaming e Apache Flink.
Indipendentemente da dove sta avvenendo la processazione dei dati (ovvero se margine o al centro del livello di elaborazione), i risultati sperimentali possono essere presi in considerazione per determinare il miglior framework. Questo parametro si stabilisce in base ai requisiti di elaborazione delle applicazioni di streaming sempre in termini di prestazioni, produttività e scalabilità.
Questi esperimenti hanno mostrato che i framework Storm e Flink hanno prestazioni molto simili, mentre Spark Streaming che ha una latenza molto più elevata fornisce anche un throughput più elevato per elaborare elevati volumi di dati generati in Smart Cities.
L’importanza dell’analisi in tempo reale dei dati nello sport
Il Data Streaming può essere utilizzato anche come sistema di acquisizione e analisi dei dati del movimento nel mondo dello sport, tramite dei sensori che consentono di catturare tutti i cambiamenti anche ad alta velocità. Le informazioni che si ottengono diventano fondamentali, a seconda della disciplina, per il miglioramento della tecnica, il monitoraggio degli allenamenti e la prevenzione degli infortuni. I sensori, posizionati sul proprio corpo o sull’oggetto utilizzato, come ad esempio su una racchetta da tennis, forniscono così flussi di dati in tempo reale da poter elaborare con vari tipi di soluzioni, come anche quelle citate in precedenza. Si tratta di un tipo di strategia che sta sempre più prendendo piede tra le grandi squadre sportive e i singoli atleti per avere informazioni fruibili con le quali stabilire determinati parametri e programmare allenamenti e gare ufficiali.
Fonti:
kafka.apache.org
medium.com, hackernoon building a real time nyc subway tracker with Apache Kafka
springer.com, Evaluation of distributed stream processing frameworks for IoT applications in Smart Cities
Vuoi saperne di più?
Se desideri approfondire l’approccio Data Streaming e conoscere nel dettaglio vantaggi e potenzialità di Apache Kafka contatta Seacom.