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...
Perché Apache Kafka sta attirando gradualmente i più grandi brand mondiali?
Gran parte delle imprese si stia muovendo verso ambienti con streaming di dati in tempo reale. Questo permette a Kafka, con le sue varie evoluzioni, di diventare un asse portante per tutto lo sviluppo applicativo di queste realtà.
Proviamo quindi a dare una spiegazione descrivendo le principali peculiarità di questa piattaforma in continua crescita.
Cos’è Kafka
Apache Kafka è un motore di stream processing distribuito per costruire pipeline di dati in real-time e applicazioni in streaming. Permette di ricevere dati da diversi tipi di sorgenti (detti producer), elaborandoli all’interno della sua architettura e rendendoli disponibili ai riceventi (consumer). All’interno dell’architettura è possibile costruire applicazioni attraverso la libreria Kafka Streams per operazioni di filtraggio e arricchimento dati.
La gestione dei flussi di dati non è l’unica potenzialità di Kafka, che offre una serie di funzionalità aggiuntive:
- Storage Distribuito: consente la memorizzazione dei messaggi per prevenire la perdita dei dati, con la facoltà di stabilire un preciso tempo di conservazione degli stessi
- ETL (Extract, Transform, Load): raccolta, trasformazione e caricamento del dato su altri sistemi. Grazie al contributo di Kafka Connect è disponibile una serie di connettori dedicati (Elasticsearch, NEO4J, Cassandra ecc)
- Stream Processing: capacità di effettuare operazioni sui dati in tempo reale, agendo direttamente sul dato durante il flusso
Da Big Data a Fast Data: Kafka cambia l’approccio alla gestione dei dati con il Data Stream Processing
In un contesto moderno, in cui la velocità di elaborazione dei dati sembra essere l’approccio più funzionale nella gestione di moltissimi servizi, Kafka si offre come una delle soluzioni più performanti e scalabili. Permette infatti di superare un modello di elaborazione di dati in Batch, eseguita in background e a intervalli prestabiliti. Fornisce un processing e un arricchimento dei dati in real time, garantendo al contempo robustezza e semplicità d’uso.
Vantaggi e casi d’uso
Vediamo nel dettaglio alcuni punti di forza determinanti nella scelta della soluzione:
- IoT, sensor data analysis: l’utilizzo di Kafka si colloca in un contesto in cui l’uso di sensori applicati a macchine industriali, autovetture e oggetti di uso comune sta crescendo enormemente. Offre infatti la possibilità di gestire le enormi quantità di dati generate dai sensori, con bassissima latenza.
- Batch Processing —> Real time processing: attraverso lo stream processing è possibile operare modifiche o trasformazioni dei dati durante il flusso. Non è quindi necessario affidarsi a un servizio esterno per gestire attività di storage e processing.
- Scalabilità e Fault-tolerance: la velocità di elaborazione e il volume dei dati in entrata possono essere variabili, quindi è necessario poter manipolare la capacità di uno strumento di messaging per modulare le variabili di precisione o performance. Kafka è in grado di gestire tutto questo, e grazie alla persistenza dei dati all’interno dei cluster (anche questa gestibile dall’utente) garantisce anche un alto livello di fault tolerance.
- Microservizi e comunicazione asincrona: Kafka può essere utilizzato come strumento per lo scambio di messaggi asincroni in un ecosistema di microservizi. Velocizza le comunicazioni tra le applicazioni e riduce al minimo il rischio di perdita di informazioni
Uno dei contesti d’uso più interessanti è la recente applicazione di Kafka nello sviluppo di vetture intelligenti, portato avanti da Audi.
L’utilizzo di questo strumento permette di ricevere in tempo reale i dati registrati dai sensori delle vetture, rendendo possibile il monitoraggio in tempo reale dello stato delle macchine. dati analizzati possono essere utili per analisi più avanzate: le informazioni rilevate sullo stato di sollecitazione degli ammortizzatori delle vetture possono fornire informazioni aggiuntive sull’ambiente circostante, lo stato del manto stradale, condizioni atmosferiche e molto altro.
Confluent, la soluzione opensource basata su Apache Kafka™, per costruire funzioni avanzate di Stream Data Processing
Confluent è la soluzione opensource basata su Apache Kafka, per costruire funzioni avanzate di Stream Data Processing. Ideata dai creatori di Kafka, la piattaforma migliora l’applicazione permettendogli di espandere le sue capacità di integrazione, in modo da aggiungere strumenti per ottimizzare, gestire i cluster e garantire la sicurezza dei flussi di dati. Confluent rende Kafka più facile da costruire e più facile da usare, ed è disponibile in licenza Open Source ed Enterprise, tramite un abbonamento dedicato.
Altro su Apache Kafka
- Confluent: come è possibile realizzare microservizi nell’ecosistema Apache Kafka —> Scarica il whitepaper
- Video di presentazione di Apache Kafka di Stefano Pampaloni a RedHat 2018
Contatta Seacom
Vuoi rimanere aggiornato su tutte novità su Apache kafka o richiedere una consulenza a Seacom?
Visita la pagina dedicata, oppure