Il presente e il futuro di Apache Kafka: Spunti dal Kafka Summit 2022

Apache Kafka_2022_Report

Il mese scorso abbiamo avuto la possibilità di partecipare all’incredibile evento Kafka Summit 2022 organizzato da Confluent, uno dei principali partner tecnologici di Bitrock.

Oltre 1500 persone hanno partecipato all’evento, che si è svolto all’O2 nella zona est di Londra in due giorni di workshop, presentazioni e networking.Sono emersi spunti interessanti su Kafka, sulla piattaforma Confluent, su Confluent Cloud e sull’intero ecosistema.

Un’opportunità incredibile per incontrare tanti appassionati di questa tecnologia e discutere di ciò che sta accadendo attualmente e di ciò che è in programma per il futuro.

Modern Data Flow: le pipeline di dati realizzate correttamente

Il keynote di apertura dell’evento è stato tenuto da Jay Kreps (CEO di Confluent). L’argomento principale del talk ruotava intorno al flusso di dati moderno e alla crescente necessità di elaborare e spostare i dati in near real time.

Dall’assistenza sanitaria alla consegna di generi alimentari, molte applicazioni e servizi che utilizziamo quotidianamente si basano su dati in streaming: in questo scenario, Kafka si pone come una delle tecnologie principali e più convincenti. Il crescente interesse per Kafka è confermato dalle numerose organizzazioni che attualmente lo utilizzano (oltre 100.000 aziende) e dalla quantità di interesse e supporto che il progetto sta ricevendo. La comunità cresce anno dopo anno: I meetup su Kafka sono molto popolari e numerose persone esprimono grande interesse per questo progetto, come dimostrano le innumerevoli domande poste quotidianamente su StackOverflow e la grande quantità di ticket Jira aperti sul progetto Apache Kafka.

Naturalmente, questo successo è tutt’altro che casuale: se è vero che Kafka si adatta perfettamente ai requisiti delle architetture moderne, è anche importante ricordare quanti miglioramenti sono stati introdotti nell’ecosistema Kafka che hanno contribuito a creare l’immagine di uno strumento molto maturo e affidabile quando si tratta di costruire applicazioni e pipeline di streaming veloci, scalabili e corrette.

Questo si può notare, ad esempio, nelle nuove funzionalità introdotte in Confluent Cloud (la soluzione Confluent per la gestione di Kafka) per migliorare la documentazione e il monitoraggio delle pipeline di streaming in esecuzione nell’ambiente con il nuovo sistema Stream Catalog e Lineage. Queste due funzionalità forniscono un modo di facile accesso per identificare e ricercare le diverse risorse e i dati disponibili nell’ambiente e come questi dati fluiscono all’interno del sistema, migliorando la governance e il monitoraggio della piattaforma.

Kafka Summit 2022 – Keynote (London O2)

Il futuro di Kafka – Le funzionalità in arrivo

Tra tutte le numerose funzionalità in arrivo presentate durante l’evento, ce ne sono alcune che abbiamo apprezzato molto e che aspettavamo da tempo.

Una di queste è KIP-516, che introduce i topic ID per identificare in modo univoco gli argomenti. Come forse sapete – ciò che identifica un topic è il suo nome. Questo comporta alcuni svantaggi, come il fatto che un topic non può essere rinominato (ad esempio, quando si desidera aggiornare la propria strategia di denominazione), in quanto sarebbe necessario sia cancellare e ricreare il topic, migrando l’intero contenuto, sia aggiornare tutti i produttori e i consumatori che fanno riferimento a quel topic specifico. Un problema altrettanto fastidioso è quando si vuole eliminare un topic e poi ricrearne un altro con lo stesso nome, con l’obiettivo di eliminare il suo contenuto e creare il nuovo con configurazioni diverse. Anche in questo scenario, attualmente si possono riscontrare dei problemi, in quanto Kafka non cancellerà immediatamente il topic, ma pianificherà una cancellazione che deve essere diffusa nel cluster senza la certezza di quando questa operazione sarà effettivamente completata. Questo rende l’operazione, ad oggi, non automatizzabile (i nostri consulenti hanno spesso affrontato questa limitazione in alcuni progetti dei nostri clienti).

La seconda caratteristica a lungo attesa è la possibilità di eseguire Kafka senza Zookeeper. All’inizio era molto utile e pratico sfruttare le capacità di gestione della configurazione distribuita fornite da Zookeeper (questo è particolarmente importante in processi come l’elezione del controllore o del leader della partizione). Negli ultimi anni, Kafka ha iniziato a incorporare sempre più funzionalità e a mantenere un cluster di Zookeeper, invece di quello di Kafka, il che sembra uno sforzo, un rischio e un costo non necessari. Ad oggi, questa funzione non è ancora pronta per la produzione, ma possiamo dire che è abbastanza vicina. In effetti, Confluent ha condiviso il piano e siamo tutti in attesa dell’arrivo di questa semplificazione dell’architettura.

La terza caratteristica in arrivo che abbiamo trovato estremamente preziosa è l’introduzione di topologie modulari per ksqlDB. ksqlDB è relativamente recente nell’ecosistema Kafka, ma sta avendo un buon riscontro data la sua capacità di scrivere facilmente trasformazioni di flussi con il minimo sforzo e solo con un comando simile a SQL, senza la necessità di creare applicazioni Kafka-Stream dedicate che richiederanno una buona quantità di boilerplate che, in seguito, dovranno essere mantenute.

ksqlDB non sarà in grado di completare lo sviluppo dettagliato di alcuni Kafka-stream ma, per una buona parte di essi, sarà una soluzione eccellente. L’introduzione di topologie modulari semplificherà la gestione dei flussi all’interno di ksqlDB e ne semplificherà la scalabilità (attualmente limitata in alcuni scenari).

Le nostre opinioni su Breakout Sessions & Lightning Talks

La cosa più bella delle conferenze tecnologiche sta negli interventi, e il Kafka Summit non è stato da meno! Durante l’evento, infatti, non sono stati solo gli annunci di funzionalità a catturare la nostra attenzione, ma anche ciò che è stato presentato durante le varie sessioni di breakout e gli interventi: una varietà incredibile di argomenti ci ha dato molte opzioni per approfondire il mondo Kafka.

Una delle sessioni che abbiamo particolarmente apprezzato è sicuramente quella condotta da New Relic (“Monitoring Kafka Without Instrumentation Using eBPF”). Il contributo si è concentrato su una modalità interessante di monitorare Kafka e le applicazioni basate su Kafka utilizzando eBPF senza bisogno di strumentazione. Antón Rodríguez, in qualità di relatore, ha presentato un’interessante demo di Pixie, in cui è stato molto facile vedere cosa sta succedendo alle nostre applicazioni. È stato anche facile ottenere una rappresentazione grafica dell’effettiva topologia dei flussi e di tutti i collegamenti tra produttori e topic e tra topic e consumatori, facilitando la risposta a domande come “Chi sta producendo il topic A?” o “Chi sta consumando dal topic B?”.

Un’altra sessione che abbiamo particolarmente apprezzata è stato l’intervento di LinkedIn (“Geo-replicated Kafka Streams Apps”): Ryanne Dolan ha illustrato alcune strategie per gestire gli argomenti Kafka georeplicati, in particolare nel caso di applicazioni Kafka Streams. Ryanne ha fornito alcuni preziosi consigli su come gestire la replica degli argomenti Kafka in un cluster di disaster recovery per garantire un’elevata disponibilità in caso di guasto, e su come sviluppare la nostra applicazione Kafka streams in modo che funzioni in modo quasi trasparente nel cluster originale e in quello di DR. L’intervento è stato anche una grande opportunità per evidenziare l’elevata scalabilità di Kafka in uno scenario multi-datacenter, dove diversi cluster possono coesistere creando una sorta di architettura a strati composta da un livello di ingestion scalabile che può distribuire i dati a diversi cluster georeplicati in modo trasparente per le applicazioni Kafka streams.

Conclusions

Senza dubbio l’evento è stato un grande successo, che ha riunito la comunità di Apache Kafka per condividere le migliori pratiche, imparare a costruire sistemi di nuova generazione e discutere del futuro delle tecnologie di streaming.

Per noi, questa esperienza è stata un mix di innovazione, conoscenza e networking: tutte le cose che ci mancavano dalle conferenze di persona erano finalmente tornate. È stato impressionante vedere le persone interagire tra loro dopo due anni di lontananza sociale, e abbiamo potuto davvero sentire quel “senso di comunità” che gli eventi online possono offrire solo in parte.

Se volete saperne di più sull’evento e sui suoi temi principali – dall’analisi in tempo reale all’apprendimento automatico e allo streaming degli eventi – assicuratevi di consultare anche il post dedicato sul blog della nostra azienda sorella Radicalbit. Puoi leggerlo qui.

Autori: Simone Esposito, Ingegnere software @ Bitrock – Luca Tronchin, Ingegnere software @ Bitrock

Vuoi saperne di più sui nostri servizi? Compila il modulo e fissa un incontro con il nostro team!

Skip to content