Casi d'uso di Apache Kafka: promuovere l'innovazione in settori diversi

Giovane uomo che indossa cuffie per la realtà virtuale

Autore

Mesh Flinders

Staff Writer

IBM Think

Apache Kafka è una piattaforma di streaming distribuita open source che consente agli sviluppatori di creare applicazioni basate su eventi in tempo reale. Con Apache Kafka, gli sviluppatori possono creare applicazioni che utilizzano continuamente i dati in streaming e offrono esperienze in tempo reale agli utenti.

Che si tratti di controllare il saldo di un account, di guardare Netflix in streaming o di navigare su LinkedIn, gli utenti di oggi si aspettano esperienze quasi in tempo reale dalle app. L'architettura orientata agli eventi di Apache Kafka è stata progettata per memorizzare dati e trasmettere eventi in tempo reale, rendendola sia un broker di messaggi sia un'unità di storage che consente esperienze utente in tempo reale attraverso molti tipi diversi di applicazioni.

Apache Kafka è uno dei sistemi di trattamento dei dati open source più popolari esistenti, con quasi 50.000 aziende che utilizzano e una quota di mercato del 26,7%.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Come funziona Apache Kafka?

Kafka è un sistema distribuito, ossia una raccolta di diversi programmi software che condividono le risorse computazionali su più nodi (computer) per raggiungere un unico obiettivo. Questa architettura rende Kafka più tollerante ai guasti rispetto ad altri sistemi, perché riesce a gestire la perdita di un singolo nodo o macchina nel sistema continuando a funzionare.

Tra i sistemi distribuiti, Apache si è distinto come uno dei migliori strumenti per costruire architetture di microservizi , un approccio cloud-native in cui un'unica applicazione è composta da molti componenti più piccoli e connessi. Oltre agli ambienti cloud-native, gli sviluppatori utilizzano anche Apache Kafka on Kubernetes, una piattaforma open-source di orchestrazione container, per sviluppare app che utilizzano framework serverless .

Per gli sviluppatori, gran parte del fascino di Apache risiede nella sua architettura unica. Apache utilizza un sistema di messaggistica pubblica-abbonarsi, un sistema che prevede la cosiddetta comunicazione asincrona, facilitando agli sviluppatori la creazione di applicazioni avanzate e architettonicamente complesse. L'architettura di Apache è composta da tre categorie: eventi, producer e consumer, e si basa fortemente sulle application programming interface (API) per funzionare.

Concetti importanti di Kafka

Apache Kafka lavora su quattro concetti fondamentali: eventi, streaming, producer e consumer. Ecco una breve panoramica su come ciascuno di questi modelli funziona insieme per dare ad Apache Kafka le sue funzionalità fondamentali.

Eventi e streaming

Quando un utente interagisce con un sito web, ad esempio per registrarsi a un servizio o effettuare un ordine, si parla di "evento". Nell'architettura Apache, un evento è qualsiasi messaggio che contiene informazioni che descrivono ciò che un utente ha fatto. Ad esempio, se un utente si è registrato su un sito web, un record evento conterrà il suo nome e il suo indirizzo e-mail.

Forse nessun'altra funzionalità distingue Apache Kafka da altre architetture di data storage più della sua capacità di event streaming, una capacità nota come "event streaming" o semplicemente "streaming" (e nello specifico, nel caso di Apache Kafka, come Kafka streams). L'event streaming è quando i dati generati da centinaia o addirittura migliaia di producer vengono inviati simultaneamente tramite una piattaforma ai consumer.

Producer e consumer

Un "producer", nell'architettura Apache Kafka, è tutto ciò che può creare dati, ad esempio un server web, un'applicazione o un componente applicativo, un Internet of Things (IoT), e molti altri. Un "consumer" è qualsiasi componente che necessita dei dati creati dal produttore per funzionare. Ad esempio, in un'app IoT, i dati possono essere informazioni provenienti da sensori collegati a internet, come un termometro o un sensore in un veicolo a guida autonoma che rileva il cambio di colore di un semaforo.

L'architettura di Kafka è progettata in modo tale da poter gestire un flusso costante di dati sugli eventi generati dai producer, mantenere registri accurati di ogni evento e pubblicare costantemente un flusso di questi record ai consumer.

IBM Kafka

Che cos'è Kafka?

Whitney Lee di IBM Cloud spiega come Apache Kafka, una piattaforma di streaming open source, consente agli sviluppatori di creare applicazioni che utilizzano i flussi di eventi per creare applicazioni ad alte prestazioni.

Casi d'uso di Apache Kafka

La capacità principale di Apache Kafka di elaborare dati in tempo reale ha spalancato le porte a ciò che le app possono fare in molti settori. Utilizzando Kafka, le aziende stanno esplorando nuovi modi per sfruttare lo streaming di dati per aumentare i ricavi, promuovere la trasformazione digitale e creare esperienze piacevoli per i propri clienti. Ecco alcuni degli esempi più sorprendenti.

Internet of Things (IoT)

L'Internet of Things (IoT), una rete di dispositivi integrati con sensori che permettono loro di raccogliere e condividere dati tramite Internet, si basa fortemente sull'architettura Apache Kafka. Ad esempio, i sensori collegati a un mulino a vento utilizzano le funzionalità IoT per trasmettere dati come la velocità del vento, la temperatura e l'umidità su internet. In questa architettura, ogni sensore è un producer, che genera dati ogni secondo che invia a un server o database di back-end, il consumer, per l'elaborazione.

L'architettura Kafka facilita questa trasmissione e ricezione di dati, nonché la loro elaborazione, in tempo reale, consentendo a scienziati e ingegneri di seguire le condizioni meteorologiche da centinaia o migliaia di chilometri di distanza. Le funzionalità di gestione dei registri e di coda di messaggi di Apache garantiscono la qualità e l'accuratezza dei dati raccolti.

Servizi finanziari

Allo stesso modo in cui Apache consente la raccolta di dati tramite dispositivi IoT che possono essere trasmessi in tempo reale ai consumer, consente anche la raccolta e l'analisi di informazioni dal mercato azionario.

Apache è stato utilizzato per molti workload critici e ad alto volume, essenziali per la negoziazione di azioni e il monitoraggio dei mercati finanziari. Alcune delle più grandi banche e istituzioni finanziarie al mondo, come PayPal, Ing e JP Morgan Chase, lo utilizzano per l'analisi dei dati in tempo reale, il rilevamento delle frodi finanziarie, la gestione del rischio nelle operazioni bancarie, la conformità normativa, l'analisi di mercato e altro ancora.

Retail

I rivenditori online e i siti di e-commerce devono elaborare migliaia di ordini dalla loro app o sito web ogni giorno, e Kafka svolge un ruolo centrale nel rendere tutto questo possibile per molte aziende. I tempi di risposta e la customer relationship management (CRM) sono fondamentali per il successo nel retail, quindi è importante che gli ordini vengano elaborati in modo rapido e accurato.

Kafka aiuta a semplificare la comunicazione tra clienti e aziende, utilizzando la sua pipeline dati per registrare accuratamente eventi e tenere traccia di ordini e cancellazioni, avvisando tutte le parti interessate in tempo reale. Oltre a elaborare gli ordini, Kafka genera dati accurati che possono essere analizzati per valutare le prestazioni aziendali e scoprire preziosi insight.

Assistenza sanitaria

Il settore sanitario si affida a Kafka per collegare gli ospedali a cartelle cliniche elettroniche critiche (EHR) e informazioni riservate dei pazienti. Kafka facilita la comunicazione bidirezionale che alimenta le app sanitarie che si basano su dati generati in tempo reale da diverse fonti. Le funzionalità di Kafka permettono anche la condivisione di conoscenze in tempo reale, ad esempio, l'allergia di un paziente a un certo farmaco.

Oltre ad aiutare i medici a ottenere dati in tempo reale che li aiutino a curare i pazienti, Kafka è critico anche per la comunità della ricerca medica. Le sue funzionalità di data storage e analytics aiutano i ricercatori a perlustrare i dati medici per trovare insight sulle malattie e sulla cura dei pazienti, accelerando le scoperte mediche.

Telecomunicazioni

Le aziende di telecomunicazioni utilizzano Apache per una varietà di servizi. Principalmente, il suo streaming dati in tempo reale viene utilizzato per monitorare le reti che alimentano milioni di dispositivi wireless in tutto il mondo. Apache raccoglie dati sulle operazioni di rete che trasmette in tempo reale ai server che li analizzano costantemente per individuare eventuali problemi. I registri che Apache conserva per le aziende di telecomunicazioni includono chiamate, messaggi, dati dei clienti, utilizzo, chiamate interrotte e altro ancora.

Gaming

Le piattaforme di gioco più avanzate di oggi si basano sulla comunicazione in tempo reale tra giocatori a centinaia o persino migliaia di chilometri di distanza. Se in un gioco in cui il tempo di reazione dei giocatori è fondamentale per il loro successo si verifica un ritardo, le prestazioni ne risentiranno. Inoltre, l'industria del gaming è in piena espansione ultimamente, crescendo con un tasso di crescita annuo composto (CAGR) del 13,4% e aumentando l'attenzione sulle sue metriche principali.

Apache alimenta la comunicazione e l'interazione fulminee tra i giocatori che rendono così popolari gli ecosistemi di gioco iperreali. I nuovi giochi si affidano alle capacità di streaming in tempo reale di Apache, oltre alle sue funzioni di real-time analytics e data storage. Inoltre, la pipeline di streaming di Apache aiuta i giocatori a monitorarsi a vicenda in tempo reale, assicurando che i movimenti vengano trasmessi agli altri istantaneamente. 

Benefici di Apache Kafka

Gli sviluppatori e gli ingegneri di alcune delle più grandi e moderne aziende del mondo utilizzano Apache per realizzare molte applicazioni aziendali in tempo reale. Apache Kafka è alla base di app che servono il settore finanziario, i giganti dello shopping online, le piattaforme di streaming di musica e video, gli innovatori dei videogiochi e altro ancora. Sviluppare con Kafka presenta numerosi vantaggi rispetto ad altre piattaforme. Ecco alcuni dei più noti.

Velocità

Il sistema di trattamento dei dati di Kafka utilizza le API in un modo unico che lo aiuta a ottimizzare l'integrazione dei dati con molti altri progetti di storage, come le popolari architetture SQL e NoSQL, utilizzate per l'analytics dei big data.

Scalabilità

Kafka è stato creato per risolvere problemi di  latenza elevata nell'elaborazione batch-queue su alcuni dei siti web più trafficati al mondo. Presenta la cosiddetta scalabilità elastica multi-cluster, che consente di distribuire i workflow su più cluster Kafka, anziché su uno solo, garantendo maggiore scalabilità, elevata produttività e bassa latenza.

Connettività

Apache Connect, uno strumento di data streaming, è dotato di 120 connettori precostituiti che permettono ad Apache di integrarsi con tutte le soluzioni di data storage backend più popolari, tra cui Amazon S3 di AWS, MongoDB, Google BigQuery, ElasticSearch, Azure, DataDog e altre. Gli sviluppatori che utilizzano Apache possono velocizzare lo sviluppo delle app grazie al supporto per qualsiasi esigenza della loro organizzazione.

Storage e monitoraggio

Poiché alcuni dei siti web più grandi ed esigenti al mondo utilizzano Apache, deve essere in grado di registrare le attività degli utenti in modo rapido e preciso per evitare interruzioni. Apache registra in tempo reale gli eventi frequenti come registrazioni utente, visualizzazioni di pagina, acquisti e altre informazioni relative al monitoraggio delle attività del sito web. Quindi raggruppa i dati per argomento e li memorizza su una rete distribuita per un accesso rapido e facile.

Messaggistica

Apache riceve e conserva i messaggi in una coda, un container utilizzato per la memorizzazione e la trasmissione dei messaggi. Il container collega i messaggi alle app consumer e all'utente. Apache è progettato in modo simile ad altri broker di messaggi popolari, come RabbitMQ; ma a differenza di Rabbit e di questi altri broker, divide i messaggi in argomenti Kafka utilizzando una chiave di messaggio che può essere usata per filtrare i messaggi in base alla rilevanza.

Trattamento dei dati

Una delle caratteristiche più interessanti di Apache è la capacità di catturare e memorizzare i dati degli eventi in tempo reale. Altre popolari pipeline di dati in tempo reale devono essere eseguite in quello che viene chiamato un batch pianificato, un batch di dati che può essere elaborato solo in un orario prestabilito. Il design di Apache consente di trattare i dati in tempo reale, abilitando tecnologie come IoT, analytics e altre che dipendono dal trattamento dei dati in tempo reale per funzionare.

Scopri di più

Apache Kafka è stato progettato per memorizzare dati e trasmettere eventi in tempo reale, offrendo esperienze utente dinamiche su un insieme diversificato di applicazioni. IBM® Event Streams aiuta le aziende a ottimizzare Kafka con una piattaforma open source che può essere implementata sia come servizio completamente gestito su IBM® Cloud sia on-premise come parte di Event Automation.

Vista dall'alto di un uomo seduto su una panchina

Insight imperdibili. Iscriviti alla nostra newsletter.

Vai oltre l'hype con le notizie degli esperti su AI, quantum computing, cloud, sicurezza e molto altro.

Iscriviti oggi
Soluzioni correlate
IBM Event Streams

IBM Event Streams è un software per lo streaming di eventi basato sull'open source Apache Kafka. È disponibile come servizio totalmente gestito su IBM Cloud o in self-hosting.

Esplora Event Streams
Software e soluzioni di integrazione

Sblocca il potenziale aziendale con le soluzioni di integrazione di IBM, collegando applicazioni e sistemi per accedere rapidamente e in modo sicuro ai dati d'importanza critica.

Esplora le soluzioni di integrazione
Servizi di consulenza cloud

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM.

Esplora i servizi di consulenza cloud
Prossimi passi

IBM Event Streams è un software per lo streaming di eventi basato sull'open source Apache Kafka. È disponibile come servizio totalmente gestito su IBM Cloud o in self-hosting.

Esplora Event Streams Ottieni maggiori informazioni