Analisi dati: quali soluzioni per il presente ed il futuro

Negli anni ’90 il mondo IT passò dal “mainframe computing” al “client/server computing”. Oracle, SQL server, DB2 ed altri nuovi nomi arrivarono sulla scena migliorando considerevolmente le modalità di gestione dei dati. Quel che rimase invece sostanzialmente immutato fu l’ammontare di dati con il quale si doveva lavorare quotidianamente, ovvero un quantitativo abbastanza modesto di dati strutturati.

Nell’ultimo decennio lo scenario ha iniziato tuttavia a mutare ed il flusso di dati è cresciuto enormemente (si parla anche di petabyte), così come la grandezza delle infrastrutture adeguate a gestire la gigantesca massa di dati non strutturati. La diffusione di questa seconda tipologia ha portato all’insorgere di inedite problematiche nel mondo IT che ha rapidamente constatato l’inadeguadezza degli strumenti adoperati fino a quel momento.

L’infrastruttura necessaria a supportare i workload di ultima generazione non è alla portata di tutti: servono infatti sofisticati sistemi di storage, computing e networking per riuscire a maneggiare agevolmente un flusso continuo di dati (nell’ordine del petabyte a volte). E le risorse e conoscenze richieste per il setup dell’intera infrastruttura sono persino superiori a quelle che, successivamente, dovranno entrare in campo per trasformare i dati non strutturati in qualcosa dal valore aggiunto.

L’era della centralità dei dati

L’attuale impennata dei dati è guidata principalmente dalle macchine, termine generico che comprende un vasto numero di beni d’utilizzo comune e non (automobili, cellulari, satelliti, supercomputer etc.). Nell’ultimo decennio abbiamo assistito a due fenomeni paralleli: l’evoluzione dei componenti elettronici alla base di una vasta gamma di oggetti (maggiore capacità computazionale, nuove funzionalità etc.) e l’abbassamento dei costi di produzione.

Ciò ha provocato l’innalzamento incontrollabile dei dati circolanti che sono ora incredibilmente preziosi, tanto per i clienti finali quanto per le aziende che si occupano di analizzarli e raccoglierli come Google e Facebook. Le due note compagnie furono tra le prime a dover affrontare la rapida crescita dell’utenza e dei flussi dati legati ai rispettivi business. E l’unico modo per non restare indietro e divenire marginali fu quello di reinventare quasi tutto: piattorme hardware, gestione delle risorse computazionali, sistemi di monitoraggio delle infrastrutture, modalità di analisi ed archiviazione dei dati e via dicendo. Dall’esperienza e dalle necessità di questi pionieri sono nate nuove infrastrutture ed applicazioni in grado di rispondere ai mutati ritmi dell’era dei dati, vediamo quali nel paragrafo conclusivo.

Soluzioni emergenti nell’era dei dati

Architetture distribuite. Le piattaforme cloud pubbliche Microsoft ed AWS rappresentano un perfetto esempio di architetture distribuite, un elevato numero di sistemi in grado di operare all’unisono per l’esecuzione di workload vari. Per quanto possa essere infatti performante, un singolo sistema non sarà mai in grado di gestire i flussi dati moderni. Per coordinare il software in esecuzione su diversi sistemi, questi ultimi devono essere stateless; le comunicazioni devono essere inoltre RESTful.

Machine Learning. E’ una sottocategoria delle IA e della quale abbiamo avuto modo di parlare, insieme al deep learning, in un recente approfondimento. Grazie all’impiego di adeguata potenza computazionale (fornita da supercomputer ma anche chip riprogrammabili e GPU) e modelli da “insegnare” alle macchine, è oggi possibile eseguire con relativa praticità operazioni di classificazione e deep content inspection.

Event-Driver Computing. Si tratta di una riproposizione dei trigger nell’ambito dei dati non strutturati. Negli anni ’90 l’introduzione dei trigger consentì agli engine dei database relazionali di eseguire codice personalizzato in occasione di determinati eventi, semplificando lo sviluppo delle applicazioni. I sistemi di storage attuali, dove confluiscono ogni giorni petabyte di dati non strutturati, sono invece sprovvisti di accorgimenti simili. Sono stati ancora una volta cloud provider come AWS e Google a trovare la soluzione del problema presentando servizi come Lamdba e Cloud Functions.

Microservices Architecture.  Una parola abbastanza in voga nel mondo IT che si riferisce, in sintesi, all’impiego di diversi servizi autonomi (ma che comunicano tra loro mediante protocolli RESTful) e di ridotte dimensioni pensati per l’esecuzione di una specifica task. Gli esperti considerano i microservizi ideali per la realizzazione di architetture distribuite. Da notare che il funzionamento dei microservizi presenta diverse somiglianze con queste ultime.