IT Pro

Big data e analytics si appoggiano al Cloud

 

 

Le imprese hanno ormai compreso le opportunità offerte dai big data. Le enormi quantità di dati provenienti da attività economiche, industriali, commerciali o nelle sempre più ricercate applicazioni IoT (Internet of Things). Opportunità che variano da caso a caso, ma che portano comunque a decisioni più accurate, strategie meglio eseguite, automazioni più avanzate, processi più snelli, aumento del business.

Ma sfruttare i big data pone qualche questione tecnica. Non ci riferiamo solo al grosso volume complessivo, che già di per sé pone il problema di dove memorizzarli e organizzarli, ma anche e soprattutto alla necessità di elaborarli in tempi rapidi in modo da supportare decisioni operative, strategiche, di mercato, produttive o commerciali in tempo pressoché reale in modo da acquisire un reale vantaggio competitivo.

Sino a poco tempo fa, per l'analisi dei dati andava considerato che la velocità ha un costo. In pratica, come nel mondo reale soggetto alle leggi della dinamica, si doveva fare i conti con un limite "fisico", per cui: più stretti erano i tempi accettabili per l'elaborazione dei dati e maggiore la loro massa, più elevato risultava il budget complessivo da allocare. A fronte di costi elevati molte aziende si sono dovute a lungo privare di strumenti e approcci analitici efficaci per il business.big data 2

Le ragioni per un'analisi dei dati in tempo reale sono però stringenti. Del resto, oggi tutti parlano di "business agility" e non c'è modo di essere più "agili" che rispondere agli eventi nel momento stesso in cui questi accadono. Quanto riferito come IoT, si tratti di sensori che determinano il comportamento dei clienti all'interno di un grande centro commerciale o del flusso di automobili, è l'ambito naturale per questo tipo di analisi. Anche i dati provenienti dai clienti e i loro comportamenti sono dei candidati ideali per l'analisi tramite big data. Ma gli esempi sono numerosi e ogni giorno si scoprono nuovi campi di applicazione.

Il fattore tempo reale e il cloud

Un esempio di analisi del comportamento dei consumatori è quello di Netflix, che esamina continuamente i pattern di download dei film di tutti i propri utenti, in modo da comprendere meglio le loro preferenze e proporre loro nuovi prodotti. Mutatis mutandis, ospedali e cliniche mediche potrebbero aggregare e analizzare, in modo anonimo, i dati dei loro pazienti in modo da migliorare i trattamenti medici nel momento stesso in cui vengono somministrati.

Ma, come accennato, esiste una correlazione tra fattore tempo e costo. Per alcune applicazioni, analisi "quasi-in-tempo-reale" sono sufficienti e dieci minuti di ritardo potrebbero non essere un grande problema. In altri settori, come per esempio nel mondo finanziario, anche un minuto rappresenta un'inaccettabile enormità. È qui che entra il gioco il cloud. Per esempio, un servizio come Microsoft Azure Stream Analytics e il cloud possono essere di concreto aiuto perché permettono di bilanciare i costi connessi all'analisi al tempo entro cui i dati devono essere disponibili. Il servizio, infatti, lascia all'utilizzatore decidere quanto è disposto a pagare per una risposta ed entro quanto tempo deve arrivare per poter fare la differenza ai fini del business.big data 3

Un altro esempio è costituito dall'immagazzinamento dei dati e della loro reperibilità. Nel mondo tradizionale del datawarehousing era raro disporre di informazione in modo tempestivo e questo era causa di disservizi, di costi aggiuntivi e di clienti insoddisfatti. Ora l'analisi in cloud tramite un servizio come Microsoft Azure Stream Analytics che può essere pagata in base all'utilizzo ha cambiato profondamente lo scenario e una gestione in tempo reale permette di disporre di informazioni realmente efficaci, ridurre i disservizi e migliorare il ROI.

I 5 step per accelerare lo sviluppo e garantire il ROI

La correlazione "tempo-ROI" è uno degli aspetti più critici, tanto che, per molte organizzazioni, una delle barriere al ricorso al Cloud e ai progetti su di esso basati, come quelli relativi all'Internet of Things, è l'investimento di tempo percepito. Per esempio l'avvio di un progetto IoT può sembrare complesso in termini di approvazioni interne.

Naturalmente desiderare che sia messo a punto una roadmap che dall'investimento iniziale arrivi rapidamente a compimento è una questione sensata per chi è chiamato a decidere e assegnare il budget necessario sottraendolo ad altre voci di spesa. La cosa, nel caso di un progetto di IoT, può essere fatta con cinque passaggi chiave. Vediamoli brevemente:

  1. Sviluppo di un business case: va coinvolto sin dalla fase iniziale un dirigente nel processo e assicurato che gli indicatori di performance (KPI – Key Performance Indicator) siano definiti in modo chiaro e conciso e che siano validati da chi dovrà portare avanti il processo.
  2. Make or Buy: dopo aver stabilito le linee del progetto, va deciso se realizzarlo in-house o trovare un partner esterno. La risposta è spesso una combinazione delle due opzioni
  3. Proof of concept: nel momento in cui si ha un business case definito, è tempo di avviare un "proof of concept" al fine di validare alcuni punti chiave per verificarne rapidamente la fattibilità. Per i dettagli si può attendere.
  4. Lancio iniziale: le sfide più impegnative che s'incontrano in questa fase riguardano la formazione dei dipendenti nell'usare il sistema e preparare le eventuali modifiche nell'organizzazione che il nuovo processo potrebbe richiedere. Molte aziende affrontano questo stadio con successo grazie a un lancio iniziale "limitato" su scala geografica, o per dipartimento, o per scenario.
  5. Lancio commerciale: le sfide in questa fase finale sono simili a quelle sperimentate durante la fase di lancio iniziale. Ci si deve accertare che tutti gli utenti del sistema siano stati formati e coinvolti adeguatamente e che tutti i cambiamenti organizzativi e i nuovi processi siano stati implementati. Un processo di aggiornamento interno continuativo è fondamentale per garantire che il processo prosegua in modo fluido
big data e cloud

Azure HDInsight risponde alle esigenze per l'analisi dei big data

Come evidenziato nei paragrafi precedenti il cloud è il mezzo ideale per l'analisi dei big data, grazie alla sua capacità di mettere a disposizione grande potenza di calcolo e di storage in base alle necessità. Per ottenere informazioni su cui sia possibile intervenire o che consentano un'analisi più approfondita, non è però sufficiente raccogliere la maggior quantità possibile di dati rilevanti, ma è anche necessario che i dati siano opportunamente selezionati, ordinati, elaborati e infine presentati nel modo più utile e intuitivo possibile.

il servizio HDInsight, basato su Hadoop e fruibile nel cloud è il candidato ideale per questo tipo di operazioni. Apache Hadoop è un framework per l'elaborazione distribuita e in parallelo di enormi volumi di dati su cluster, che possono includere anche migliaia di server (riferiti come nodi e dove ogni nodo ha la sua personale capacità di calcolo e di storage). Inoltre, Hadoop è stato progettato per garantire elevati standard di disponibilità del servizio, perché in caso di errori hardware in uno dei nodi del cluster, questi vengono rilevati e gestiti a livello applicativo.

Il servizio HDInsight di Azure è un'implementazione cloud dello stack di tecnologie Apache Hadoop basata sulla piattaforma cloud di Microsoft. Quando si parla di Hadoop, infatti, si fa spesso riferimento a un intero ecosistema di componenti e tecnologie di cui Azure HDInsight fornisce la relativa implementazione.

Come evidenziato, un cluster Hadoop consiste di un numero variabile di machine virtuali utilizzate per elaborare i dati in parallelo. Grazie al servizio HDInsight di Azure, l'utente non deve quindi preoccuparsi dei dettagli relativi all'installazione e alla configurazione dei singoli nodi: è sufficiente fornire alcune informazioni di carattere generale e la piattaforma penserà al resto.

HDInsight e la Business Intelligence
HDInsight e la Business Intelligence

Per semplificarne l'uso, oltre alla possibilità di creare configurazioni personalizzate tramite script, HDInsight di Azure mette a disposizione configurazioni cluster predefinite, ciascuna delle quali include set di componenti diversi per realizzare funzionalità specifiche:

  • Hadoop: il cluster per operazioni di query e analisi di dati; fornisce un'archiviazione dei dati affidabile grazie al file system distribuito Hadoop Distributed File System (HDFS), nonché semplici modelli di programmazione in grado di suddividere insiemi di dati di grandi dimensioni per l'elaborazione in parallelo (come MapReduce e YARN).
  • Hadoop con R Server per HDInsight: Microsoft fornisce un'implementazione di R particolarmente efficiente, con la più estesa libreria di analisi parallela e Machine Learning compatibile con R. In particolare, sono disponibili distribuzioni per ambienti Microsoft, Linux, Hadoop e Teradata. In modalità PaaS, inoltre, è disponibile una distribuzione Hadoop combinata con Spark (in Memory hadoop) e R (Advanced Analytics integrato nell’in Memory di Spark) che facilita l'accesso a R senza doversi occupare di aspetti di gestione infrastrutturali.
  • Apache Spark: la creazione del cluster include l'installazione e la configurazione di Apache Spark, un framework di elaborazione parallela che supporta l'elaborazione in memoria per migliorare le prestazioni di applicazioni analitiche di big data, dati di streaming e machine learning.
  • Apache Spark con R Server per HDInsight, che abbina la potenza in memory di Spark con la grande libreria R, permettendo in particolare un'elaborazione Machine Learning a livello di Terabyte, cioè dimensioni di tre ordini di grandezza superiori rispetto a R open source, e prestazioni fino a 50 volte superiori con R Server per Apache Spark e librerie di vettori e risorse matematiche ottimizzate. A questo si aggiungono caratteristiche di sicurezza e supporto di livello aziendale con il contratto di servizio Microsoft.
  • Apache HBase: il cluster utilizza Apache HBase, un database NoSQL basato su Hadoop e modellato su Google BigTable che fornisce accesso rapido e coerenza assoluta per quantità elevate di dati non strutturati e semi-strutturati. Può gestire potenzialmente milioni di righe e colonne.
  • Apache Storm: il cluster si basa su Apache Storm come sistema di calcolo distribuito in tempo reale per l'elaborazione rapida di grandi flussi di dati. Viene proposto come cluster gestito in HDInsight.

Il servizio HDInsight comprende anche molti altri componenti e utilità. Tra questi:

  • Ambari: è utilizzato per il provisioning,la gestione e il monitoraggio di cluster Apache Hadoop, grazie anche a una raccolta di strumenti intuitivi e di un set di API che nascondono la complessità di Hadoop e semplificano le operazioni sui cluste.
  • Apache Hive: consente di eseguire query e gestire grandi set di dati con un linguaggio simile a SQL chiamato HiveQL.
  • Apache Oozie: è un sistema di coordinamento dei flussi di lavoro che consente di gestire i processi Hadoop.
  • Apache Pig: è una piattaforma di alto livello che consente di eseguire trasformazioni complesse in set di dati molto grandi usando un linguaggio script semplice chiamato Pig Latin.

Business Analytics personalizzata con Microsoft Azure e Power BI

In un tema come quello dei big data e della Business Intelligence, non si può non accennare a Power BI, un servizio di business analytics basato sul Cloud che permette di creare rapidamente visualizzazioni e report avanzati utilizzando i dati provenienti dalle sorgenti dati più diverse, inclusi file, "pacchetti" di dati messi a disposizione da servizi di terze parti (come Google Analytics, Marketo, o Salesforce), database ospitati in locale o sul cloud.

In particolare, grazie alla sua integrazione con Microsoft Azure, Power BI permette di connettersi ai dati provenienti da servizi cloud come Database SQL, Spark di HDInsight o quelli di archiviazione, di selezionare i subset di dati che interessano e ottimizzarli per creare report personalizzati.

Tramite Power BI è possibile creare dashboard per tenere sotto controllo gli aspetti più significativi della propria attività. È anche possibile creare report distinti per i diversi destinatari usando le stesse connessioni dati e persino la stessa query, semplicemente creando una nuova pagina del report e modificando la visualizzazione in base ai destinatari.Power BI consente di utilizzare sorgenti di dati tra le più diverse

L'integrazione tra Azure e Power BI consente anche di espandere il sistema in base alle proprie esigenze, di controllare l'elaborazione di dati da più origini e integrare i diversi servizi SaaS in report di business intelligence che permettono di ottimizzare le operazioni aziendali.

Non ultimo in un momento in cui la mobility è sempre più pervasiva, Power BI include anche un'applicazione Windows desktop denominata Power BI Desktop e un'applicazione mobile per dispositivi Windows, iOS e Android.