Accedi / Registrati Account

Integrazione

Come funziona Apache Kafka?

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ù fonti 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 trilioni 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.


Integrazione asincrona con Apache Kafka

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 poter 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 di 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 una community 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 caratteristiche, applicazioni e servizi aziendali.


A cosa serve Apache Kafka

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 quei dati. Può essere utilizzato in tutti quei casi in cui velocità e scalabilità elevate sono fondamentali. La sua capacità di ridurre al minimo la necessità di integrazioni point-to-point per la condivisione di dati in determinate applicazioni, riduce infatti la latenza a millisecondi. Gli utenti possono quindi usufruire dei dati più velocemente, aspetto utile quando i dati devono essere disponibili in tempo reale, come per 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 le aziende che non si trovano ad affrontare 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 compromettere le applicazioni esistenti. Occorre quindi prevedere una certa scalabilità nell'elaborazione, che consenta di rispondere alla crescente proliferazione dei dati.

Processi IT

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 log e tracciamento dei siti web.

Internet of Things

Secondo le previsioni di 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.


I vantaggi dell'unione tra Kubernetes e Apache Kafka

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. E grazie a Kubernetes, può sfruttare un'elevata portabilità attingendo a vari provider di infrastrutture e sistemi operativi, e distribuire i suoi cluster on-site e su cloud pubblici, privati o ibridi.

Scopri le soluzioni di Red Hat per l'integrazione

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

Messaggistica

AMQ streams, componente di Red Hat® AMQ, offre Apache Kafka su Red Hat OpenShift® Container Platform. AMQ streams è una funzionalità di data streaming scalabile, distribuita ed efficace basata sul progetto Apache Kafka ed eseguita su Kubernetes.

Piattaforma per container

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. Integrabile con prodotti quali AMQ, Fuse e 3scale API Management, consente di sfruttare nel cloud un approccio all'agile integration.