Jump to section

Integrare Apache Kafka con Kubernetes: i vantaggi

Copia URL

Il deployment di Apache Kafka su una piattaforma di orchestrazione di container come Kubernetes consente di automatizzare, espandere e distribuire ovunque le applicazioni basate su eventi. In breve, Kubernetes amplifica la flessibilità intrinseca delle app basate su Apache Kafka.

La crescente adozione di microservizi e sviluppo cloud native da parte dei reparti IT delle aziende sta dando origine a sistemi distribuiti popolati da applicazioni basate su eventi (EDA). In questo ambiente di sviluppo dinamico, molti leader digitali scelgono di utilizzare Apache Kafka in combinazione con Kubernetes.

Apache Kafka consente agli utenti di visualizzare e analizzare un'azienda in tempo reale e reagire rapidamente alla continua evoluzione degli scenari di mercato. Apache Kafka offre inoltre un'ottima soluzione per stabilire e gestire la connettività in tempo reale sia con stakeholder interni sia con partner, fornitori e clienti esterni.

Kafka Streams: una funzionalità fornita con Apache Kafka che può essere aggiunta a qualsiasi applicazione e che consente una semplice e potente elaborazione dei flussi di eventi Kafka. Apache Kafka costituisce un'alternativa alle altre soluzioni di messaggistica, in quanto consente di elaborare e analizzare in tempo reale elevate quantità di dati in maniera continua e simultanea. Con Apache Kafka gli utenti possono aggregare, trasformare, arricchire e organizzare eventi per analisi in linea e in tempo reale, anziché attendere i risultati elaborati dai sistemi di gestione di big data. Ciò rende Apache Kafka essenziale per qualsiasi applicazione che richieda risposte immediate ai dati in tempo reale.

Apache Kafka è una base ideale per lo sviluppo cloud native. Le applicazioni cloud native sono basate su eventi e Apache Kafka è lo strumento ottimale per gestire gli eventi. Streaming distribuito, elaborazione in tempo reale, scalabilità elevata: tutte queste funzionalità cruciali basate su eventi sono abilitate da Apache Kafka.

Architettura serverless: il passo successivo allo sviluppo cloud native è anch'esso basato su eventi ed è abilitato da Apache Kafka. Con Apache Kafka eseguito su Kubernetes gli sviluppatori possono fornire notifiche scalabili serverless, comunicazioni tra processi e visibilità di funzioni serverless.

Prova Red Hat OpenShift Streams for Apache Kafka

Apache Kafka è spesso distribuito nel sistema di gestione dei container Kubernetes, utilizzato per automatizzare le attività di deployment ed espansione e il funzionamento di container tra cluster di host. Apache Kafka su Kubernetes va di pari passo con lo sviluppo cloud native, la nuova generazione dello sviluppo di applicazioni. Le applicazioni cloud native sono servizi indipendenti, distribuiti e con basso accoppiamento, che offrono un'elevata scalabilità tramite il cloud. Allo stesso modo, le applicazioni, basate su eventi e create su Kafka, sono a basso accoppiamento e progettate per essere scalabili in un ambiente cloud ibrido distribuito.

Un vantaggio essenziale per i team operativi che eseguono Apache Kafka su Kubernetes è l'astrazione dell'infrastruttura: configurabile una sola volta ed eseguibile ovunque. Al giorno d'oggi i team operativi tendono a gestire svariate tipologie di risorse on premise e cloud. Kubernetes consente loro di trattare queste risorse come pool di risorse di computing a cui possono allocare i propri strumenti software, tra cui Apache Kafka. Inoltre, Kubernetes consente di utilizzare un unico ambiente per la gestione di tutte le istanze di Apache Kafka.

La scalabilità intrinseca di Kubernetes è complementare ai vantaggi offerti da Apache Kafka. Kubernetes consente alle applicazioni di aumentare o diminuire le risorse con un semplice comando o ridimensionarle automaticamente a seconda dell'utilizzo, e ciò significa ottimizzare l'utilizzo delle risorse di elaborazione, rete e storage. Se integrato con Kubernetes, Apache Kafka può inoltre essere esteso a cloud on-premise, cloud pubblici, cloud privati o cloud ibridi, nonché utilizzare diversi sistemi operativi.

Il funzionamento manuale di Apache Kafka è un processo complesso che richiede la configurazione di molti componenti. L'esecuzione di Apache Kafka su bare metal (o macchine virtuali) è complicata. Il deployment, il monitoraggio, l'aggiornamento e il rollback dei nodi sono laboriosi e difficili.

Il progetto open source Strimzi risolve questa complessità. Strimzi utilizza operatori per distribuire configurazioni Apache Kafka in modo graduale e lineare. Gli operatori, ovvero il metodo innovativo per il deployment e la gestione delle applicazioni su Kubernetes, garantiscono flessibilità di sviluppo perché sono astratti a livello di infrastruttura, consentendo agli sviluppatori di eseguire il deployment delle applicazioni senza molte informazioni sull'infrastruttura. Allo sviluppatore non serve conoscere i tecnicismi, ad esempio la quantità di computer o il tipo di hardware, perché gli operatori effettuano il provisioning dell'infrastruttura automaticamente e gestiscono tutti i dettagli.

Strimzi offre i vantaggi dell'Infrastructure as Code (IaC) poiché lo sviluppatore può scrivere facilmente un manuale di istruzioni simile a codice per definire l'infrastruttura e Strimzi esegue tali istruzioni. Strimzi può persino semplificare il deployment di Apache Kafka in modalità ad alta disponibilità (operazione altrimenti molto difficile).

Un altro motivo importante per utilizzare Strimzi è che l'operatore consente di risolvere molti problemi di sicurezza per Apache Kafka. Inoltre, Strimzi automatizza la sicurezza di Apache Kafka su Kubernetes con single sign-on, crittografia e autenticazione, risparmiando agli sviluppatori le attività di implementazione delle funzioni di sicurezza di base.

Red Hat AMQ Streams, che fa parte di Red Hat Integration, è una distribuzione aziendale Red Hat di Apache Kafka e del progetto Strimzi. Gran parte dei vantaggi che AMQ Streams apporta ad Apache Kafka sono strettamente riconducibili all'uso di Apache Kafka su Kubernetes o di Red Hat OpenShift, che è la distribuzione Red Hat di Kubernetes.

Red Hat AMQ Streams su OpenShift offre Apache Kafka su Kubernetes per abilitare architetture di livello enterprise, basate su eventi, che supportano flussi di dati distribuiti e applicazioni di elaborazione dei flussi basate su microservizi. AMQ Streams è particolarmente adatto a scenari su larga scala e ad alta produttività perché il partizionamento intrinseco di Apache Kafka aiuta a soddisfare i requisiti di scalabilità.

Keep reading

Articolo

Cosa si intende per integrazione?

Cos'è l'integrazione? Scopri cos'è, come introdurla e i vantaggi che offre se abbinata all'open source.

Articolo

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.

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Scopri di più sull'integrazione

Prodotti

Set completo di tecnologie per l'integrazione e la messaggistica.

Accelera la distribuzione e lo sviluppo applicativo.

Trasforma il tuo business e soddisfa le richieste di un mercato in costante evoluzione.

Semplifica l'esperienza nel cloud ibrido e riduci i costi operativi e la complessità della distribuzione di applicazioni cloud native.

Scopri come progettare. distribuire ed eseguire le applicazioni in maniera sicura in ambienti cloud ibridi su larga scala.

Risorse

Ebook

Creare un'infrastruttura agile per dare vita a un'azienda adattiva

Formazione

Corso di formazione gratuito

Red Hat Agile Integration Technical Overview