Abbiamo discusso di Internet of Things, "Digital Twins" e Security con Target Reply ed Exprivia-Italtel all'ultimo Kafka Meetup milanese di Gennaio. element
Apache Kafka sta riscuotendo un successo sempre maggiore nello sviluppo di sistemi IoT, soprattutto nel mondo industriale: è infatti fondamentale in questo ambito avere un layer di trasporto dati robusto e affidabile, in grado di gestire enormi quantità di eventi in tempo reale, permettendo una corretta gestione dello “stato distribuito” del sistema e dei suoi dispositivi.
Diventa quindi prioritario da una parte capire come utilizzare al meglio questa tecnologia per realizzare il “Digital Twin” degli oggetti fisici e, al tempo stesso, conoscere quali tecniche è necessario adottare per mettere in sicurezza tali sistemi.
Abbiamo discusso queste tematiche il 16 Gennaio scorso, con Target Reply ed Exprivia-Italtel, in occasione dell’ultimo Kafka Meetup milanese organizzato da Confluent in collaborazione con Bottega52.
"Digital Twin" & Anomaly Detection
Con il termine “Digital Twin” si fa riferimento alla “rappresentazione digitale” di un oggetto fisico, sia esso un semplice termostato che genera pochi byte di dati al minuto, o un’automobile connessa in grado di generare decine di gigabyte di dati in poche ore.
In questo contesto, i ragazzi di Target Reply ci hanno presentato un interessante caso di studio: piastre elettriche connesse, con a bordo una grandissima quantità di sensori. Il loro obiettivo: costruire una pipeline di elaborazione che fosse in grado di riconoscere anomalie nei dati raccolti.
L’implementazione ha previsto l’uso di Kafka Streams per le fasi di fitraggio e preprocessing del dato, mentre la scelta è ricaduta sulle Echo State Networks (un caso particolare di reti neurali ricorrenti) come tecnica di Machine Learning, dal momento che queste sono particolarmente adatte anche in scenari di “Edge Computing”, comuni in ambito industriale.
Un aspetto molto interessante dell’architettura proposta: i parametri dei modelli, come i risultati della previsione prodotti dalla rete neurale e le sue configurazioni, sono pubblicati e memorizzati su Kafka. Dal momento che il sistema è stato sviluppato a microservizi (“stateless” per definizione), Kafka è stato usato non solo come layer di trasporto dati, ma come sistema di storage primario grazie ai suoi “compacted topics”, in un’ottica profondamente streaming.
La security nel mondo IoT
Come ogni innovazione, l’avvento del Internet of Things ha portato enormi benefici e nuove criticità, sopratutto in ambito security: un recente studio condotto dal Ponemon Institute su richiesta di IBM e ARXAN ha infatti rivelato che l’80% dei dispositivi IoT connessi presenta vulnerabilità di sicurezza che mettono a rischio i consumatori e le organizzazioni (scarica qui il PDF).
“La sicurezza dovrebbe prevedere un approccio olistico”, ci ricorda Ivan Bazzi di Exprivia-Italtel, che nel suo talk affronta alcuni dei temi più critici della messa in produzione di un cluster Kafka: dopo una prima panoramica sulla struttura classica di deploy, Ivan introduce il tema della cifratura e sicurezza del canale (via TLS e certificati SSL), discutendo le implicazioni di performance che essa comporta, passando poi all’autenticazione (SASL e JAAS) ed autorizzazione dei client (tramite Access Control Lists e Quotas).
La sicurezza non può essere un argomento di secondaria importanza e deve essere discussa e affrontata fin dall’inizio, su tutti i fronti: a tal proposito, Ivan ricorda come sia di fondamentale importanza difendere Apache Zookeeper, uno dei componenti fondamentali nel deploy di un cluster Kafka, oltre agli stessi nodi broker.
Dato che la sicurezza del sistema è pari alla sicurezza del suo componente più vulnerabile, proteggere solo i broker senza proteggere Zookeper sarebbe come montare una porta blindata su una tenda da campeggio.
Per chi non fosse riuscito a partecipare all’evento, ecco il link alla registrazione dei due talk dell’ultimo Kafka Meetup. Se sei interessato ad avere aggiornamenti sui prossimi meetup che verranno organizzati, puoi registrarti sulla pagina ufficiale del meetup cliccando qui.