Amazon AWS svela Kinesis, per l’analisi dei Big Data in real-time

Amazon AWS è in netto vantaggio e arricchisce la sua piattaforma di cloud computing con un nuovo servizio capace di analizzare flussi di grandi quantità di dati aggregati da differenti sorgenti. Il tutto senza oneri infrastrutturali per gli sviluppatori. Ecco come funziona e cosa riserva a chi deciderà di adottarlo

Amazon AWS ha tolto i veli a Kinesis, un nuovo servizio già disponibile nell’arsenale degli strumenti di cloud computing offerti da Amazon.

La presentazione ufficiale è avvenuta nel corso della conferenza Amazon re:Invent che termina oggi a Las Vegas e di cui avevamo già avuto modo di parlare relativamente alle novità che avrebbero riguardato la piattaforma.

Kinesis è un servizio full-managed per il trattamento in tempo reale di un flusso composto da un elevato volume di dati.amazon aws kinesis

Questa è la definizione riportata nel comunicato stampa ufficiale rilasciato dal colosso dell’e-commerce, che ha tutta l’intenzione di distinguersi nell’ambito del cloud computing per assumere una posizione di egemonia e imporre la propria tecnologia e strategia ai concorrenti nel corso del prossimo triennio.

Una definizione prettamente tecnica, dunque, che nasconde al suo interno una serie di implicazioni di non poco conto.

Amazon AWS cerca il vantaggio

Kinesis è un vantaggio incredibile. Altri giganti del cloud computing, come Google, Microsoft e tanti altri, se vogliono lottare contro Amazon AWS, dovranno iniziare ad allungare il passo e proporre anch’essi delle alternative innovative nell’analisi cloud dei Big Data, che non può di certo fermarsi all’integrazione di Hadoop in Microsoft Azure.

D’altra parte, Kinesis, per quanto giunga sulla scena dello stream real-time con ritardo, riesce a superare soluzioni già presenti sul mercato come gli open source Storm, Spark Streaming, Apache S4, Kafka e i prodotti commerciali come IBM InfoSphere Streams e Google BigQuery, semplicemente per come è concepito.

Infatti, Kinesis mette nelle mani dei clienti un servizio già pronto, senza necessità di ulteriori interventi nella gestione e nel provisioning dell’infrastruttura. Si rivela quindi la scelta ideale per tutti quei clienti che desiderano una soluzione gestita e soprattutto non vogliono e non possono perdere tempo e denaro nello sviluppo di una soluzione interna e nella strutturazione e gestione di una infrastruttura dedicata.

La facilità d’uso, se paragonata alle alternative già citate, è impressionate.

Gli amministratori devono impostare il servizio Kinesis sulla quantità di input e output necessari al servizio, in blocchi da 1 Mbps chiamati Shards, agendo direttamente dalla console di AWS, dalle API o dal SDK. In seguito, agli sviluppatori compete la programmazione per scegliere quali dati trattare, da dove recuperarli e come trattarli. Infatti, lo sviluppatore deve creare al minimo due applicazioni utilizzando le API di Kinesis. Quella “producer” che acquisisce i dati dalle sorgenti e li converte in flussi interpretabili da Kinesis, composti da blocchi di dati inviati in formato HTTP PUTs. L’altra applicazione è chiamata “worker” che recupera invece i dati dal flusso e ne esegue il processamento.

Durante il keynote, ad esempio, il producer era un feed di dati in realtime provenienti da Twitter, mentre alcuni worker multipli effettuavano un’analisi sui dati per evidenziarne le parole interessanti.

Amazon AWS integra perfettamente Kinesis

Allo stesso tempo, Kinesis ha delle capacità di gestione dei flussi che sono molto avanzati (soprattutto se paragonati a Google BigQuery) e aggiunge al servizio in sé, l’affidabilità, la ridondanza e l’elasticità di tutta l’infrastruttura di Amazon AWS, dove si integra perfettamente con Elastic Map Reduce, Redshift, DynamoDB, S3 e Glacier.

Così, Kinesis può raccogliere e trattare in tempo reale centinaia di terabyte di dati all’ora, recuperati da centinaia di migliaia di fonti, per poi riversarne i flussi elaborativi verso DynamoDB o RedShift. Inoltre, i dati in Kinesis sono disponibili per le analisi in pochi secondi e vengono conservati per 24 ore, durante le quali possono essere letti, riletti e analizzati, prima di essere spostati verso servizi di storage come S3, oltre ai già citati RedShift e DynamoDB.

Se ciò non bastasse, Amazon AWS ha reso disponibile anche una libreria che consente di automatizzare Kinesis, in modo che adatti in autonomia le variazioni di volume di flusso, il bilanciamento del carico di streaming di dati, il coordinamento dei servizi distribuiti, e l’elaborazione di dati.

Amazon AWS propone una guida per lo sviluppatore

Le librerie SDK di Kinesis usate per creare i producers e i worker sono disponibili solamente per Java, ma le applicazioni possono essere scritte in qualsiasi linguaggio, richiamando direttamente le API. La guida dello sviluppatore riserva maggiori dettagli in merito ed è proprio in questo documento che si scopre che Kinesis può anche creare i famosi DAG (Direct Acyclic Graph) delle applicazioni Kinesis e dei flussi di dati.

In definitiva, il servizio, pensato per le applicazioni in real-time (come la gestione dei dati finanziari e dei servizi che dipendono da essi), permette agli sviluppatori di recuperare grandi quantità di dati, da qualsiasi numero di sorgenti, scalando a seconda delle necessità. Kinesis può creare un qualsiasi numero di flussi attraverso diverse availability zones e l’high availability è proprio garantita dalla replicazione di tutti i dati attraverso le differenti availability zones.

Dal punto di vista dei costi, Amazon AWS ha prezzato Kinesis a 0.015 dollari per Shard all’ora, insieme a 0.028 dollari per 1 milione di transazioni PUT. Una stima dei costi esemplificata da Amazon AWS prevede che per un’app che assorbe 10 Mbps di dati e direziona le informazioni verso due wokers bisogna sostenere un costo di 4.22 dollari al giorno.

Al momento, Kinesis è disponibile in Limited Preview previa iscrizione.