Cloud Computing e SaaS - Dipartimento di Informatica

annuncio pubblicitario
Corso di Tecnologie Web
Prof.ssa Anna Goy
─
Cloud Computing e SaaS
Estratto da: Margherita Merlino, Analisi del Cloud Computing come
tecnologia innovativa. Dall'organizzazione e lo sviluppo in ambito
aziendale alle applicazioni relative al nucleo famigliare, tesi di
Laurea
Magistrale
in
Produzione
e
Organizzazione
della
Comunicazione e della Conoscenza, a.a. 2011/2012 [Introduzione +
cap. da 1.1 a 1.4]
5
INTRODUZIONE
Alcuni anni fa, Internet veniva spesso rappresentata nei diagrammi come una nuvola (cloud),
una sorta di gigantesco etere nel cielo, ben al di là della propria casa o del proprio ufficio.
Questa metafora si è dimostrata decisamente premonitrice, oggi infatti i dati e i programmi
non devono necessariamente risiedere sui dispositivi di proprietà degli utenti, ma con
l’evolversi della tecnologia si sono sviluppati nuovi sistemi in grado di agevolare e velocizzare
le azioni quotidiane di ogni utente, memorizzando su Internet i dati di cui si necessita.
Questa nuova evoluzione nel modo di archiviare e condividere i documenti è rappresentata
dal Cloud Computing, che permette di gestire esternamente online le applicazioni e le
attività, invece che all'interno dei propri computer, creando molti vantaggi. La popolarità di
questa nuova tecnologia è stata supportata anche da due tendenze principali: da una parte,
la crescente importanza di avere elaborazioni rapide in quantità sempre maggiori, che ha
creato la necessità di strumenti di alto livello all’interno di compagnie che, però, non hanno
competenze per costruire e mantenere grandi centri di elaborazione; dall’altra, la diffusione
di smartphone, netbook e tablet, che hanno generato una richiesta supplementare per
soluzioni basate sul Cloud Computing, grazie alle quali è possibile compensare le limitate
risorse di cui sono dotati tali dispositivi. Inizialmente il Cloud è stato utilizzato soprattutto in
ambito aziendale, in quanto le società hanno la possibilità di ottenere grandi risparmi
sull'acquisto e sulla gestione di macchine ed infrastrutture. L'architettura del Cloud
Computing prevede uno o più server reali, generalmente in strutture ad alta affidabilità e
fisicamente collocate presso il data center del fornitore del servizio. Per far fronte a questa
mobilità di sistema, il Cloud deve soddisfare le caratteristiche di componibilità,
infrastruttura, piattaforme e di interfaccia. Deve inoltre ricorrere ad alcuni protocolli
standard con differenti livelli di hardware, software e comunicazione tra clienti.
Come tutte le innovazioni però, questa nuova tecnologia porta con sé alcune perplessità. In
particolare l'aspetto che suscita una certa apprensione da parte delle aziende è legato
principalmente alla privacy e alla custodia dei dati. Nonostante le garanzie prestate dai
fornitori, le società basate su segreti industriali e strategie di marketing preferiscono
tutelarsi, non delegando ad altri la custodia delle loro informazioni. A dispetto di queste
titubanze il Cloud è diventato una tecnologia di business, e molte aziende sono nate di
conseguenza. Paragonando le varie presenze sul mercato non si può non si può fare a meno
di notare l’egemonia dei tra grandi pilastri informatici, rispettivamente Google App Engine,
Amazon Web Service e Microsoft Aure. Poco alla volta questa diffusione ha valicato i confini
6
delle società iniziando a diventare di uso comune anche per i singoli utenti ed entrando a far
parte, seppur spesso inconsciamente, della vita comune di tutti i fruitori della rete. L’utilizzo
privato del Cloud Computing facilita notevolmente l’interazione dell’utente con il Web in
quanto, grazie alla possibilità di immagazzinamento dati e alla vasta diffusione di dispositivi
portatili e delle reti wireless, è possibile portare i propri contenuti sempre con sé. Rimane
ancora da decidere a che profondità può entrare a far parte della routine quotidiana di ogni
fruitore, e quali siano i limiti in cui il Cloud può esercitare, senza ledere alla privacy degli
utenti. A questo proposito è stata condotta una piccola indagine sotto forma di intervista,
per verificare l’effettiva presenza del Cloud nel quotidiano delle varie tipologie di utenti.
Inoltre, si è indagato sulla prospettiva dell’utilizzo di questa tecnologia anche a livello
famigliare, come strumento di condivisione e comunicazione tra i diversi componenti di una
famiglia.
7
CAPITOLO 1
Uno sguardo generale
Uno dei più recenti sviluppi nel settore dell'informatica è l'adozione del Cloud Computing.
Utilizzato in primo luogo dalle aziende e basata sul concetto di "virtualizzazione", questa
tecnologia consente di accedere a risorse (CPU1, reti, server, memorizzazione dati,
applicazioni e servizi) in modo configurabile e "tagliato su misura" per l'utilizzo richiesto
dall’utente. Nel Cloud Computing non esiste "un server" come tradizionalmente lo si
intende, ovvero una singola macchina, eventualmente replicata contro eventuali perdite
d'informazioni, situata in una località nota. Esiste, invece, un gruppo distribuito di server
interconnessi ("la nuvola", in lingua inglese Cloud) che gestiscono servizi, eseguono
applicazioni ed archiviano documenti in modo totalmente trasparente all'utilizzatore. Con il
Cloud Computing le aziende (in particolare le più grandi) hanno la possibilità di ottenere
grandi risparmi sull'acquisto e sulla gestione di macchine ed infrastrutture di calcolo.
L'aspetto che suscita una certa apprensione nei confronti del Cloud da parte delle aziende è
legato principalmente alla custodia dei dati. Nonostante le garanzie prestate dai fornitori, le
società il cui futuro dipende strettamente dalla segretezza di determinate informazioni
sensibili (progetti, caratteristiche dei nuovi prodotti ecc.) preferiscono ancora conservare
questo materiale nella tradizionale sala sicura, situata in località nota piuttosto che "salvato
da qualche parte” nella rete. Inoltre potrebbero manifestarsi problemi internazionali di tipo
economico e politico, che possono verificarsi quando dati pubblici sono raccolti e conservati
in archivi privati, situati in un paese diverso da quelli degli utenti del Cloud. Altre
problematiche sono legate alla localizzazione degli archivi del Cloud in alcuni paesi ricchi in
quanto, se l'accesso alle conoscenze memorizzate non sarà liberamente garantita a tutti e
non verrà regolato da specifiche norme internazionali, si potrebbe generare un aumento del
digital divide2 tra paesi ricchi e poveri e favorire principalmente grandi multinazionali con
1
L'unità di elaborazione centrale o CPU è una tipologia di processore digitale general purpose (dispositivi elettronici che
non sono dedicati ad un solo possibile utilizzo) la quale si contraddistingue per sovrintendere tutte le possibili funzionalità
del computer. Attualmente la CPU è tipicamente implementata come microprocessore.
2
Per digital divide, o divario digitale, si intende il divario esistente tra chi ha accesso effettivo alle tecnologie
dell'informazione (in particolare personal computer e internet) e chi ne è escluso, in modo parziale o totale. I motivi di
2
Per digital divide, o divario digitale, si intende il divario esistente tra chi ha accesso effettivo alle tecnologie
dell'informazione (in particolare personal computer e internet) e chi ne è escluso, in modo parziale o totale. I motivi di
esclusione comprendono diverse variabili: condizioni economiche, livello d'istruzione, qualità delle infrastrutture, differenze
di età o di sesso, appartenenza a diversi gruppi etnici, provenienza geografica.
8
organismi monocentrici dislocate principalmente nei paesi del Cloud, essendo la proprietà
immateriale considerata come un fattore strategico per le moderne economie knowledgebased3.
Nonostante queste diffidenze, vista la grande versatilità e le molteplici possibili applicazioni,
si può affermare che il Cloud Computing del prossimo decennio permetterà nuovi modi di
collaborare in qualsiasi luogo e a qualsiasi livello.
1.1 La vita prima del Cloud
Le applicazioni aziendali tradizionali sono da sempre molto complicate e costose. La quantità
e la varietà di hardware e software necessari per la loro esecuzione sono soverchianti, in
quanto è necessario un team di esperti per installarle, configurarle, testarle, eseguirle,
proteggerle e aggiornarle. Se si considera questo processo per tutte le applicazioni da
sviluppare si può immaginare la difficoltà di qualsiasi azienda nell’ottenere l’applicazione
necessaria.
Il Cloud Computing è nato in risposta a questi problemi perché non richiede la gestione
dell'hardware e del software previsti. L'infrastruttura condivisa offre infatti un
funzionamento simile a quello dei servizi pubblici: l'utente paga solo le funzionalità
necessarie.
Come appare su una ricerca condotta alla Berkley Univesity nel 2009, l’impatto del Cloud sul
mondo del software è paragonato a quello avuto dalle fonderie (semiconductor) sulle
industrie hardware. Lo studio riporta che un tempo le società produttrici di
hardware richiedevano un impianto di fabbricazione dei semiconduttori, ma le aziende in
questione dovevano essere grandi abbastanza per permettersi di costruire e di
gestire economicamente il processo di produzione. Tuttavia, il costo di elaborazione di
queste apparecchiature è aumentato sempre più fino a rendere il costo di fabbricazione dei
semiconduttori talmente elevato da poter essere sostenuto solo da aziende di grandi
dimensioni. Questo ha motivato l'aumento delle fonderie di semiconduttori che
costruiscono i chip per altre aziende il cui valore è in progettazione di chip innovativo. Una
media società può ora avere successo nel chip business senza il capitale, le spese operative e
i rischi associati a possedere un progetto all’avanguardia e innovativo. In questo modo
inoltre si riduce anche il rischio di non avere abbastanza prodotti di successo
per ammortizzare i costi operativi. Analogamente, i vantaggi dell'economia di scala possono
portare ad un discreto numero di fornitori di Cloud Computing in grado di ammortizzare il
costo dei loro data center di grandi dimensioni attraverso i prodotti di molte aziende prive di
data center (data cebter-less). Questa malleabilità e semplificazione ha reso inoltre
accessibile un’area totalmente avulsa all’utente medio, espandendo il Cloud anche a livello
singolo e familiare, agevolando anche le più semplici azioni quotidiane.
3
L'economia basata sulla conoscenza (knowledge-based) è una branca dell'economia che si occupa di studiare le
caratteristiche della conoscenza e delle informazioni, con particolare attenzione a natura, creazione, diffusione,
trasformazione, trasferimento, e utilizzo della conoscenza in ogni sua forma.
9
Le più recenti innovazioni introdotte nel Cloud Computing stanno rendendo le applicazioni
aziendali sempre più mobili, collaborative e simili ad applicazioni consumer di ampia
diffusione quali Facebook e Twitter. Gli utenti di queste applicazioni si aspettano di ricevere
le informazioni importanti in tempo reale e anche le applicazioni aziendali nel Cloud stanno
iniziando a muoversi in questa direzione. Come testimoniano diverse ricerche4 la storia del
Cloud Computing, contrariamente a quanto si può pensare e nonostante sia una tecnologia
quanto mai attuale e recente, fonda i suoi principi sul modello del mainframe, che ha
dominato gli anni 60 e 70. Le prime avvisaglie di questi concetti sono datati 1960 e
precisamente quando John McCarthy (1927 -2011), noto scienziato informatico, espresse la
sua visione di un futuro in cui la computazione potrà essere organizzata con sistemi pubblici
d’accesso5.
C’è chi sostiene che la nascita del termine “Cloud” risalga ai primi anni novanta e sia legata
all’ambito della comunicazione telefonica, quando gli operatori affondavano nella nuvola i
circuiti elettrici che servivano alla permutazione del traffico, sia questo audio o dati,
nascondendoli agli utilizzatori finali che risultano praticamente a conoscenza solo dei
dispositivi d’ingresso e d’uscita della comunicazione. Più probabilmente però si pensa anche
che il nome derivi dalla somiglianza delle relazioni schematizzate di un’applicazione Cloud
ad una nuvola. Verso la fine degli anni novanta, complice la crescita dell’utenza consumer di
internet, ci fu una forte spinta innovativa e iniziarono a circolare i primi servizi on-demand
sulla rete. In questo modo nacque quello che successivamente verrà definito come Software
as a Service (SaaS, in dettagliato nel par. 1.3). Uno dei primi casi è da attribuire a
Salesforce.com6 che, applicando fra loro altre tecnologie sviluppate da colossi come Google
e Yahoo!, realizzarono un modello di business basato su servizi a richiesta e sulla
personalizzazione di tali servizi, senza richiedere all’utenza finale particolari competenze
specifiche.
Dal 2000 in poi colossi come Microsoft e IBM iniziarono a comprendere l’importanza di
questo fenomeno, il primo tramite il potenziamento dei propri servizi web e il secondo, nel
2001, tramite la stesura dell’Autonomic Computing Manifesto7 dove venivano descritte le
tecniche principali per l’autogestione dei sistemi IT in presenza di prodotti eterogenei fra
loro, facendo quindi ricorso in modo massiccio alla virtualizzazione. Nel 2005 Amazon
modernizzò i propri data-center secondo i nuovi principi architetturali che, oltre a portare
efficienza in termini di elaborazione e consumo di risorse elettriche, ha permesso l’accesso
alla struttura da parte di utenti esterni, con lo scopo di poter utilizzare le prestazione
computazionali on-demand. In questo modo nacquero gli Amazon Web Services, in
contemporanea ai concetti più evoluti di Grid Computing (dettagliato nel par. 1.2). Nello
stesso anno Microsoft con Hotmail e Google con Gmail si affacciavano verso il Software as a
Service, proponendo un efficiente pannello di amministrazione online della propria casella di
posta elettronica, iniziando a rendere obsoleti client come Outlook o Eudora. Tra il 2006 e il
4
Cfr. Barrie Sosinsky, Cloud Computing Bible, Wiley, Indianapolis, IN 2011.
Cfr. Luca Marelli, Cloud Computing per applicazioni web, Apogeo, Milano 2010.
6
Ulrich Beck, La società cosmopolita. Prospettive dell'epoca postnazionale, il Mulino, Bologna 2003.
7
http://www.research.ibm.com/autonomic/manifesto/autonomic_computing.pdf.
5
10
2007 Google inizia a focalizzare la propria attenzione verso il Cloud, andando a progettare
numerosi servizi con lo scopo di poter creare una suite di applicazioni da utilizzare online.
Ma è solo nel 2008 che il termine comincia a diventare popolare anche fra i non addetti ai
lavori, considerando questo tipo di approccio come il futuro del web. Ad ulteriore conferma
del cambiamento in atto in quel periodo molte fonti autorevoli8 espressero in maniera
inequivocabile come le aziende stessero mutando il loro assetto, dalla vecchia tipologia di
possesso in loco di hardware e software, ad un innovativo modello in cui i servizi necessari
vengono reperiti verso terzi e solo su richiesta, pagando in relazione all’effettivo utilizzo.
Considerare il Cloud Computing come il futuro del Business IT non è corretto, in quanto
oggigiorno tutti i grandi colossi si sono adeguati introducendo la nuova tecnologie o stanno
adeguando i servizi già esistenti. Bisogna invece capire come questo nuovo paradigma potrà
cambiare il mondo del business e valutare come sarà possibile generare differenziali
competitivi anche alla luce di questa “corsa alla standardizzazione”9 di processi, prodotti e
servizi.
Per comprendere ulteriormente l’importanza di questo nuovo modello applicativo si può
analizzare uno studio condotto dal Politecnico di Milano10 sul volume delle ricerche
effettuate su Google per le parole “Cloud Computing”. Nei primi mesi del 2008 è iniziato
l’interesse al Cloud che ha avuto una forte crescita costante negli ultimi anni. Se si confronta
questo indice con quelli delle recenti tecnologie abilitanti del Cloud Computing, come il
Service Oriented Architecture (SOA), il Web 2.0 e la Virtualizzazione si è visto che
quest’ultime fino al 2007 erano in un trend crescente di interesse, ma ormai sono state
raggiunte dal Cloud. Quantificando in data odierna11 i risultati trovati per Cloud Computing
sono circa 207.000.000 mentre per SOA sono circa 7.870.000. Oltretutto è evidente come i
volumi di notizie di SOA, Web 2.0 e virtualizzazione abbiano avuto un successo crescente nel
2008, anno in cui è “nato” il Cloud Computing, mentre oggi le quantità di articoli,
informazioni e blog legati a questo argomento sovrastano nettamente quelle degli altri tre,
ad eccezione del web 2.0 la cui vastità di interesse è però dovuta anche all’incrocio con
diversi campi di dominio pubblico e al largo utilizzo sui dispositivi mobili.
1.2 Definire il Cloud Computing
Anche se le piattaforme di Cloud Computing stanno acquisendo una popolarità crescente
non è ancora chiaro a cosa è dovuta questa straordinaria diffusione, quali sono i vantaggi
unici che una architettura Cloud Computing può offrire a un'azienda e soprattutto cosa si
intende per Cloud Computing.
8
Gartner Inc. nel luglio del 2008.
Edoardo Messi, La nuova era dell’ICT, Apogeo, Milano 2008.
10
Politecnico di Milano, Cloud & ICT as a Service, 2009.
11
Torino, 3 Marzo 2012.
9
11
Generalmente il Cloud Computing si può definire come l’insieme di risorse
informatiche messe in comune e dei servizi erogati attraverso il web. Quando
si schematizzano le relazioni tra tutti gli elementi utilizzati, il disegno risultante assomiglia ad
una nuvola (Cloud), da cui è probabile come già accennato che derivi la denominazione.
Il termine “computing” invece si riferisce ai servizi di utility computing come l’accesso a
risorse computazionali (memoria, CPU, virtual server, ecc...) e servizi (backup, antispamming, …). Cercando una definizione più professionale si può dire che "per Cloud
Computing si intende l'insieme di risorse hardware, del middleware (livelli di astrazione alle
risorse hardware) e del software applicativo, che fornisce un determinato set di funzionalità
fruibili mediante l'uso della rete."12 Chi usufruisce di questo servizio non deve aumentare
il capitale per acquistare, gestire, mantenere e scalare l'infrastruttura fisica necessaria per
gestire l’elevato traffico di informazioni richiesto. Invece di dover investire tempo e
denaro per mantenere i loro siti, l’utente usufruisce di un servizio a seconda del tipo e della
quantità di risorse utilizzate. La particolare elasticità del Cloud inoltre permette agli utenti di
non dover più prevedere il traffico, ma possono promuovere i loro siti in modo spontaneo e
individuale.
Se si pensa inoltre all'infrastruttura di Cloud Computing e al suo impatto sulle aree che
rivestono un'importanza critica per l'IT, come la sicurezza, gli investimenti in infrastrutture e
lo sviluppo di applicazioni business, è naturale che molti reparti IT preferiscano appoggiarsi a
dei servizi esterni anziché dedicare una parte significativa del loro tempo a progetti di
implementazione, manutenzione e miglioramento che spesso non generano un effettivo
valore per il bilancio delle aziende. Per non essere confuso con il grid computing,l’utility
computing, o autonomic computing, il Cloud comporta l'interazione di diverse risorse
virtualizzate. I Cloud server integrano e condividono le informazioni in base al
livello di traffico del sito web attraverso l'intera rete. Il Cloud Computing è spesso fornito as
a service (come un servizio) su Internet, in genere sotto forma di Infrastructure as a service
(IaaS), Platform as a service (PaaS), o Software as a service (SaaS).
Il grid computing in particolare applica le risorse di molti computer di una rete per un unico
problema, allo stesso tempo, di solito infatti a un problema scientifico o tecnico che richiede
un gran numero di cicli di elaborazione del computer o l'accesso a grandi quantità di dati. Un
noto esempio di grid computing di pubblico dominio è il SETI (Search for Extraterrestrial
Intelligence13) @Home, progetto in cui migliaia di persone stanno condividendo i cicli
inutilizzati dei loro computer alla ricerca di segnali “razionali” dallo spazio esterno. Secondo
John Patrick, vice-presidente della IBM per le strategie di Internet, "the next big thing will be
grid computing14”. Questa tecnologia richiede l'utilizzo di software in grado di dividersi ed
elaborare i pezzi di un programma in diverse migliaia di computer. Può essere pensato come
12
http://www.hosttalk.it/Cloud_computing/.
SETI, acronimo di Search for Extra-Terrestrial Intelligence (Ricerca di Intelligenza Extraterrestre), è un programma
dedicato alla ricerca della vita intelligente extraterrestre, abbastanza evoluta da poter inviare segnali radio nel cosmo. Il
programma si occupa anche di inviare segnali della nostra presenza ad eventuali altre civiltà in grado di captarli.
Il SETI Institute, proposto nel 1960 da Frank Drake (tuttora uno dei suoi direttori), è nato ufficialmente nel 1974. È
un'organizzazione scientifica privata, senza scopi di lucro. La sede centrale è a Mountain View, in California.
14
http://www.sqlmag.com/article/performance/grid-computing-the-next-big-thing.
13
12
cluster computing distribuito e su larga scala o come una forma di rete distribuita di
elaborazione parallela. Si può limitare alla rete di postazioni di lavoro all'interno di
un'azienda o può essere una collaborazione pubblica (nel qual caso è anche conosciuto
anche come una forma di peer-to-peer computing). Un certo numero di aziende, gruppi
professionali, consorzi universitari, e altri gruppi hanno sviluppato o stanno sviluppando dei
software per la gestione di progetti di grid computing. La comunità europea (UE) sta
sponsorizzando un progetto di griglia per le energie fisiche, l'osservazione della terra e per le
applicazioni della biologia. Negli Stati Uniti, la National Technology Grid sta costruendo un
prototipo di griglia computazionale per le infrastrutture e una griglia di accesso per le
persone.
Il grid computing è quindi utile per la sua capacità di utilizzare in maniera più conveniente di
una data quantità di risorse del computer, la possibilità di risolvere i problemi che non
possono essere affrontati senza un enorme quantità di potenza di calcolo e perché anticipa
che le risorse di molti computer possano essere cooperative e sinergicamente gestite come
una collaborazione verso un obiettivo comune. Un settore probabile per l'uso del grid
computing sarà applicazioni pervasive computing , un modello di calcolo previsto per il
futuro in cui in piccola parte, o anche invisibile, i computer saranno ovunque intorno a noi,
comunicando attraverso reti sempre più interconnesse.
L'utility computing al contrario è un servizio di fornitura in cui vengono messe a disposizione
del cliente risorse di calcolo, di gestione delle infrastrutture che vengono caricate per
l'utilizzo specifico. Come gli altri tipi di computing on-demand questo modello cerca di
massimizzare l'uso efficiente delle risorse e/o minimizzare i costi associati. Il
termine “utility” è usato per fare un'analogia con altri servizi, come l'energia elettrica, che
cercano di soddisfare le esigenze dei clienti fluttuanti, in modo da farsi pagare per le risorse
in base all'utilizzo, piuttosto che su una base forfettaria. Questo approccio, noto anche
come pay-per-use (paga ciò che usi) sta diventando sempre più comune nel campo
dell'informatica aziendale e viene talvolta usato per il mercato consumer e, per il servizio
Internet, l'accesso al sito Web, la condivisione dei file e altre applicazioni. Un'altra versione
di utility computing viene effettuata all'interno di un'azienda che centralizza le risorse di
calcolo per servire un maggior numero di utenti, senza inutili ridondanze.
L’autonomic computing invece è un modello di auto-gestione informatica modellata sul
sistema nervoso autonomo del corpo umano. Un sistema di elaborazione autonomo
potrebbe controllare il funzionamento delle applicazioni informatiche e dei sistemi senza un
input da parte dell'utente, secondo lo stesso modello per cui il sistema nervoso autonomo
regola sistemi corporei senza la consapevolezza dell'individuo. L'obiettivo dell’autonomic
computing è creare sistemi che si eseguono autonomamente, ad un alto livello di
funzionamento, mantenendo la complessità invisibile all'utente del sistema. Inoltre, anche
questo
è
uno
degli
elementi
costitutivi
del
pervasive
computing.
Molte industrie leader del settore, tra cui IBM, HP, Sun e Microsoft sono alla ricerca di vari
componenti dell’autonomic computing. Ad esempio IBM ha sviluppato una delle iniziative
più importanti; nello sforzo per promuovere standard aperti per questo servizio, IBM ha
13
recentemente distribuito un documento che lo definisce "un progetto per la costruzione di
sistemi autogestiti"15, con un insieme di strumenti associati per aiutare a mettere in pratica i
concetti. Secondo IBM inoltre, ci sono otto elementi cruciali che un sistema informatico
autonomo deve avere:
-
mantenere una conoscenza approfondita e specifica su tutte le sue componenti;
avere capacità di auto-configurazione in base alle diverse e possibili condizioni
imprevedibili;
“auto- monitoraggio” costante per avere un funzionamento ottimale;
essere in grado di trovare modi alternativi e autonomi per funzionare quando
incontra problemi;
capacità di rilevare le minacce e proteggersi a sua volta;
adattabilità alle condizioni ambientali;
basarsi su standard aperti piuttosto che tecnologie proprietarie;
essere in grado di anticipare la domanda, pur rimanendo trasparente per l'utente.
Avendo presente una panoramica dei servizi presenti è facile capire come il Cloud
Computing, rispetto ad altre tecnologie, comporti l’interazione di diverse risorse per una
maggiore completezza di informazioni e servizi. Tra i vari pregi del Cloud si può sottolineare
una elevata integrazione dei servizi web. Per la sua stessa natura, la tecnologia di Cloud
Computing è molto più semplice e rapida da integrare con le altre applicazioni aziendali, sia
software tradizionali che basati su infrastruttura di Cloud Computing, sia forniti da terze parti
che sviluppati internamente. Ha inoltre una fornitura di servizi di altissimo livello in quanto le
infrastrutture Cloud assicurano una scalabilità notevolmente superiore, prestazioni di
ripristino di emergenza complete e tempi di inattività straordinariamente bassi. Nessun
componente hardware o software da installare deve essere installato ed è molto semplice
da usare, tanto da pensare di arrivare anche ai singoli utenti privati. Oltre alla elevata
personalizzazione infatti una piattaforma Cloud offre la tecnologia ideale per lo sviluppo di
applicazioni capaci di supportare le esigenze in costante evoluzione di una organizzazione.
1.2.1. Tipologie di Cloud
Il Cloud Computer può essere quindi visto come un “super” computer (inteso come grandi
risorse di tipo informatico) che ha come sua ubicazione la rete internet. Il Cloud in realtà,
non basandosi su una architettura rigida, “racimola”, su richiesta, le risorse disponibili
ovunque nella rete, sia provenienti da un PC, da un notebook, da un palmare e, addirittura,
anche da un cellulare connesso ad internet. Anche se distanti nello spazio però una rete
Cloud può essere formalizzata in una serie di componenti:
15
Michael Miller, Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online, Que,
USA 2006, p. 32.
14
-
Cloud client: consiste nell’hardware (dispositivi di qualsiasi tipo connessi a internet) e
nel software (un qualsiasi browser come Google Crome, Firefox, ecc.) di cui il sistema
Cloud necessita per funzionare correttamente.
-
Cloud services: consiste nei servizi web: un sistema software progettato per
sostenere interazioni di tipo machine-to-machine (da macchina e macchina) di
interoperabilità su una rete. Questi software possono essere ottenuti da un’altra
nube il cui scopo principale è quello di calcolare componenti software, software per
servizi, o informazioni sugli utenti finali (identità, integrazione, pagamenti,
mappature, ricerca, ecc.).
-
Cloud application: architetture software, che eliminano il bisogno di installare e
gestire le procedure client sul computer dell’utente, alleviando così il carico di
manutenzione del software, delle operazione in corso, etc. (Facebook, Google Apps,
Salesforce, Microsoft Servizi On-line).
-
Cloud platform: è un servizio che consegna una piattaforma di calcolo e/o pile di
soluzioni utilizzando una serie di domande da rivolgere all’utente senza che
quest’ultimo debba avere una conoscenza profonda degli strati del software, come
ad esempio Python Django per Google App Engine.
-
Cloud storage: comporta la capacità di memorizzazione dei dati come un servizio
offerto dalla rete (calcolati per GB al mese) (Database, Synchronisation Web Service).
-
Cloud infrastructure: il servizio che mette a disposizione reti di computer virtuali, ad
esempio Azure (Microsoft).
Analizzando la rete a nube ad un livello funzionale osserviamo che l’architettura del Cloud
Computing è un sistema software finalizzato alla realizzazione di nubi di calcolo,
comprensive sia di hardware (virtuale) che di software, disegnati da un “architetto” che
lavora per garantire la completa integrazione tra le diverse nubi. Il sistema Cloud comporta
componenti multipli che comunicano l'un l'altro su interfacce di programmazione, di solito
mediante Web services. Questo approccio ricorda da vicino la filosofia Unix: avere
programmi multipli che lavorano bene insieme su interfacce universali. La complessità è
controllata ed i sistemi risultanti sono più maneggevoli. Si possono definire, infine, le entità
fondamentali presenti nell’ambiente dell’architettura a nube:
-
Cloud Provider: è l’entità che possiede e gestisce le risorse delle reti Cloud
assegnando sia le risorse di calcolo che i servizi per ogni utente. Inoltre, possiede ed
implementa sistemi di calcolo di Cloud live per distribuire servizi a terze parti. Di
solito questo richiede risorse significative ed esperienza nella costruzione di centri di
calcolo. Nonostante tutto, alcune grosse organizzazioni hanno notato che il
possedere un provider Cloud porta all’azienda che ne fa un uso esclusivo numerosi
15
benefici in termini di efficienza, soprattutto nella gestione dei casi di picchi di carico.
Questi benefici sono controbilanciati da una notevole complessità, sia di tipo
economico (acquisto, mantenimento e aggiornamento delle macchine) che
prettamente architetturale. Una delle prime grandi aziende a superare gli ostacoli
iniziali è stata Amazon che nel 2002 ha basato il suo Amazon Web Services su
architetture di tipo Cloud.
-
Cloud User: è il fruitore della nube. Un problema rilevante per questa entità è la
privacy dell’utente che potrebbe essere violata. Una possibile soluzione è la
creazione di comunità che garantiscano i diritti degli utenti.
-
Cloud Vendor: è l’entità che vende prodotti e servizi che facilitano l’uso, l'adozione e
l’utilizzo della nube di calcolo.
Data la moltitudine di applicazioni a cui può essere associato il Cloud ne sono nate diverse
tipologie in cui è possibile classificare i servizi di Cloud Computing16.
16
-
Storage-as-a-Service: consiste nella possibilità di utilizzare lo spazio sul disco, situato
fisicamente su un sistema remoto, disponibile ad ogni applicazione che necessiti di
memoria come una risorsa disco locale. E’ il componente più “primitivo” di Cloud
Computing ed è un componente di base spesso utilizzato dalla maggior parte degli
altri componenti di una infrastruttura di Cloud Computing.
-
Database-as-a-Service: fornisce la possibilità di utilizzare i servizi di un database
remoto, condiviso con altri utenti e utilizzato come un normale database locale. Le
soluzioni offerte da vari provider sono tutte accomunate dalla possibilità di accedere
a database costosi in termini di licenze software e di hardware ripartendo i costi fra
più utilizzatori.
-
Information-as-a-Service: questa definizione si riferisce alla possibilità di accedere a
qualsiasi tipo di informazione residente su sistemi remoti e accessibile tramite servizi
specifici, ad esempio API (Application Programming Interface, sono un insieme di
procedure disponibili al programmatore, di solito raggruppate a formare un set di
strumenti specifici per l'espletamento di un determinato compito all'interno di un
determinato programma). Alcuni esempi possono essere la quotazione di un titolo di
borsa, la validazione di un indirizzo o un report sul credito.
-
Process-as-a-Service: si riferisce a una risorsa remota in grado di raggruppare più
risorse, come ad esempio servizi e dati, gestiti dalla stessa risorsa di Cloud Computing
o accessibile remotamente, per creare processi di business. Un business process si
può immaginare come un’applicazione che può risiedere su più sistemi e che utilizza
Cfr. Barrie Sosinsky, Cloud Computing Bible, Wiley, Indianapolis, IN 2011, pp. 45-59.
16
servizi e informazioni in associazione fra loro secondo sequenze logiche che
costituiscono il procedimento. Questi processi sono tipicamente più facili da
modificare che non le applicazioni classiche e offrono maggiore flessibilità agli
utilizzatori di questi “process engines” accessibili on-demand.
17
-
Software-as-a-Service: rappresenta ogni applicazione distribuita agli utenti sul web e
utilizzata normalmente tramite web browser. L’applicazione a cui si pensa
comunemente ragionando su questa categoria è SFA di Salesforce.com, ma anche le
applicazioni di office automation presenti su Google Docs, Gmail e Google Calendar
sono a tutti gli effetti soluzioni di tipo software-as-a-service.
-
Platform-as-a-Service: rappresenta una piattaforma completa che include l’ambiente
per lo sviluppo di applicazioni, di interfacce e di database, i dispositivi di storage e gli
strumenti di collaudo, il tutto gestito in remoto e offerto agli utenti che sottoscrivono
il servizio. Basato sul modello tradizionale di time-sharing le proposte più moderne
di questa categoria di servizi consentono di sviluppare applicazioni di livello
superiore da utilizzarsi localmente o secondo il modello “on-demand”, venduto
indifferentemente come licenza software o tramite la sottoscrizione di un canone.
-
Integration-as-a-Service: offre la possibilità di una completa integrazione per il
Cloud che include l’interfacciamento con le applicazioni, mediazione semantica,
controllo del flusso e progettazione dell’integrazione. Include anche la maggior parte
di caratteristiche e funzionalità di una tradizionale piattaforma EAI17, con la
differenza che viene erogata come servizio.
-
Security-as-a-Service: consente di fornire servizi core18 sulla sicurezza in modalità
remota attraverso internet. Mentre vengono forniti i normali servizi di sicurezza di
base, cominciano ad essere forniti anche servizi di sicurezza più sofisticati come ad
esempio l’identity management.
-
Management/Governance-as-a-Service: qualsiasi servizio on-demand che fornisce la
possibilità di gestire uno o più servizi Cloud. Alcune di queste sono attività semplici
come la gestione della topologia, l’uso di risorse, la virtualizzazione e la gestione del
tempo di funzionamento. I sistemi di governance cominciano ad essere disponibili e
consentono di gestire la definizione e l’adozione di politiche aziendali sia sui dati che
sui servizi.
Enterprise Application Integration (Integrazione d'Applicazioni di Impresa, EAI) si riferisce al processo d'integrazione tra
diversi tipi di sistemi informatici attraverso l'utilizzo di software e soluzioni architetturali.
18
Con il termine Core in informatica si intende tipicamente il "nucleo elaborativo" di un microprocessore. Questo infatti è
costituito in realtà da due componenti principali: il core appunto, e il package (pacchetto) che lo contiene.
17
-
Testing-as-a-Service: fornisce la possibilità di testare sistemi locali o “on-the-Cloud”
utilizzando software e servizi erogati in remoto. Mentre un servizio Cloud dispone
delle funzionalità per fare i propri test, le soluzioni di tipo testing-as-a-service sono in
grado di testare altre soluzioni direttamente sul Cloud, sui siti web, e su sistemi
aziendali senza l’impiego di hardware o software in azienda.
-
Infrastructure-as-a-Service: questa tipologia di soluzione attualmente può essere
tradotta come “data center-as-a-service” o nella possibilità di accedere remotamente
a risorse di elaborazione. Si dispone di un sistema fisico a completa disposizione che
ai fini pratici rappresenta il proprio data center, o parte di esso. La differenza
principale fra questo approccio e altri tipologie Cloud consiste nel fatto che invece di
utilizzare un’interfaccia su risorse contate e misurate, si ha accesso all’intero sistema
e al software installato su di esso.
Di queste tipologie i servizi i più utilizzati che, solitamente, vengono forniti dalle aziende del
settore sono: IaaS (Infrastructure as a Service), PaaS (Platform as a Service) e SaaS (Software
as a Service).Si distinguono per il livello a cui ognuno fornisce all'utente finale accesso
all’architettura Cloud. L’architettura di un sistema di Cloud Computing, rende possibile
constatare come gli IaaS siano i servizi che permettono di avere l'accesso al livello più basso
della Cloud. Un'azienda fornitrice di IaaS mette a disposizione una infrastruttura hardware
remota e ci fornisce la documentazione necessaria affinché la nostra piattaforma software
possa utilizzarne le risorse. Ad esempio se un provider che mette a disposizione la propria
infrastruttura, per l'esecuzione di virtual machines e per la loro gestione, è un IaaS Provider.
Sono identificabili come PaaS, invece, tutti i servizi che ci mettono a disposizione una
piattaforma pronta per lo sviluppo delle nostre applicazioni. E' possibile indicare come PaaS
Provider gli attuali fornitori di web hosting; l'utente finale, infatti, non deve occuparsi della
gestione software/hardware, ma ha la possibilità di usare librerie e framework preinstallati e
di essere subito operativo dopo aver caricato sull'infrastruttura del fornitore la propria
applicazione.
I SaaS, infine, sono i servizi che mettono a disposizione dell'utente finale un software
completo, che può comunque essere sempre configurabile, e che sopperisce a determinate
richieste. Le web mail, conosciute ed utilizzate da tutti, sono un esempio di SaaS, perchè
permettono di poter gestire le proprie email completamente dal web. Un altro chiaro
esempio di SaaS, infine, è dato dai software da ufficio della suite Google Docs.
In definitiva, “spostarsi nella Cloud significa abbracciare il concetto di BPO (Business Process
Outsourcing19) con tutti i pregi ed i difetti che ne conseguono”20.
19
Il Business Process Outsourcing (BPO) prevede la contrattazione delle operazioni e le responsabilità delle funzioni
aziendali specifiche (o processi) per un terzo fornitore di servizi.
20
Vincenzo Cinque, Piattaforme di monitoraggio per sistemi Cloud, Politecnico di Napoli, 2011.
18
1.3. Il modello NIST
Per definire le caratteristiche che un sistema deve possedere per poter essere classificato
come Cloud Computing si può utilizzare una definizione piuttosto autorevole e condivisa,
giunta in pochi anni già a molteplici revisioni. Si tratta di un documento, la cui ultima
versione è stata pubblicata nel settembre2011 dal National Institute of Standards and
Technology (NIST), l’istituto statunitense degli standard e della tecnologia derivato dal
vecchio National Bureau of Standards, che ha dato una definizione formale al Cloud
Computing:
“Cloud Computing is a model for enabling ubiquitous, convenient, on-demand network access
to a shared pool of configurable computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned and released with minimal
management effort or service provider interaction21.”
“Il Cloud Computing `e un modello onnipresente, conveniente e che abilita l’accesso ondemand tramite la rete a un pool condiviso di risorse di elaborazione configurabili (ad es.
reti, server, immagazzinamento, applicazioni e servizi), che possono essere erogate e
liberate in modo rapido tramite attività di gestione o interazione con i service provider”.
Il NIST inoltre sostiene che questo modello è composta da cinque caratteristiche essenziali.
La prima parte della definizione mette in luce tre concetti fondamentali e caratterizzanti, di
carattere prettamente tecnologico. Innanzitutto sottolinea la presenza di un modello
abilitante; in termini scientifici un modello è la rappresentazione astratta e semplificata
della realtà. In questo caso, invece, si utilizza il termine per racchiudere una serie di
procedure, proprietà e caratteristiche ben definite che permettono l’accesso a risorse e/o
servizi messi a disposizione attraverso questo paradigma.
21
-
Self service ed on-demand: l’utilizzatore del servizio può richiedere ed utilizzare le
risorse di calcolo e di immagazzinamento (storage) secondo le sue necessità, senza
richiedere nessuna interazione umana con il fornitore di servizi.
-
Accesso di rete aderente agli standard: le capacità fornite dal servizio sono disponibili
sulla rete e disponibili attraverso meccanismi standard che permettono l’utilizzo ad
applicazioni eseguite su piattaforme eterogenee.
-
Resource pooling: le risorse del fornitore di servizio sono raggruppate allo scopo di
servire gli utilizzatori attraverso un modello di erogazione multi-tenant. Le risorse
fisiche e virtuali sono assegnate dinamicamente secondo le esigenze degli utilizzatori.
Questi ultimi non hanno visibilità dell’effettiva posizione fisica delle risorse utilizzate
se non con un livello di astrazione molto elevato (nazione, stato o al massimo data
center).
National Institute of Standards and Technology. The NIST Definition of CloudComputing, 2011.
19
La seconda parte della definizione racchiude in sé la parte gestionale del paradigma, riguarda
infatti i due attori principali: il cliente e il service provider. Il primo può ottenere in tempi
sensibilmente più rapidi risorse come reti, server, immagazzinamento, applicazioni e servizi,
senza impegnarsi in termini di tempo e competenze. Il secondo, invece, è chi si fa carico di
tutto questo, ovvero il gestore che deve soddisfare le richieste degli utenti, preoccupandosi
di mantenere sempre attivo il sistema. Il NIST, inoltre, evidenzia altre due caratteristiche
essenziali del Cloud Computing, non espressamente scritte ma ugualmente importanti alle
precedenti:
-
Elasticità: le risorse possono essere fornite in modo elastico, veloce e, a volte,
automatico permettendo una veloce scalabilità verso l’alto e verso il basso.
L’utilizzatore, potendo acquistare l’uso di risorse in qualsiasi quantità ed in
qualunque momento, ha la percezione di una disponibilità potenzialmente infinita.
-
Costo commisurato all’effettivo utilizzo: i sistemi Cloud controllano ed ottimizzano
automaticamente l’uso delle risorse facendo leva sulla capacità di misura dell’uso
delle tipologie di servizio (es. storage, computing time, banda). L’utilizzo delle risorse
può essere monitorato e controllato in modo trasparente per il fornitore di servizio e
l’utilizzatore.
La definizione del NIST contiene anche una descrizione dei possibili modelli di servizio (SaaS,
PaaS e IaaS) e dei modelli di distribuzione (private Cloud, community Cloud, public Cloud ed
hybrid Cloud). Con l’avvento del Cloud Computing si può quindi affermare che questo
sospinga la potenza di calcolo all’esterno, dopo trent’anni di centralizzazione (dai mainframe
ai PC), verso mastodontici data center pubblici o privati, accessibili tramite la rete.
1.4 I modelli di servizio
Definire quello che comprende il Cloud Computing è difficile, perché è un insieme di molte
componenti. Nonostante tutto il Cloud Computing può essere facilmente suddiviso in uno
dei tre modelli di servizio, come definito dal NIST e noto come il modello SPI. SPI è
l’acronimo di Software, Platform (Piattaforma) e delle Infrastructure (Infrastruttura).
Questi diversi modelli possono rappresentare in forma piramidale. Più ci si avvicina alla base
e più viene consentita autonomia di sviluppo e di personalizzazione al consumatore,
naturalmente ad un prezzo più elevato. Dal punto di vista concettuale ciascuno dei livelli
rappresentati in figura 1.1 può essere implementato come un servizio fornito al livello
superiore e viceversa, ciascun livello può essere visto come utente del livello inferiore.
Il Cloud viene visto come un insieme di servizi che possono essere raggruppati, come già
detto in precedenza, in tre categorie: Software as a Service (SaaS), Platform as a Service
(PasS) e Infrastructure as a Service (IaaS) (figura 1.2).
20
Figura 1.1 – Modelli di servizio con esempi relativi.
Figura 1.2 – Architettura di un sistema Cloud.
SaaS
Con Software as a Service (SaaS), all'inizio noto anche come Software on Demand (SoD), si
intende la possibilità di usare applicazioni, in modalità centralizzata, in esecuzione su una
Cloud infrastructure, accessibile da vari dispositivi client attraverso una interfaccia, come un
browser web. Il consumatore vede solo il risultato finale, e cioè l'applicazione, non riesce a
controllare l'infrastruttura di base (rete, server, sistemi operativi, immagazzinamento).
L'utente potrà accedere e modificare solo specifiche impostazioni, o aggiungere funzionalità
opzionali, durante la sessione di configurazione.
21
Possiamo dire che per Software as a Service si considerano in genere le applicazioni degli
utenti finali forniti on demand su una rete pay per use. Il software non richiede alcuna
installazione client, ma unicamente un browser e la connettività di rete. Spesso orientata
verso l'utente finale che ha bisogno di accedere tramite un browser Web o altri client, SaaS
fornisce l'accesso alle applicazioni ospitate su un'infrastruttura Cloud del service
provider. Un business può trovare quasi tutte le applicazioni disponibili tramite il modello
SaaS. Customer relationship management (CRM), calendario, e-mail e gestione delle risorse
umane sono tra alcune delle applicazioni più comuni come i servizi forniti dalla infrastruttura
Cloud. Per i dipartimenti IT, servizi IT management , filtro antispam, prevenzione delle
intrusioni e altri software di sicurezza tradizionali sono tra i tipi di applicazioni sempre
disponibili tramite il modello SaaS. Con SaaS, l'organizzazione utente non possiede né la
domanda né i server associati, i sistemi operativi, immagazzinamento, rete o altre risorse IT
necessarie per il suo sostegno e la consegna. SaaS è un modello di distribuzione del software
attraverso il quale un fornitore di impresa sviluppa un’applicazione web-based (interazione
lato server) del software, e poi ospita l'applicazione funzionante su Internet e utilizzata da
tutti i clienti. Per quest’ultimi non è necessario acquistare licenze software o infrastrutture
aggiuntive, è necessario solamente pagare il canone mensile per l'utilizzo del software.
Si può dividere il servizio SaaS in due categorie:
-
Linea di Servizi alle Imprese: si riferiscono a soluzioni di business offerte alle imprese
e venduti o messi a disposizione di queste sulla base di un abbonamento (ad esempio
i servizi di SCM22 di CRM23 e di RDBMS24 di Microsoft.
-
Orientato al Cliente: sono servizi che vengono offerti al pubblico in generale su una
base di sottoscrizione o, più spesso, offerti gratuitamente e supportati dalla
pubblicità (sono parte di questa categoria servizi come il pacchetto Windows Live di
Microsoft e Google Docs).
I software offerti sono condivisi tra tutti i clienti e garantiscono la separazione logica dei dati
tra utenti differenti. L'affidabilità sulla integrità e sul salvataggio dei dati è una caratteristica
fondamentale, ed è compito dei data center interni al provider assicurare la replicazione e il
backup, l'utente non deve preoccuparsi di queste operazioni. Le applicazioni on-demand
seguiranno la logica del pay-as-you-go (paga quando finisci), ovvero venendo pagate solo
per l'effettivo utilizzo (in ore o in carico computazionale), in questo modo l'utente sarà
sollevato dal pagare licenze e preoccuparsi di manutenzioni. Il risultato comporta un
notevole risparmio, soprattutto per le aziende che usufruiscono di servizi a pagamento.
Per alcuni web services è possibile l'integrazione con altri software avendo così la possibilità
22
Supply Chain Management: riguarda diverse attività logistiche delle aziende, con l'obiettivo di controllare le prestazioni e
migliorarne l'efficienza.
23
Customer Relationship Management: riguarda l'acquisizione di nuovi clienti o potenziali, l'aumento delle relazioni con i
clienti più importanti, la fidelizzazione più longeva possibile dei clienti che hanno maggiori rapporti con l'impresa, la
trasformazioni degli attuali clienti in procuratori, ossia consumatori che lodano l’azienda incoraggiando altre persone a
rivolgersi alla stessa per i loro acquisti.
24
Database relazionale basato su Cloud.
22
di sviluppare nuove applicazione di tipo SOA25 che verranno spiegate in modo più dettagliato
nel secondo capitolo. Riassumendo, i punti di forza del Saas sono:
-
Soluzione pronta e business ready.
Diffusione sempre più veloce e aggiornamenti automatici.
Seguono il modello pay-as-you-go.
Luogo indipendente e accessibilità globale.
Applicazione sempre più collaborative e con meno bachi.
Bassi costi di acquisizione per l'utente.
Un esempio di SaaS è MicroSoft Office365 . Fino al suo lancio, se un utente avesse voluto il
programma Word, avrebbe dovuto acquistarlo, installarlo, fare gli aggiornamenti, rinnovare
la licenza, ecc.Office365 Word invece può essere acquistato a un canone mensile, senza
alcuna installazione client, i file vengono automaticamente eseguiti, gli aggiornamenti
vengono automaticamente ricevuti e il software si può accedere da qualsiasi luogo.
Per annullare l’iscrizione bisogna inoltre semplicemente smettere di pagare il canone
mensile. Un altro esempio di Saas sono le classiche Google Apps.
PaaS
Il Platform as a Service viene usato da società di sviluppo software per eseguire i loro
prodotti software. Questi prodotti software hanno bisogno di server fisici per funzionare,
con software di database e server web su tutte le piattaforme in cui l'applicazione viene
eseguita. PaaS fornisce a tutte la piattaforma le applicazioni software necessarie senza
necessità di somministrazione dei componenti di livello inferiore. Derivato dal modello SaaS,
PaaS soddisfa quindi le esigenze degli sviluppatori. Piuttosto che limitarsi a fornire
applicazioni preconfezionate via su un modello di servizio, un fornitore di PaaS offre l'intera
piattaforma di calcolo e le soluzioni necessarie per un ambiente di esecuzione
dell'applicazione. Con PaaS, una società può distribuire applicazioni senza incorrere agli
imprevisti associati e ai continui costi di manutenzione e gestione dell’infrastruttura
sottostante. L'organizzazione utente ha il controllo delle applicazioni. I tipi di offerte PaaS
possono variare a seconda di quale opzione funziona meglio per il tipo di azione ricercata. Ad
esempio, alcune aziende offrono una combinazione di Cloud PaaS e SaaS, fornendo alle
aziende la possibilità di personalizzare l'applicazione confezionata. Pur essendo in grado di
ottimizzare l'applicazione, si può rendere il modello SaaS più attraente; il problema è però
che quando combinato con una offerta PaaS, SaaS diventa meno portatile. Le ricche offerte
PaaS consentono a un'organizzazione di supportare l'intero ciclo di sviluppo applicativo.
I vantaggi che il PaaS porta sono:
25
La possibilità di scalare, in alto e in basso, a seconda delle necessità.
Per Software Oriented Architecture si intende un’architettura software adatta a supportare l'uso di servizi Web per
garantire l'interoperabilità tra diversi sistemi così da consentire l'utilizzo delle singole applicazioni come componenti del
processo di business e soddisfare le richieste degli utenti in modo integrato e trasparente.
23
-
La semplicità di installazione e distribuzione delle nostre applicazioni.
Fatturazione pay-as-you-go (fatturazione a seconda dell’utilizzo), senza barriere
iniziali.
Non è richiesta alcuna installazione di software sulla propria macchina, si utilizza un
browser web.
Il servizio è multi-tenant (utilizzabile da più utenti).
Non sono più richieste specifiche competenze per sviluppare applicazioni Web.
Gli svantaggi PaaS comportano un certo rischio di lock-in (accordo esclusivo), se l'offerta di
servizi necessitano di interfacce proprietarie o linguaggi di sviluppo; e la possibilità che la
flessibilità delle offerte non possa soddisfare le esigenze di alcuni utenti le cui esigenze in
rapida evoluzione.
Esempi di PaaS sono SalesForce.com, Windows Azure, Joyent (Public Cloud utilizzata anche
da Facebook e LinkedIn) e Google Apps.
IaaS
L’Infrastructure as a Service (o IaaS), detto anche Hardware as a Service, copre una vasta
gamma di funzioni, da singoli server, alle reti private, unità disco, vari dispositivi di
memorizzazione a lungo termine così come server di posta, server di nomi di dominio,
nonché i sistemi di messaggistica. Tutti questi possono essere procurati on demand e spesso
includono le spese di licenza del software per sistemi operativi e la necessità del software
associato installato sui server. Le organizzazioni possono così realizzare una completa
infrastruttura di calcolo utilizzando IaaS on demand. Questo modello di servizio consente alle
organizzazioni di utenti a rinunciare alla realizzazione di attrezzature per un nuovo data
center per gestire crescenti esigenze operative. L'azienda ottiene la necessaria infrastruttura
IT - server, sicurezza, immagazzinamento e reti da un fornitore di servizi Cloud. Mentre una
compagnia utente può eseguire applicazioni, database, sistemi operativi e altri software al di
sopra delle infrastrutture selezionate, non ha alcun controllo diretto o l'accesso a tali
macchine. Il fornitore di servizi Cloud gestisce quindi l'infrastruttura, compresa qualsiasi
scala verso l'alto o verso il basso, se necessario. I servizi messi a disposizione quindi si
possono dividere in tre categorie:
-
Dispositivi: server aziendali, dispositivi di immagazzinamento, di rete e sicurezza.
Impianti e strutture: alloggiamenti per dispositivi, data center, sistemi di
raffreddamento, generatori di potenza e sistemi di backup e sicurezza.
Sistemi di gestione: monitoraggio delle prestazioni (on-site o da remoto) e modifica
delle impostazioni in caso di problemi.
Si può infine dire che IaaS è simile nel concetto a un tradizionale servizio di hosting dedicato,
con due importanti differenze: l’organizzazione per attingere ad un comune insieme di dati
altamente scalabili di risorse, e la possibilità di pagare solo ciò che è utilizzato su base utilità
(pay- as-you-go). In altre parole, le aziende possono aumentare la produttività, eliminando i
24
costi di utilizzo. Esempi di Infrastructure as a Service sono ICloud (Storage ed applicazioni
accessibili da browser o cellulare), MobileMe (Cloud Computing progettato per iPhone ed
iPad da Apple), Rackspace (soluzioni di Private Cloud), Amazon Web Services (con EC2 per
l'acquisto di capacità di calcolo e S3 per lo storage come servizi principali, sia come Paas che
come IaaS).
Qualsiasi servizio fornito dal Cloud può riguardare uno dei tre modelli di erogazione
discussi. Gli utenti finali utilizzano in genere SaaS e PaaS, mentre i team di sviluppo software
e i dipartimenti IT utilizzano principalmente IaaS.
IDaaS
Proprio come il Cloud ha una risposta per tutte le tecnologie dell'informazione, propone una
risposta anche per il problema delle password. Identity as a Service (IDaaS) mira non solo a
dare single sign-on (SSO, singolo accesso), la convenienza per gli utenti finali, ma anche la
semplicità di outsourcing di IT e di gestibilità. Pionieri in questo mercato sono Oracle e
Verizon, mentre The Open Group , Four Bridges Forum (4BF) e SAFE-BioPharma sono le tre
organizzazioni professionali che hanno compiuto i maggiori progressi nell’ultimo periodo26.
Negli Stati Uniti, il National Strategy for Trusted Identities in Cyberspace (NSTIC), parte del
National Institute of Standards and Technology, è un'iniziativa governativa per promuovere
la creazione di un ecosistema di identità. A livello di sviluppo, il più ampiamente riconosciuta
IDaaS API è Initiative For Open Authentication (OATH) e l’algoritmo HOTP (una one-time
password standard). Non si può ancora prospettare come sarà il lavoro dopo la dismissione
delle password di autenticazione; in particolare è da definire la concorrenza di ingegneria sul
mercato, in quanto le astrazioni e gli algoritmi matematici per la sicurezza sono stati definiti.
In questo ambito la gestione delle identità sarà una delle più ampie sfide sempre, oltre
all’alternativa strutturazione informatica si dovranno far fronte a gravi questioni giuridiche
visto il suo impatto sulla privacy e sulla sicurezza delle persone.
1.5 I modelli di distribuzione [NO]
Quando si decide di scegliere per le soluzioni offerte dal Cloud Computing, un'azienda deve
effettuare varie considerazioni sul tipo di modello da utilizzare per i propri servizi Cloud.
Questa scelta è fondamentale e decisiva: si decide quale sia la priorità dell'azienda, se
preferire i bassi costi o l’elevata sicurezza e la privacy dei dati.
I modelli di distribuzione del Cloud Computing sono principalmente tre:
-
26
Public Cloud: dette anche External Cloud, mettono a disposizione le risorse, da parte
del Cloud provider, come servizi per il pubblico utilizzo. In questo caso l'infrastruttura
è di proprietà di un service provider, che eroga servizi pubblici adottabili da
Cfr. Technology and Innovation Award del 2011 all’indirizzo http://unctad.org/en/docs/tir2011_en.pdf.
Scarica