Accedi / Registrati Account
Jump to section

Come funziona Apache Kafka?

Copia URL

Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale. È progettata per gestire flussi di dati provenienti da più sorgenti distribuendoli a più consumatori. In breve, consente di spostare grandi quantità di dati da un punto qualsiasi a un altro nello stesso momento.

Apache Kafka sostituisce il sistema di messaggistica aziendale tradizionale. Il sistema interno sviluppato da LinkedIn per gestire 1,4 bilioni di messaggi al giorno si è in breve trasformato in una soluzione di data streaming open source capace di soddisfare un'ampia gamma di esigenze aziendali.

L'ambiente di sviluppo non è più lo stesso dopo l'introduzione dei microservizi. La riduzione delle dipendenze, ad esempio i livelli di database condivisi, ha accelerato lo sviluppo delle applicazioni distribuite che però continuano a richiedere un certo grado di integrazione per consentire la condivisione dei dati. Il metodo sincrono, una nota modalità di integrazione, permette la condivisione dei dati tra gli utenti mediante interfacce di programmazione delle applicazioni (API).

Il metodo asincrono, altra modalità di integrazione, prevede invece la replica dei dati in un archivio intermedio. È questo il processo su cui interviene Apache Kafka: i dati provenienti da altri team di sviluppo vengono trasmessi nell'archivio dati e successivamente condivisi con altri team e applicazioni.

A differenza dei team di sviluppo a cascata tradizionali, i team di microservizi hanno bisogno di tre capacità fondamentali:

  1. Integrazioni distribuite: integrazioni leggere basate su modelli che vengono distribuite continuamente dove occorre senza essere limitate da deployment di tipo ESB centralizzati.
  2. API: servizi basati su API che permettono a un ecosistema di partner, clienti e sviluppatori di trarre il massimo beneficio dai servizi.
  3. Container: piattaforma di sviluppo, gestione e scalabilità di applicazioni cloud native e connesse. Grazie ai container è possibile sviluppare componenti agili distribuibili singolarmente, nell'ambito dei processi DevOps, e altamente disponibili poiché supportati dal cluster.

L'integrazione si trasforma così in una fase del processo di sviluppo applicativo che offre soluzioni caratterizzate da una maggiore agilità e adattabilità. La possibilità di adottare l'integrazione sincrona o asincrona, a seconda delle esigenze dell'applicazione, è una prerogativa di questo tipo di approccio, che Red Hat definisce "agile integration". Apache Kafka è un'ottima soluzione quando si usa l'integrazione basata su eventi asincroni, poiché promuove l'uso dell'integrazione sincrona e delle API, supportando ulteriormente l'adozione dei microservizi e dell'agile integration. Apache Kafka può quindi assumere un ruolo rilevante nelle iniziative di semplificazione del processo di sviluppo, promozione dell'innovazione, ottimizzazione dei tempi e, in ultima analisi, accelerazione del time to market di nuove funzionalità, applicazioni e servizi.

Apache Kafka è integrato nei flussi di data streaming che consentono la condivisione di dati tra sistemi e/o applicazioni, ma anche nei sistemi e nelle applicazioni che usano tali dati. Se ne consiglia l'utilizzo in tutti quei casi che richiedono produttività e scalabilità elevate. La sua capacità di limitare al minimo il ricorso a integrazioni point to point per la condivisione di dati in determinate applicazioni riduce infatti la latenza a millisecondi. Questo significa che gli utenti possono usufruire dei dati più velocemente; un aspetto utile in tutti quei contesti in cui i dati devono essere disponibili in tempo reale, come ad esempio i processi IT e l'e-commerce.

Riuscendo a gestire milioni di punti dati al secondo, Apache Kafka è la soluzione ideale alle problematiche legate ai Big Data. Ma Kafka è uno strumento utile anche per quelle aziende che non stanno ancora affrontando difficoltà di questo tipo. In molti esempi di utilizzo che implicano l'elaborazione di dati, come l'Internet of Things (IoT) e i social media, il volume di dati cresce a una velocità tale da poter rapidamente compromettere il funzionamento di applicazioni basate sui volumi di dati odierni. Occorre quindi prevedere una certa scalabilità nell'elaborazione, che consenta di rispondere alla crescente proliferazione dei dati.

 

Team operativi

I processi IT hanno un costante e urgente bisogno di accedere ai dati, poiché senza di essi sarebbe impossibile garantire il funzionamento continuo di siti web, applicazioni e sistemi. Apache Kafka è un ottimo alleato per i processi IT che si affidano alla raccolta di dati da svariate fonti, come le attività di monitoraggio, controllo, segnalazione, gestione dei registri e tracciamento dei siti web.

Internet of Things

Secondo Gartner, l'IoT arriverà a includere oltre 20 miliardi di dispositivi entro il 2020. Il valore dell'IoT risiede proprio nei dati utilizzabili generati da numerosi sensori. E Apache Kafka ha la capacità di gestire l'elevata quantità di dati che saranno forniti dall'IoT.

E-commerce

L'e-commerce può trovare in Apache Kafka un eccellente strumento per l'elaborazione di dati come clic su pagine, like, ricerche, ordini, carrelli e inventario.

Kubernetes offre agli sviluppatori quella scalabilità di cui hanno bisogno per ospitare le applicazioni Kafka e

per rendere più agile il processo di sviluppo. Kubernetes, la tecnologia su cui si basano i servizi cloud di Google, è un sistema open source che gestisce le applicazioni containerizzate, eliminando molti dei processi manuali associati ai container. Con l'utilizzo di Kubernetes, i processi di deployment, configurazione, gestione e utilizzo di Apache Kafka vengono ottimizzati.

Kafka e Kubernetes si integrano perfettamente per offrire scalabilità, elevata disponibilità, portabilità e semplicità di deployment.

La scalabilità di Kubernetes è complementare ai vantaggi offerti da Kafka. Con Kubernetes puoi aumentare o diminuire le risorse con un semplice comando o ridimensionarle automaticamente a seconda dell'utilizzo, il che consente di sfruttare al meglio la tua infrastruttura di elaborazione, rete e storage. In questo modo Apache Kafka ha la possibilità di condividere un numero di risorse limitato con le altre applicazioni. Grazie a Kubernetes, Apache Kafka può sfruttare un'elevata portabilità attingendo a vari provider di infrastrutture e sistemi operativi. Se integrati con Kubernetes, i cluster Apache Kafka possono inoltre spaziare tra cloud on site, cloud pubblici, cloud privati o cloud ibridi, nonché utilizzare diversi sistemi operativi.

Prova gratuita di Apache Kafka

Accedi a Red Hat OpenShift Streams for Apache Kafka, un servizio per Kafka completamente ospitato e gestito per applicazioni basate sui flussi.

Scegli le soluzioni per l'integrazione di Red Hat

Red Hat ti offre soluzioni di integrazione complete, leggere, modulari e open source, disponibili on premise e nel cloud.

Un servizio cloud gestito che garantisce un'esperienza di sviluppo ottimizzata per la creazione, il deployment e la scalabilità di nuove applicazioni cloud native o il rinnovamento dei sistemi esistenti.

Red Hat AMQ

Come parte di Red Hat® AMQ, AMQ Streams offre Apache Kafka su Red Hat OpenShift® Container Platform. AMQ streams è una funzionalità di streaming dati scalabile, distribuita e ad alte prestazioni, basata sul progetto Apache Kafka ed eseguita su Kubernetes.

Red Hat OpenShift

Sviluppa, distribuisci e gestisci applicazioni cloud native e ottieni scalabilità tramite una piattaforma containerizzata. OpenShift è in grado di orchestrare tutte le applicazioni in modo automatico ed è integrabile con prodotti quali AMQ, Fuse e 3scale API Management per portare un approccio all'integrazione agile nel cloud.