1
Introduzione
Il cloud computing è l’evoluzione di una serie di t ecnologie che, una
volta utilizzate congiuntamente, sono in grado di r ivoluzionare le modalità
con cui le organizzazioni riescono a costruire le p roprie infrastrutture
informatiche. Nuvola non è semplicemente l’ultimo t ermine in uso per
riferirsi ad Internet, sebbene quest’ultimo ne cost ituisca le fondamenta.
Il Cloud rende possibile la fruizione della tecnolo gia e del software
necessario, in maniera più sicura, razionale e gest ita; addirittura fino a
rendere possibile pagare solamente ciò che si sta u sando (software ed
hardware) e solo per il tempo di effettivo utilizzo .
L’obiettivo di questo lavoro è stato, innanzitutto, quello di presentare
il Cloud Computing, che, sebbene nasca da una idea “vecchia” degli anni
‘80 quando ancora era denominata “ network computing ”, formalmente è
rimasta sempre relegata alla conoscenza dei soli ad detti ai lavori.
Si è voluto trattare quali siano ad oggi le evident i opportunità
economiche offerte dal cloud, specialmente per quel le imprese e
organizzazioni dai limitati budget e con forti vinc oli di bilancio; analizzando
come caso di studio quanto è stato fatto, con spiri to innovativo, didattico e
non senza ripercussioni ambientali, con il REINGELA B: il laboratorio
linguistico della II Facoltà di Economia dell’Unive rsità degli Studi di Bari
Aldo Moro.
Sono stati affrontati anche, alcuni aspetti delicat i, sulla base dei quali
si fonda l’attuale riluttanza ad usare servizi onli ne in sostituzione dei
tradizionali software ceduti in licenza, alla ricer ca di eventuali
problematiche che, con la nuova architettura inform atica, non sarebbero
2
state possibili superare attraverso nessuna delle p ratiche di cui si è ad oggi
a conoscenza.
La riduzione dei costi, di start up ed in conto cap itale, l’esigenza di
ridurre l’incidenza di quelli fissi di produzione i n favore di costi variabili in
presenza di una domanda elastica, sono punti decisi vi per tutte le realtà
produttive; in particolare per quelle che cercano, in questo periodo di crisi
più che mai, di reinventarsi competitive su mercati ampi e globalizzati. Il
cloud potrebbe essere una risposta importante per r idurre e rimodulare la
struttura dei costi ed al tempo stesso migliorare i livelli di efficienza
dell’azienda; rendere più facile gestire grandi mol i di dati, effettuare i loro
backup e verificarne l’integrità; in molti casi, pu r tenendo conto della
prioritaria esigenza di contenimento delle spese, i l cloud permette di
rendere accessibile l’uso di soluzioni software e s ervizi Web avanzati offerte
da compagnie affidabili e rinomate.
Il lavoro di tesi si compone di nove capitoli, sudd ivisi in tre distinte
aree. Nella prima parte trovano posto capitoli con valenza prettamente
descrittiva del cloud computing e della sua archite ttura, con cenni storici,
una minuziosa analisi dei punti di forza e di debol ezza del nuovo approccio
di computing ed un confronto tra software on-demand , in hosting ed on-
premise. Non è trascurato l’approccio squisitamente economico al Cloud in
tutta la prima parte dove per di più è presente una breve analisi del cash
flow nel business del software as a service, un ide ntikit delle aree di
utilizzo della Nuvola ed un confronto tra cloud pub blico privato e misto.
Nella seconda parte si studiano due tematiche: la s icurezza e
l’ambiente. La terza ed ultima parte è stata dedica ta all’analisi di un
importante progetto pilota, ovvero la realizzazione di REINGELAB: una
cloud privata nata dalla reingegnerizzazione di un laboratorio linguistico in
una struttura didattica pubblica, la II Facoltà di Economia dell’Università
degli Studi di Bari “Aldo Moro”.
3
PARTE PRIMA
CAPITOLO I
Il Cloud Computing
1.1 Definizione
Per conoscere l’inventore del termine “Cloud Comput ing” si deve fare un
salto indietro nel 1997 quando il professore dell’E mory University di
Atlanta (Georgia) Ramnath K. Chellappa lo definì “un paradigma
informatico dove i confini dell’elaborazione dei da ti vengono determinati più
da ragioni economiche che da limiti tecnici ” 1
.
In letteratura non esiste una definizione univoca d i cloud computing, ma si
concorda che esso sia un paradigma di calcolo distr ibuito su larga scala
dove le risorse condivise, software e dati, sono ge stite ed erogati on-
demand a clienti esterni attraverso la rete Interne t.
È finalmente possibile erogare il computing come fo sse un servizio grazie al
fatto che le risorse quali la potenza di calcolo e lo storage sono astratte,
virtualizzate e dinamicamente scalabili.
È una tecnologia estremamente elastica, quella dell a Nuvola, e può
facilmente espandersi e contrarsi secondo le necess ità dei suoi utenti;
costoro possono richiedere in ogni momento risorse aggiuntive o
semplicemente abbandonare quelle non sono più neces sarie.
Nella sua accezione più pura il cloud si ha solo qu ando l’operatore paga
esattamente ciò che consuma in termini di combinazi one di risorse
1
F. PARRAVICINI, Tre domande all’inventore del “Cloud Computing” , Marzo 2011, tratto
da: http://tech4green.it/2010/08/tre-domande-allinv entore-del-cloud-computing/
4
hardware e software effettivamente utilizzate, forn iti sotto forma di servizio
on-line.
È importante evidenziare la strettissima coesistenz a presente nel cloud
computing tra i consumatori e i produttori di servi zi. Le architetture cloud
sono enormi aggregati di diverse reti, ed il cloud computing rappresenta un
nuovo approccio alle infrastrutture in cui grandi i nsiemi di sistemi sono
collegati tra loro per fornire servizi IT.
In altre parole, il cloud computing è uno stile di computazione in cui
l’elemento di novità, rispetto alla realtà preceden te, è rappresentata
proprio dalla possibilità che il software sia forni to come un servizio,
consentendo all’utente di accedervi senza necessità di specifico know-how
e soprattutto senza la necessità di avere un contro llo diretto sulle
infrastrutture a supporto.
Gli sviluppatori, con idee innovative per nuovi ser vizi internet, non devono
più investire grandi somme di denaro per comprare h ardware per
sviluppare il proprio progetto o per pagare operato ri che lavorino
sull’hardware stesso.
1.2 Criteri e Caratteristiche Distintive
Il termine cloud computing si riferisce al compless o di applicazioni fornite
come servizi su internet, all’hardware ed ai sistem i software nei data center
che si occupano di quei servizi; è l’insieme delle applicazioni a cui accedere
tramite web e di server da attivare solo quando ser ve e solo per il tempo
strettamente necessario. I singoli software forniti nella cloud prendono
nome di Software as a Service (SaaS).
L’utente avrà l’interfaccia grafica sul proprio cli ent e il server eseguirà
l’effettiva elaborazione dei dati. La definizione d i Nuvola Computazionale,
pertanto, è nata perché si riteneva che questo mode llo fosse veramente
nebuloso per quanto riguarda la definizione dei con fini e la determinazione
di dove effettivamente vengono eseguiti i task; è u n modello vago anche
5
rispetto l’ubicazione dell’utente e alla definizion e di utente stesso, il quale
potrebbe essere anche un fornitore.
Figura 1.1 – Idea di Cloud e di macchina virtuale
Fonte: Internet
Tre i criteri generali per capire se un particolare servizio è un servizio di
cloud computing, oppure no:
1 il servizio deve essere accessibile tramite un brow ser non proprietario,
oppure tramite delle API
2
che si interfacciano con dei Web service;
2 l’implementazione del servizio non necessita di alc un investimento
finanziario iniziale;
3 il servizio si caratterizza per una soluzione di pa gamento commisurato
solo al suo effettivo utilizzo.
I servizi messi a disposizione in modalità di cloud computing possono
essere raggruppati a seconda che riguardino il soft ware o l’hardware.
Il termine Software as a Service (SaaS) viene spes so utilizzato per
identificare la sola applicazione software che funz iona nella nuvola e
2
Application Programming Interface, ovvero l’insiem e di procedure disponibili al
programmatore con finalità di ottenere un’astrazion e, di solito tra l’hardware e il
programmatore o tra il software a basso e quello ad alto livello, semplificando il lavoro di
programmazione.
6
sebbene non tutti i SaaS siano sistemi di cloud com puting, la maggior
parte lo sono.
I SaaS sono un modello di distribuzione del softwar e che permette l'utilizzo
delle applicazioni esclusivamente tramite un browse r. Dal punto di vista
degli utenti non è del tutto trasparente dove il so ftware è ospitato, sotto
che sistema operativo gira e in che linguaggio di p rogrammazione è scritto;
inoltre non è necessario installare nulla in locale , visto che l'unica cosa che
serve è un browser web.
Gmail, ad esempio, è un programma di posta elettron ica utilizzato tramite
browser, con funzionalità analoghe ad Outlook di Mi crosoft Office, ma non
ha bisogno di alcun software specifico installato i n locale come
ancheSalesForce.com che è un sistema di CRM (Entrep rise Customer
Relationship Management)
Le caratteristiche distintive dei sistemi SaaS sono , quindi:
• disponibilità tramite un qualsiasi browser; quindi nessuna
installazione locale;
• disponibilità on-demand; ovvero, utilizzo ovunque e d in qualsiasi
momento;
• costì legati all'effettivo utilizzo; zero costi se il sistema non è usato;
• requisiti IT ridotti; E’ necessaria solo la conness ione internet ed un
browser;
I benefici per gli utenti riguardano principalmente la riduzione dei costi di
licenza, un accesso più veloce a nuove funzionalità e (a volte) una migliore
protezione contro i problemi di sicurezza.
Uno dei principi cardine su cui si basa l’idea di c loud computing riguarda
l'indipendenza rispetto all'architettura hardware.
In modalità di cloud computing è possibile chiedere un nuovo server nel
momento in cui serve ed il provider lo renderà disp onibile in un tempo
molto breve, in genere qualche minuto.
7
Il concetto di hardware disponibile in cloud comput ing è più difficile da
comprendere poiché l’hardware è un qualcosa di tang ibile, gli utenti sono
abituati a possederlo, non ad acquistarlo tramite u na licenza, e molti
fanno fatica ad immaginare di non avere il controll o diretto sul proprio
hardware.
La richiesta di dove siano i server e dove i propri dati è la domanda più
frequente posta da parte dei nuovi e potenziali uti lizzatori, ma la risposta
"non lo so " lascia questi sempre molto perplessi. Il non sape re dove siano i
propri server, porta tuttavia a un interessante van taggio in termini di
sicurezza, poiché diventa quasi impossibile per un qualsiasi haker
utilizzare le tradizionali strategie d'attacco per cercare di compromettere la
segretezza delle informazioni contenute nelle macch ine.
I processi informatici assumeranno la loro forma de finitiva quando un
insieme di soluzioni potrà essere messo a disposizi one su richiesta, in
modo istantaneo e dinamico; non importa da dove pro venga, chi lo realizzi
e chi abbia scritto quale parte del codice. Alcuni degli interrogativi che
rimangono in sospeso sono “ in che modo posso fidarmi di questa
determinata parte di codice che sta esaminando i mi ei dati? ”, “in che modo
posso sapere che il codice che elabora i miei dati non li rovinerà? ”.
8
CAPITOLO II
Architettura, Elementi dell’infrastruttura
e Tipologie di Cloud
2.1 Riconoscere un’Architettura Cloud
L’architettura cloud è nata dalla necessità di sfru ttare le risorse dei data
center in maniera più efficace e frammentata. La st ima di utilizzo delle
risorse di un data center tradizionale, infatti, si aggira intorno al 5-20%
della capacità totale disponibile 3
. Può sembrare poco, ma è ragionevole
considerando che per molti servizi il picco di rich ieste supera di molto il
livello di richieste medio, così vengono allocate m olte risorse che
rimangono poi inutilizzate per la maggior parte del tempo.
Attraverso la virtualizzazione dell’hardware, alla base della nuvola,
l’amministratore dell’infrastruttura IT può partizi onare un server fisico in
un gran numero di server virtuali, ognuno con il su o sistema operativo,
collocazione di memoria, CPU e porzione di disco; i n questo modo può
“affittare” le risorse inutilizzate ad altri client i. Le compagnie che offrono
sistemi di cloud computing hanno poi sviluppato deg li algoritmi e delle
strutture software per scalare rapidamente le quant ità di traffico e dati
archiviati, secondo la richiesta dei clienti.
Il cloud computing porta con sé tre aspetti nuovi:
1. l’illusione di infinite risorse di calcolo disponib ili on-demand,
eliminando quasi la necessità per gli utenti della cloud di pianificare
le proprie necessità di calcolo;
2. l’eliminazione di un impegno a priori da parte degl i utenti della cloud,
permettendo alle compagnie di iniziare con pochissi me risorse
3
R. POLILLO, Il Web come Piattaforma , Milano, s.e., 2010
9
hardware e poi incrementarle quando e se vi è un ca mbiamento delle
proprie necessità
3. la possibilità di pagare per l’utilizzo delle risor se di calcolo su periodi
brevi (processori per ora o per spazio storage al m ese)
Nei precedenti tentativi di Utility computing mancava almeno uno di questi
tre aspetti.
Analizzando a livello funzionale l'architettura del cloud, si osserva che
questa nasce da un sistema software collocato su po tenti server fisici e
finalizzato alla realizzazione di macchine virtuali comprensive di hardware
e software virtuali che nascono da potenti server f isici. Il sistema cloud
comporta componenti multipli che comunicano l'un co n l'altro su
interfacce di programmazione, di solito mediante we b services. Questo
approccio ricorda da vicino la filosofia UNIX, ovve ro avere programmi
multipli che lavorano bene insieme su interfacce un iversali.
Un errore che spesso si compie è quello di confonde re il cloud computing
con altri tipi di architetture di calcolo distribui to, primo fra tutti il grid
computing, giustificata dalla possibilità che il cl oud si comporti con alcune
caratteristiche tipiche degli altri generi di reti. In effetti il cloud computing
può essere definito come la vera e naturale evoluzi one del modello grid
computing, anche se le tipologie delle reti sono di verse tra loro. Come per
le reti a griglia, la progettazione e la creazione di una rete cloud è
un'operazione di non facile realizzazione, i sistem i cloud migliori, ad
esempio, dispongono di una piccola infrastruttura c entralizzata, ma a volte
ne sono addirittura privi o possono persino appoggi arsi ad una qualsiasi
sistema, anche esterno, come le reti peer-to-peer o skype.
I servizi offerti dal cloud sono accessibili in qua lsiasi parte del mondo,
questo perché il sistema cloud è visto come un sing olo punto d'accesso che
permette di raggiungere una rete talmente grande da contenere le risorse
necessarie per tutti gli utenti della nube.