di Roberto Freato
Dare una visione chiara del concetto di Cloud è possibile
. In realtà, ancora oggi, la distinzione chiara e precisa tra il Cloud Computing e i suoi predecessori è molto fumosa; c’è addirittura chi utilizza Cloud e Grid come sinonimi. Questo, in determinati contesti ed utilizzi, può essere consentito ma i due paradigmi rimangono nella loro essenza da distinguere. Come già detto in diverse circostanze, negli anni ’90, il termine Grid era utilizzato per indicare quelle tecnologie che avrebbero permesso agli utenti di condividere una grande quantità di risorse il cui potere computazionale poteva essere ottenuto on demand. Allo stesso modo si può parlare del Cloud Computing: la visione è la medesima e l’adesione a tale paradigma consente di ridurre i costi di computazione, aumentare l’affidabilità e la flessibilità dei servizi e soprattutto cambiare completamente lo scenario delle aziende consentendo loro di porre in outsourcing buona parte di tali risorse.
Altro aspetto che consente di distinguere tali tecnologie è l’era in cui siano nate e le diverse esigenze delle persone a cui siano rivolte. In particolare, tra il Grid e il Cloud ci sono dieci anni di evoluzioni scientifico/tecnologiche che dovrebbero far capire come queste due tecnologie si differenzino inevitabilmente. Non solo: il Cloud nasce in un contesto in cui la standardizzazione dei protocolli di rete ne facilitano l’adesione e si vedrà come esso diventi materia attrattiva non solo delle grandi aziende e del mondo accademico, ma anche del piccolo programmatore. Senza che l’utente se ne renda conto, molte delle applicazioni offerte oggi poggiano sul Cloud e molte aziende stanno cercando di migrare verso il Cloud al fine di ridurre i propri costi. L’idea è di far migrare i propri dati all’interno di server geograficamente dispersi senza che ci si interroghi su dove effettivamente risiedano, ma con la prerogativa che essi siano accessibili e disponibili da qualsiasi postazione in cui si trovi l’utente. La mancata necessità da parte dell’utente e delle aziende di avere il possesso fisico e il controllo diretto delle proprie risorse hardware e software è una caratteristica abilitante del Cloud Computing e assisteremo nei prossimi anni alla parziale se non completa scomparsa di quelle applicazioni e servizi che, per essere utilizzati, debbano essere installati sulla singola macchina utente; tutto sarà disponibile on demand da qualsiasi luogo e attraverso qualsiasi dispositivo utilizzato.
Nel Marzo del 2009 è stato pubblicato, attraverso la collaborazione di molteplici organizzazioni quali IBM, AMD, VMWare, Cisco, EMP, SAP, Sun, Novell e altre ancora, l’Open Cloud Manifesto[1]. Esso si propone di tracciare i principi di base del Cloud Computing risolvendo alcune delle problematiche tecnologiche (ad esempio la sicurezza e l’interoperabilità) legate a questo nuovo paradigma. Il Manifesto si pone l’obiettivo di favorire l’uso di standard aperti per il Cloud Computing in modo che nel tempo non nascano piattaforme proprietarie che andrebbero a rallentarne lo sviluppo.
Purtroppo però le tematiche Cloud hanno sin da subito suscitato confusione per coloro che ne sostengono il paradigma e per coloro che vogliono aderirvi al punto da generare anche delle controversie nella formulazione del Manifesto. Infatti, al momento della stesura del documento mancavano alcune grandi aziende del mercato che stavano investendo molto nel Cloud e che mostravano disappunto nei confronti dell’Open Cloud Manifesto, come ad esempio Microsoft e Amazon. Sembrerebbe che la notizia della stesura del documento fu resa nota da un post sul blog corporate di Microsoft e che le sei pagine di cui è composto siano state discusse a porte chiuse tra i firmatari iniziali. Microsoft è apparsa perciò da subito perplessa sul processo che avrebbe portato alla definizione del manifesto e alla sua distribuzione, processo che è stato come detto portato a compimento a porte chiuse, senza la possibilità di intervenire e proporre suggerimenti. Probabilmente la causa di questi conflitti è legata anche ai troppi vendor di Cloud Computing presenti sul mercato e alle molteplici soluzioni proposte. La presenza di un numero cosi alto di vendor è legata anche alla migrazione sul Cloud da parte di un sempre maggior numero di aziende le quali vedono nel Cloud un effettivo vantaggio economico (Maruccia, 2009).
Per le aziende, infatti, il vantaggio di aderire al Cloud è legato alla possibilità di non investire sulle infrastrutture informatiche ma di comprare completamente on demand, da un’azienda che offre servizi Cloud Computing, potenza di calcolo, storage e servizi informatici. Gartner[2], una delle principali società di ricerca a livello mondiale, sottolinea come i servizi offerti dal Cloud debbano poter essere scalati verso l’alto o verso il basso a seconda delle esigenze dell’utente in termini di capacità. Secondo la società di ricerca, il Cloud Computing avrà moltissime adesioni, a livello mondiale i proventi legati al Cloud sono stati superiori a 56,3 miliardi di dollari e cresceranno progressivamente fino a raggiungere i 150 miliardi di dollari nel 2013. Buona parte di tale contributo coinvolgerà inizialmente i seguenti servizi: pubblicità, e-commerce, gestione risorse umane e transazioni. Nel settore pubblicitario in particolare, i servizi Google, ai quali si stanno adeguando anche Microsoft e Yahoo!, ricoprono il 60% di tutti i servizi Cloud e domineranno la scena ancora per i prossimi quattro anni. I tagli ai bilanci e la difficoltà di riuscire a stimare le risorse hardware necessarie alle aziende nei prossimi anni sono, secondo Gartner, la ragione principale che induce le aziende a rivolgersi ai servizi remoti.
In uno scenario IT talmente complesso, l’idea è quella di porre in outsourcing tutto quello che porta ad un risparmio economico. In tal modo il Cloud Computing abilita questi servizi fornendo scalabilità ed efficienza, garantendo Quality of Service personalizzato sulle esigenze del cliente, consentendo l’accesso alle risorse on demand in modo che tutto ciò che l’utente desideri sia accessibile e disponibile sempre e in modo semplice.
Il Cloud Computing può essere analizzato a tre livelli: (Pijanowski, 2009)
- SaaS (Software as a Service): consiste nell’utilizzo di programmi in remoto, spesso attraverso un server web. Questo acronimo è pressappoco un sinonimo, in Italia, del termine ASP (oggi in disuso). Il cliente di un provider SaaS è l’utente finale e il provider stesso può utilizzare uno IaaS o PaaS di terze parti per fornire potenza di calcolo, storage e infrastruttura di rete. Tipici servizi che sono già presenti sul mercato sono applicativi di base come CRM, ERP, backup dei dati centralizzati, documentali, mail e archiviazione.
- PaaS (Platform as a Service): offre un ambiente di sviluppo per il codice dell’applicazione, servizi Cloud, potere elaborativo, lo stoccaggio e le infrastrutture di rete. Il pacchetto applicativo contiene solo ciò che è stato sviluppato dal proprietario del software utilizzando un ambiente di programmazione che è supportato dal fornitore PaaS. Ad esempio, Azure Services Platform di Microsoft supporta il framework .NET e PHP, oppure Google App Engine supporta Java e Python. Un’altra distinzione tra ambienti PaaS e ambienti IaaS è che la maggior parte dei fornitori PaaS fornisce una raccolta di servizi Cloud che offrono funzionalità diverse. Tali ambienti sono più adatti ad un pubblico di sviluppatori.
- IaaS (Infrastructure as a Service): precedentemente chiamata Hardware as a Service, fornisce potenza di elaborazione, storage e infrastruttura di rete (attraverso firewall e load balancing). È rivolta a tutti quei clienti che hanno bisogno di un ambiente per la propria applicazione fornendo servizi on demand, scalabili e flessibili. I fornitori di IaaS fanno un forte uso di tecnologie di virtualizzazione per la potenza di elaborazione. Tra i principali vendor del settore si evidenza Amazon. Il costo del servizio è calcolato in funzione alle ore di utilizzo, al trasferimento dei dati in/out per GB, alle richieste di I/O, al trasferimento dei dati in/out per GB di storage e altro ancora. Questo tipo di Cloud appare come un sinonimo di Grid Computing, ma con una caratteristica imprescindibile: le risorse sono utilizzate su richiesta al momento in cui un cliente ne ha bisogno, non vengono assegnate a prescindere dal loro utilizzo effettivo.
Dai modelli sopra esposti, è evidente che si mostri adattabile a contesti estremamente diversificati tra loro: le grandi aziende, le piccole imprese, i programmatori e gli utenti che già oggi, a volte inconsapevolmente, fanno uso di tale tecnologia. Negli ultimi anni si è assistito ad un cambiamento radicale dell’industria IT sia nell’hardware che nel software, che consente a molti ricercatori di considerare oggi il Cloud la risposta migliore alle proprie esigenze. Non bisogna credere però che il Cloud abbia l’appoggio e l’adesione di tutti.
Molti potrebbero avere la percezione che in realtà il Cloud non proponga concetti molto innovativi. Outsourcing, affidabilità e continuità dei servizi sono delle problematiche affrontate da sempre dalle aziende che devono garantire ai propri clienti dei buoni servizi e a costi ragionevoli. A tal proposito si riporta la testimonianza di Larry Elison (CEO di Oracle):
«The interesting thing about Cloud Computing is that we’ve redefined Cloud Computing to include everything that we already do. . . . I don’t understand what we would do differently in the light of Cloud Computing other than change the wording of some of our ads». (Farber, 2008)
La preoccupazione maggiore di Elison e di molti altri suoi colleghi è legata alla sensazione che il Cloud rientri in un disegno di business di alcuni colossi aziendali che, se oggi sembrano voler offrire a tutti una soluzione perfetta ai loro problemi (risorse on demand e senza limiti, servizi economici e in molti casi gratuiti) nel lungo periodo possano invece rivelarsi oltremodo costosi. In una sua dichiarazione, Richard Stallmann (fondatore della Free Software Foundation) afferma:
«Il Cloud, una stupidaggine. Anzi, peggio di una stupidaggine: una campagna marketing. Si tratta solo dell’ennesimo tentativo delle corporation di ingabbiare gli utenti. Un tentativo da stroncare sul nascere. Qualcuno dice che è inevitabile e quando sentite qualcuno dire così, è molto probabile che si tratti di una strategia d’affari per renderlo vero. Una ragione per non usare le web application è la perdita del controllo. È un male proprio come usare programmi proprietari. Fate il vostro lavoro su un vostro computer con un programma che rispetti le vostre libertà: usando un programma proprietario sul server di qualcun altro si è senza difese. Vi state mettendo nelle mani di chiunque abbia sviluppato quel software». (Johnson, 2008)
Considerando che nessuno può avere il potere di prevedere il futuro, al momento il Cloud appare a tutti come la soluzione migliore alle esigenze del mercato, al punto che anche quelle aziende che non hanno necessità di migrare al Cloud sembrano volersi uniformare con il nuovo paradigma. Sono d’altronde innegabili le potenzialità di questi servizi e soprattutto i vantaggi che le piccole e grandi aziende possano trarne. Abbiamo sottolineato più volte come il Cloud Computing abbia un impatto su un vasto campo di utenza, si passa dalle grandi aziende, agli utenti usuali e ai grandi gruppi di ricerca, ovviamente ciascun utente trae diversi benefici in funzione delle proprie esigenze, motivo per cui la nostra trattazione si focalizzerà inizialmente su ciascuna di esse. Ciò che accumuna le grandi aziende ai piccoli programmatori è l’esigenza di ridurre al massimo i propri costi ed è sicuramente il risparmio economico uno dei motivi principali che spinge alla migrazione sul Cloud.
Il Cloud consente ai suoi utenti di ridurre le spese hardware in particolar modo se si pensa che, quando un’azienda fa un investimento, sovradimensiona le risorse di cui necessita per evitare di trovarsi in una situazione di saturazione delle risorse nei confronti dei propri clienti. È proprio tale sovradimensionamento a provocare la crisi di molte aziende che ovviamente, all’atto dell’investimento, possono prevedere la domanda e il successo del loro business, il cui reale impatto però non è ancora noto con certezza. Il Cloud è la soluzione a questo problema: nessuno deve comprare le proprie risorse in funzione delle previsioni del successo del proprio business. Il punto chiave del Cloud è per l’appunto l’elasticità delle risorse, la possibilità di richiederle in funzione della loro reale necessità, l’illusione di poter avere un numero illimitato di risorse on demand e di pagare in funzione del loro effettivo utilizzo. È un vantaggio dopo l’altro che da un lato fa risparmiare una quantità ingente di denaro e dall’altro consente a molte più aziende e a molti più utenti di poter essere competitivi sul mercato e di poter aumentare il proprio fatturato.
Il Cloud Computing spazia in svariati rami applicativi da cui derivano anche i diversi campi di utenza cui è rivolto. Va sottolineato che tutto questo scenario deriva da un concetto molto più vasto conosciuto sotto il nome di Web 2.0. Condivisione, collaborazione tra gli utenti attraverso il web è alla base di questo nuovo paradigma, la necessità di fare di Internet il maggiore spazio di ritrovo dei propri servizi e del proprio business spinge tutt’oggi molte aziende a modificare completamente il modo di lavorare. Basti pensare come il Web e il suo sviluppo abbiano dato ai propri utenti nel corso di qualche anno cosi tante opportunità che oggi i possibili fornitori non sono più le grandi imprese che tutti conosciamo ma anche l’utente privato che con la sua esperienza propone all’utenza di Internet i propri servizi. Siamo nell’era delle applicazioni real-time, nelle quali la manipolazione di grandi quantitativi di dati provenienti da campi applicativi diversi, costringe le aziende a migrare sul Cloud per avere prestazioni elevate e per poter far fronte alla flessibilità delle risorse disponibili. L’utilizzo massiccio di Internet rende il web non solo il luogo migliore in cui le aziende possono erogare i propri servizi, ma il modo migliore attraverso cui recuperare le informazioni e le esigenze della loro clientela[3].
[1] http://www.opencloudmanifesto.org/
[2] http://www.gartner.com/technology/home.jsp
[3] Un esempio è il servizio lanciato da qualche anno da Google: Google Analytics. Esso permette di tracciare, monitorare e misurare con grande accuratezza le statistiche web relative al traffico, alle conversioni, al ROI e alle pagine viste all’interno del proprio sito: informazioni utilissime per il business delle aziende.
Bibliografia
Farber, D. (2008). Oracle’s Ellison nails cloud computing. Wall Street Journal .
Johnson, B. (2008). Cloud computing is a trap, warns GNU founder Richard Stallman. Retrieved from The Guardian: http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman
Maruccia, A. (2009, Marzo 31). Il manifesto segreto del Cloud Computing. Retrieved from Punto Informatico: http://punto-informatico.it/2589549/PI/News/manifesto-segreto-del-cloud-computing.aspx
Pijanowski, K. (2009, Maggio 31). Understanding Public Clouds: IaaS, PaaS, & SaaS. Retrieved from Keithpij.com: http://www.keithpij.com/Home/tabid/36/EntryID/27/Default.aspx




