Elaborato Cotticelli Mariateresa n46000735

Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Reti di Calcolatori
Sistemi di gestione per infrastrutture
Cloud
Anno Accademico 2013/2014
Candidato:
Mariateresa Cotticelli
matr. N46000735
“Don't sweat it. It's not real life. It's only ones and zeroes.”
Gene Spafford
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
I NDICE
Indice ......................................................................................................................................................................................... 5
Introduzione ..................................................................................................................................... 7
1 Dalla virtualizzazione al Cloud Computing ..................................................................................... 9
1.1 Il Cloud Computing, la definizione del NIST ................................................................................................... 12
1.2 Caratteristiche essenziali....................................................................................................................................... 12
1.3 Modelli di servizio..................................................................................................................................................... 13
1.4 Modelli di distribuzione ......................................................................................................................................... 15
2 Provider di infrastrutture cloud ................................................................................................... 17
2.1 Lifecycle Service e casi d'uso .............................................................................................................................. 17
2.2 Sicurezza ....................................................................................................................................................................... 18
2.2.1 Il ruolo dei provider di servizi ............................................................................................ 19
2.2.2 Nuovi e futuri sviluppi ....................................................................................................... 21
3 Gestire un datacenter .................................................................................................................. 22
3.1 Com’è fatto un datacenter ..................................................................................................................................... 22
3.1.1 Il DCIM, Data-Center Infrastructure Managment .............................................................. 23
3.1.2 Il ruolo di un DCIM in un DataCenter ................................................................................ 23
3.2 Dai server tradizionali a quelli virtuali............................................................................................................ 25
4 OpenStack: il cloud in open-source .............................................................................................. 27
4.1 Uno sguardo alla struttura .................................................................................................................................... 28
4.1.1 Compute (Nova) ................................................................................................................ 29
4.1.2 Storage .............................................................................................................................. 30
Funzionalità di un Object Storage (Swift) .............................................................................. 30
Funzionalità di un Block Storage (Cinder) ............................................................................. 30
4.1.3 Networking (Neutron) ....................................................................................................... 31
4.2 La Dashboard (Horizon), modulo per una gestione semplificata del cloud .................................... 31
4.3 Altri moduli di OpenStack ..................................................................................................................................... 33
4.3.1 Identity Service (Keystone) ................................................................................................ 33
4.3.2 Image Service (Glance) ...................................................................................................... 33
4.3.3 Telemetry (Ceilometer) ..................................................................................................... 33
4.3.4 Orchestration (Heat) ......................................................................................................... 33
5
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
4.3.5 Database (Trove) ............................................................................................................... 33
5 Cloud Management ..................................................................................................................... 34
5.1 Puppet ............................................................................................................................................................................ 34
5.1.1 OpenStack & Puppet per la gestione automatizzata di un cloud ...................................... 35
6 Conclusioni e futuri scenari.......................................................................................................... 37
Bibliografia e Sitografia .................................................................................................................. 39
6
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
I NTRODUZIONE
Chi si trova nella situazione di dover gestire un’azienda, un’organizzazione, un
ente, che sia esso pubblico o privato, si imbatte inevitabilmente nella necessità
di amministrarne l’infrastruttura informatica. Un incremento delle esigenze di
storage,
ad
esempio,
comporta
necessariamente
l’ampliamento
dell’infrastruttura e quindi un aumento dei costi di gestione e manutenzione.
Se quindi volessimo un’infrastruttura IT “scalabile in base alle esigenze”,
flessibile, che segua le necessità di calcolo in real time? Un’infrastruttura “on
demand”, a consumo, cioè della quale si utilizza solo quello che realmente serve?
Un’infrastruttura capace di aumentare le risorse, ma anche di rilasciarle quando
non ne abbiamo più bisogno?
La risposta a tali domande è fornita oggi dall’evoluzione dei concetti di
virtualizzazione e dall’integrazione di questi nei sistemi software distribuiti: il
Cloud Computing.
Il concetto di Cloud Computing pone le sue fondamenta nel modello del
mainframe1, quando John McCarthy, pioniere dell’intelligenza artificiale,
immaginava un futuro in cui l’elaborazione dei calcoli sarebbe potuta essere
distribuita ed organizzata su diversi sistemi pubblici d’accesso.
Il termine “cloud” all’inizio degli anni novanta identificava, nel campo delle
telecomunicazioni, la nuvola di circuiti elettrici per la permutazione del traffico,
audio o dati, in modo che l’utente finale avesse la necessità di conoscere solo i
dispositivi terminali della comunicazione, i telefoni.
è un computer utilizzato per applicazioni critiche, soprattutto da grandi aziende e istituzioni,
tipicamente per elaborare, con alte prestazioni ed alta affidabilità, grandi moli di dati.
1
7
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
Siamo alla fine degli anni novanta e la crescita del numero di utenti di Internet
aiuta il diffondersi dei primi servizi on demand sulla rete: nasce così il Software
as a Service (SaaS).
Il cloud computing oggi rappresenta lo stato dell’arte della tecnologia
informatica ed è un’importante risposta per importanti aspetti del bilancio di
un’azienda: il costo dell’IT, la gestione della banda, costi di elettricità, cablaggi,
hardware, furti, problemi di sicurezza, disaster recovery, etc.
Definito il concetto di Cloud Computing, l’elaborato presenterà i modelli di
servizio offerti dalla tecnologia (SaaS, PaaS e Iaas) ed i modelli di deployment:
privato, pubblico ed ibrido.
Sarà esposto il ciclo di vita di un servizio cloud, con accenni sul ruolo del
provider dei servizi nel garantire la sicurezza dei dati.
A seguire, il datacenter, il software gestionale DCIM e le infrastrutture
completamente virtualizzate, i Software-defined Datacenter, come evoluzione
naturale di un datacenter, nella direzione del cloud.
Infine sarà introdotto OpenStack, il “Sistema Operativo” che permette di gestire
una complessa infrastruttura da un pannello web, analizzandone struttura e
moduli del software ed introducendo un software di automatizzazione dei
processi fondamentali della gestione del cloud, Puppet.
8
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
1
D ALLA
VIRTUALIZZAZIONE
AL
C LOUD
C OMPUTING
Ci siamo spesso trovati di fronte all’esigenza di creare una versione virtuale di
una risorsa che solitamente veniva fornita fisicamente: sistemi operativi,
memorie, hard disk.
Pensiamo ad esempio al modello virtuale di memoria: nella CPU un programma
lavora come se avesse a disposizione uno spazio di memoria pari alla totalità
della memoria disponibile; in realtà, se la memoria RAM è insufficiente, le zone
di memoria in uso (suddivise in pagine di dimensione prefissata) sono allocate
nella RAM mentre le pagine inattive sono salvate in un file di paging.
I metodi attraverso cui è possibile ottenere la virtualizzazione sono due:
E M UL AZ I O N E : l’hardware è completamente simulato dalla macchina virtuale che
utilizza un sistema operativo standard eseguito su CPU virtuale;
P A R AVI R T U AL I Z Z AZ I O N E :
la virtual machine si occupa di fornire apposite API
che richiedono modifiche al sistema operativo ma consentono prestazioni
migliori dell’emulazione;
Il concetto di virtual machine nasce quindi per indicare la condivisione di un
singolo computer tra più utenti. Grazie però al fatto che la potenza dei computer
è in crescita costante, è sorta l'esigenza opposta: far percepire come unica entità
un sistema composto da molti computer distinti. In questo caso si parla
di Parallel Virtual Machine, soluzione che prevede la creazione di cluster di
centinaia, se non migliaia, di elaboratori per sostenere carichi di lavoro
massicciamente parallelizzabili.
9
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
F IGURA 1 - S TRUTTURA DI UN ' ARCHITETTURA VIRTUALE ( VMWARE . COM )
Dall’idea di far apparire le Parallel Virtual Machines come un unico
supercomputer virtuale, celando all’utente la complessità interna, nasce l’idea
del Grid Computing. Il Grid computing è un’infrastruttura di calcolo distribuito,
utilizzata per l’elaborazione di grandi quantità di dati, mediante l’uso di una
vasta quantità di risorse. In particolare, tali sistemi grid permettono la
condivisione coordinata di risorse all’interno di un’organizzazione virtuale.
F IGURA 2 - E SEMPIO DI SISTEMA GR ID ( WIKIPEDIA . ORG )
Ci troviamo nella condizione di poter considerare il Cloud Computing una sorta
di evoluzione del Grid Computing. Evitando di prendere strade che portino ad
una distinzione semplicistica tra le due tecnologie, affermando “che il Grid
Computing richiede di scrivere programmi basati su scambio di messaggi
mentre il Cloud Computing supera tale complessità basandosi, ad esempio, su
10
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
MapReduce2”, si cercherà di evidenziare alcune peculiarità che da un lato
avvicinano, dall’altro allontanano i due concetti.
I padri del Grid, Ian Foster e Carl Kesselmann, avevano lavorato nella direzione
di un sistema che sfruttasse la potenza di calcolo inutilizzata delle macchine in
stato idle genericamente connesse ad Internet. In questo modo si tende ad avere
dei microproduttori di potenza computazionale aggregati virtualmente
attraverso un middleware che dia la visione di un unico super computer virtuale
in cui è lo stesso utente a condividere le proprie risorse di calcolo.
Al contrario, il Cloud Computing è orientato ad un’idea di macroproduttori di
computing, indipendentemente dal tipo di cloud (application, platform o
infrastruttura). Ora l’utente utilizza la Cloud la quale è fornita da un provider (in
genere un centro di calcolo, che può anche essere frutto dell’aggregazione di
centri sparsi per il globo, di proprietà esclusiva del provider).
Analizzando adesso quello che potremmo chiamare “modello di business” delle
due tecnologie, sarà possibile evidenziare altre disuguaglianze.
Il Cloud Computing fa riferimento al modello delle utility di larga scala:
un’infrastruttura singola serve un numero di utenti (in costante incremento), ha
un costo quasi nullo ma moltiplica i profitti e contribuisce a sostenere una
politica di riduzione dei prezzi. E’ il modello a cui siamo abituati a riferirci per i
servizi di accesso all’elettricità, al gas, alla connettività. Il Cloud Computing, alle
peculiarità di questi modelli, aggiunge il CPU time e il massive storage3.
Il Grid Computing è community-based. Un’istituzione decide di unirsi ad una
Grid e cede l’uso esclusivo alle risorse condivise in cambio della possibilità di
accedere ad un numero di risorse potenzialmente altissimo. In questo modo si
M A P R E D U C E è un framework software di Google per la computazione distribuita su grandi
quantità di dati in cluster di computer, ispirato alle funzioni map e reduce nella
programmazione funzionale
2
Il primo consente di prenotare, configurare ed istanziare insiemi di macchine per il periodo
desiderato. Con il secondo si ha accesso ad uno spazio di storage praticamente illimitato.
3
11
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
ottimizza l’utilizzo delle risorse che non restano più inattive e si può pensare di
affrontare sfide di complessità altrimenti impossibili.
L’obiettivo del Cloud, non è la “grande sfida” ma riportare il focus sulle webapplications e sul concetto di pubblica utilità. [2]
1.1 I L C LOUD C OMPUTING , LA DEFINIZIONE DEL NIST
Il C L OU D C OM PU T I N G è una tecnologia, o meglio un insieme di tecnologie che
rendono disponibili le risorse all'utilizzatore esattamente come se fossero
implementate in sistemi standard pur essendo nella realtà distribuite e
virtualizzate in rete in una tipica architettura client-server. L'implementazione
effettiva delle risorse quindi non è definita in modo dettagliato agli occhi
dell’utente: l'idea infatti è proprio quella di rendere l'implementazione un
insieme eterogeneo e distribuito – the cloud – di risorse le cui caratteristiche
non siano note all'utilizzatore.
È riportato nelle prossime righe un estratto con relativa traduzione di quella che
è la definizione di Cloud Computing data dal NIST [1], il National Institute of
Standards and Technolgy.
“Cloud computing is a model for enabling 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 interaction.
This cloud model is composed of five essential characteristics, three s ervice models, and four deployment
models”.
Trad. “Il cloud computing è un modello per abilitare, tramite la rete, l’accesso diffuso,
agevole e su richiesta, ad un insieme condiviso e configurabile di risorse di elaborazione (ad
esempio reti, server, memoria, applicazioni e servizi) che possono essere acquisite e
rilasciate rapidamente e con minimo sforzo di gestione o di interazione con il fornitore di
servizi. Questo modello cloud è composto da cinque caratteristiche essenziali, tre modalità
di servizio e quattro modelli di distribuzione”.
1.2 C ARATTERISTICHE ESSENZIALI
SELF-SERVICE ON DEMAND
Un consumatore può acquisire unilateralmente e automaticamente le necessarie
capacità di calcolo, come CPU-time e memoria, senza richiedere interazione
12
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
umana con i fornitori di servizi (fase commerciale/contrattuale di attivazione
del rapporto).
AMPIO ACCESSO IN RETE
Le risorse sono disponibili in rete e accessibili attraverso meccanismi standard
che promuovono l'uso attraverso piattaforme eterogenee come thin client o
pesanti (ad esempio telefoni mobili, tablet, laptops e workstations).
CONDIVISIONE DELLE RISORSE
Le risorse di calcolo del fornitore sono messe in comune per servire molteplici
consumatori utilizzando un modello condiviso (multi-tenant), con le diverse
risorse fisiche e virtuali assegnate e riassegnate dinamicamente in base alla
domanda. Dato il senso di indipendenza dalla locazione fisica, l’utente
generalmente non ha controllo o conoscenza dell’esatta ubicazione delle risorse
fornite, ma può essere in grado di specificare la posizione ad un livello superiore
di astrazione (ad esempio, paese, stato o datacenter). Esempi di risorse
includono memoria, elaborazione e larghezza di banda della rete.
ELASTICITÀ RAPIDA
Le risorse possono essere acquisite e rilasciate elasticamente, in alcuni casi
anche automaticamente, per scalare rapidamente verso l’esterno e l’interno in
relazione alla domanda. Al consumatore, le risorse disponibili spesso appaiono
illimitate e disponibili in qualsiasi quantità, in qualsiasi momento.
SERVIZIO MISURATO
I sistemi cloud controllano automaticamente e ottimizzano l'uso delle risorse,
facendo leva sulla capacità di misurazione ad un livello di astrazione
appropriato per il tipo di servizio (ad esempio memoria, elaborazione, larghezza
di banda e utenti attivi). L’utilizzo delle risorse può essere monitorato,
controllato e segnalato, fornendo trasparenza sia per il fornitore che per
l’utilizzatore del servizio.
1.3 M ODELLI DI SERVIZIO
La definizione del NIST contiene anche una descrizione dei possibili modelli di
servizio (SaaS, PaaS e IaaS) e dei modelli di deployment (private cloud,
community cloud, public cloud ed hybrid cloud).
13
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
CLOUD SOFTWARE AS A SERVICE (SAAS)
La possibilità fornita al consumatore è quella di utilizzare le applicazioni del
provider in esecuzione su un'infrastruttura cloud. Le applicazioni sono
accessibili da vari dispositivi client attraverso un'interfaccia thin client come un
browser Web (ad esempio, Web-based email), o un'interfaccia di programma. Il
consumatore non gestisce né controlla l'infrastruttura cloud di base compresa la
rete, i server, i sistemi operativi, lo storage, con la possibile eccezione per la
configurazione di limitate specifiche per l'utente dell'applicazione.
CLOUD PLATFORM AS A SERVICE (PAAS)
La possibilità fornita al consumatore è quella di distribuire sul cloud
infrastrutture consumer-created o applicazioni ottenute create utilizzando
linguaggi e strumenti di programmazione supportati dal provider.
Il consumatore non gestisce e non controlla l'infrastruttura cloud di base
compresi rete, server, sistemi operativi, o storage, ma ha il controllo sulle
applicazioni distribuite e sulle configurazioni dell’ambiente di hosting delle
applicazioni.
Cloud Clients
Infrastructure
Platform
Application
Web browser, mobile app, thin client, terminal
emulator,…
SaaS
CRM, e-mail, virtual desktop, games, communication,…
PaaS
Execution runtime, database, web server, development
tools, …
IaaS
Virtual machines, servers, storage, load balancers,
network,…
F IGURA 3- I DIVERSI LIVELLI DI C LOUD
CLOUD INFRASTRUCTURE AS A SERVICE (IAAS)
Viene fornita al consumatore l’infrastruttura per l’elaborazione, lo storage, reti e
altre risorse fondamentali di calcolo in cui il consumatore è in grado di
distribuire ed eseguire software arbitrario, inclusi sistemi operativi ed
applicazioni. Il consumatore non gestisce né controlla l'infrastruttura cloud
14
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
sottostante, ma ha il controllo su sistemi operativi, storage, applicazioni
distribuite ed, eventualmente, un limitato controllo di selezionate componenti
di rete (ad esempio, di hosting firewall).
F IGURA 4 - G RADO DI " VIRTUALIZZAZIONE ” PER STRUTTURE I AA S, P AA S E S AA S
1.4 M ODELLI DI DISTRIBUZIONE
PRIVATE CLOUD
L’infrastruttura cloud è strutturata per l'utilizzo esclusivo da parte di un unico
ente comprendente più consumatori (ad esempio, business units). Essa può
essere gestita in modo individuale, dall’organizzazione, da un terzo o da una
combinazione di questi.
COMMUNITY CLOUD
L’infrastruttura cloud è prevista ad uso esclusivo di una specifica comunità di
consumatori, di organizzazioni che condividono alcune caratteristiche come
livelli di sicurezza, norme legali, obiettivi e così via…
PUBLIC CLOUD
L’infrastruttura cloud è caratterizzata dall’utilizzo aperto al pubblico.
L’infrastruttura, la piattaforma, le applicazioni sono di proprietà del service
provider, sono gestite dal service provider e sono condivise con più clienti.
15
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
HYBRID CLOUD
L’infrastruttura cloud è una composizione di due o più infrastrutture cloud
distinte (privata, comunitaria o pubblica) che restano soggetti unici, ma sono
legate insieme da standard o tecnologia proprietaria che permette portabilità ai
dati ed all'applicazione (ad esempio, il cloud bursting4 per il carico
bilanciamento tra i cloud).
C L O U D B U R S T I N G è un modello di sviluppo di applicazioni in cui un’applicazione è eseguita in
un cloud privato o in un mainframe e sfocia in un cloud pubblico quando la richiesta di capacità
computazionale giunge al culmine. Il vantaggio di questa struttura è che l’organizzazione paga
solo la capacità extra di cui necessita.
4
16
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
2P
ROVIDER DI INFRASTRUTTURE CLOUD
Un provider di cloud è una società che offre componenti di cloud computing tipicamente Infrastructure as a Service (IaaS), Software as a Service
(SaaS) o Platform as a Service (PaaS) - ad altre aziende o individui.
I Cloud provider sono anche chiamati provider di servizi cloud o CSP .
2.1 L IFECYCLE S ERVICE E CASI D ' USO



La figura 5 mostra i sei stati del ciclo di vita di un tipico servizio cloud con i casi
d'uso più rilevanti per ogni stato.
Template: Uno sviluppatore definisce il servizio in un modello che descrive il
contenuto e le interfacce per un servizio.
Offerta: Un provider applica vincoli, costi e politiche di un modello per creare
un'offerta disponibile per la richiesta di un consumatore.
Contratto: Un consumatore ed un fornitore stipulano un contratto per i servizi,
compresi gli accordi sui costi, sulla SLA5, SLO6, e le opzioni di configurazione
specifiche.
S E R V I C E L E V E L A G R E E M E N T è un documento redatto allo scopo di definire i parametri di
riferimento per l'erogazione del servizio Cloud e per il monitoraggio del livello di qualità
effettivamente erogato.
5
6
S E R V I C E L E V E L O B J E C T I V E è un mezzo per misurare le prestazioni del Service Provider ed
evitare controversie tra le due parti sulla base di incomprensione. C’è spesso confusione tra SLA
e SLO. La SLA è l'intero accordo che specifica quale servizio deve essere prestato, come si è
sostenuto, tempi, luoghi, costi, prestazioni, e le responsabilità delle parti coinvolte. SLO sono
17
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD



Fornitura di servizi: Un provider implementa (o modifica) un servizio in base al
contratto con il consumatore.
Manutenzione Runtime: Un provider gestisce un servizio distribuito e tutte le
sue risorse, compreso monitoraggio di risorse e notifica al consumatore di
situazioni chiave.
Fine del servizio: Un provider ferma un'istanza del servizio.
F IGURA 5 - S TATI DEL CI CLO DI VI TA DI UN SERVIZIO CLOUD E CASI D ' USO ([5])
2.2 S ICUREZZA
Cosa succede però ai dati quando sono trasferiti offsite, fuori dal controllo fisico
o logico? I cloud provider non rivelano la posizione fisica dei dati. Inoltre in un
cloud pubblico, ad esempio un pool condiviso, si condivide una risorsa
completamente al di fuori dalla portata dell'organizzazione; potrebbe accadere,
in un caso limite, che i dati di una certa organizzazione siano immagazzinati
assieme ai dati di un'organizzazione concorrente.
E seppure le informazioni siano criptate, chi è in controllo delle chiavi di
criptazione/decrittazione, il provider del cloud o il cliente?
Si aprono qui infiniti dibattiti sulla sicurezza.
specifiche caratteristiche misurabili della SLA quali la disponibilità, velocità, frequenza, tempo di
risposta o la qualità.
18
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
2.2.1 I L RUOLO DEI PROVIDER DI SERVIZI
La diffusione del paradigma Cloud nelle architetture Enterprise7, richiede
pattern architetturali appropriati alla protezione dei dati, siano essi in transito o
mantenuti nelle infrastrutture di servizio.
L’utilizzo di servizi di cloud computing può essere, in casi specifici, un vantaggio
per la sicurezza delle informazioni:


Esternalizzare i dati “comuni” verso il cloud, riduce l’esposizione dei dati
sensibili che rimangono all’interno dell’IT locale;
L’omogeneità del cloud permette auditing e testing molto semplici;

Il cloud permette di automatizzare il security management su larga scala;

Ridondanza e disaster recovery sono insite nelle infrastrutture cloud; [4]
L'interfaccia del provider di servizi cloud (CSP Interface) fornisce l'accesso agli
endpoint logici, tra cui il Security Manager (responsabile della sicurezza), il
Service Manager (responsabile del servizio) ed il Service Catalog (il catalogo dei
servizi).
Questi endpoint forniscono i vari servizi per interagire con gli enti di servizio
(come macchine virtuali, i volumi, le reti), ottenere relazioni di audit8 ed
eseguire una serie di altre attività necessarie per soddisfare e mantenere
un'infrastruttura cloud.
L' E N T E R P R I S E A R C H I T E C T U R E è la disciplina che studia come descrivere la struttura di
un'organizzazione, i suoi processi operativi, i sistemi informativi a supporto, i flussi informativi,
le tecnologie utilizzate, le localizzazioni geografiche, i suoi obiettivi.
7
L' A U D I T è una valutazione indipendente volta a ottenere prove, relativamente ad un
determinato oggetto, e valutarle con obiettività, al fine di stabilire in quale misura i criteri
prefissati siano stati soddisfatti o meno.
8
19
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
F IGURA 6 - I L RUOLO DEL CSP
Il Service Manager si occupa del controllo, del monitoraggio e dei report, compiti
per il quale l’accesso può essere regolato basandosi sui ruoli (RBAC, Role-based
access control).
La funzione dell’ interfaccia del provider è quella di gestire il contenuto di questi
elementi relativi alla politica gestionale; l'infrastruttura cloud (IaaS) infatti, è
una "scatola nera" per l'interfaccia del provider.
Le due categorie di attori che interagiscono con l'interfaccia CSP9 sono utenti
umani e programmi applicativi (quali la gestione, l’approvvigionamento
automatico, la fatturazione, o per applicazioni di controllo). L'utente umano
potrà anche interagire tramite un'interfaccia portale, di solito utilizzando un
browser web. L'interfaccia del portale sarà sviluppata utilizzando le interfacce
dei provider di servizi cloud.
9
CLOUD SERVICE PROVIDER
20
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
2.2.2 N UOVI E FUTURI SVILUP PI
Tradizionalmente, l'utente umano utilizza uno username ed una password come
credenziali per l'autenticazione; Tuttavia, andrebbero utilizzati i meccanismi
più sicuri ed infatti solitamente un programma applicativo utilizza i certificati.
Gli utenti potrebbero inoltre utilizzare i token di autenticazione; non a caso si
sta diffondendo un modello di autenticazione con “doppia verifica”: la classica
password e un PIN inviato via SMS su telefono cellulare o generato random da
dispositivi associati ad un account.
Le applicazioni potrebbero utilizzare i ticket Kerberos: un protocollo di rete per
l’autenticazione tramite crittografia che permette a diversi terminali di
comunicare
su
una
rete
informatica
insicura
provando
la
propria identità e cifrando i dati.
Kerberos previene attacchi quali l'intercettazione e i replay attack ed assicura
l'integrità dei dati. I suoi progettisti mirarono soprattutto ad un modello clientserver e fornisce una mutua autenticazione cioè sia l'utente che il fornitore del
servizio possono verificare l'identità dell'altro.
Meccanismi appropriati possono variare in ambienti differenti e l’intenzione
non è quella di dichiarare un elenco esaustivo di possibili meccanismi di
autenticazione. [5]
21
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
3G
“A
ESTIRE UN DATACENTER
DATACENTER IS A FACILITY USED TO HOUSE COMPUTER SYSTEMS AND ASSOCIATED
COMPONENTS, SUCH AS TELECOMMUNICATIONS AND STORAGE SYSTEMS”. [6]
Un datacenter è un luogo fisico con tutte le infrastrutture e gli impianti di base
idonei ad alloggiare i principali elaboratori elettronici delle informazioni di una
o più organizzazioni, oltre ai componenti associati quali sistemi di
telecomunicazione e di memorizzazione.
I sistemi per l’elaborazione dati, o in senso più ampio ciò che si definisce con
tecnologie dell’informazione (di seguito IT) da mezzo secolo si sono imposti
come strumenti indispensabili allo sviluppo delle organizzazioni,
indipendentemente dalla finalità delle stesse, mostrando una utilità trasversale
e multidisciplinare.
I datacenter vanno considerati come le fondamenta essenziali alla costruzione di
un sistema informativo; e quanto più solide sono le fondamenta tanto più solido
sarà “l’edificio informativo” costruito su di esse.
3.1 C OM ’ È FATTO UN DATACENTER
Un datacenter, si è detto, è un luogo. Più precisamente è un luogo in cui si
raccolgono i sistemi di connessione (router, switch, cavi Ethernet, cassetti di
fibra ottica), le unità computazionali (server), i sistemi di storage e
quant’altro sia necessario per offrire prodotti come hosting, email, VPS, cloud
computing e via discorrendo.
Ma la semplice giustapposizione di questi elementi non forma un datacenter.
Al datacenter afferiscono anche impianti e sistemi che non appartengono
strettamente alla sfera del Web, ma che sono comunque necessari affinché la
22
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
porzione di Internet ospitata goda della maggiore sicurezza possibile sotto tutti
i punti di vista. Un datacenter, quindi, può essere definito come un luogo dove si
riuniscono tutta una serie di impianti, il cui scopo è quello di permettere il
funzionamento 24 ore al giorno, tutti i giorni dell’anno, dei sistemi
computazionali ospitati.[7]
3.1.1 I L DCIM, D ATA -C ENTER I NFRASTRUCTURE
M ANAGMENT
Il software DCIM è un applicazione di gestione progettata per l'acquisizione e
l'elaborazione dei dati sugli asset del Datacenter, sull'utilizzo delle risorse e
sullo stato di funzionamento nell'intero ciclo di vita del Datacenter. Queste
informazioni, quindi, vengono distribuite, integrate e applicate per semplificare
l'attività dei responsabili dell'ottimizzazione del rendimento del Datacenter e
dell'adempimento dei requisiti informatici ed aziendali.
Oltre ad aumentare l'affidabilità del datacenter, il DCIM può far risparmiare
denaro ed energia.
Ci sono infatti altri benefici accessori, tra cui:

Riduzione delle emissioni di carbonio: in molte regioni dell'Europa occidentale
in particolare questo è un beneficio non trascurabile. Carbon tax e regolamenti
non saranno più una preoccupazione.

Approvvigionamento energetico automatico: questa funzionalità renderà più
facile ridurre la possibilità di abbassamenti di tensione e blackout.
3.1.2 I L RUOLO DI UN DCIM IN UN D ATA C ENTER
Nella figura 7 è mostrato come un buon software DCIM esamini metriche e
statistiche di sistemi informatici ed infrastrutture per poi eseguire le seguenti
funzioni:
CONTROL
Molti prodotti DCIM possono inviare ordini per gestire ad esempio il
raffreddamento o la potenza di un rack.
PUE REPORTING
Il PUE (P O WE R U S A G E E F F EC T I VE N ES S ) è un parametro che rende l'idea di
quanta potenza elettrica sia dedicata all'alimentazioni degli apparati IT rispetto
23
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
ai servizi ausiliari come il condizionamento o le perdite degli UPS10; è la misura
de facto dell’ efficienza del datacenter.
DASHBOARDS
I prodotti più avanzati hanno più dashboards, a seconda del profilo utente della
persona loggata.
INTEGRATED TOOL MANAGEMENT
Per molti fornitori DCIM, unico obiettivo è quello di essere in grado di integrarsi
perfettamente negli ambienti esistenti. In alcuni casi, il software DCIM non è
visibile e fornisce informazioni, analisi e dati ad altri programmi per un
potenziale intervento.
SCENARIO ANALYSIS
Questi scenari possono essere molto utili per potenziali modifiche al datacenter.
Alcuni prodotti DCIM offrono suggerimenti per un miglior posizionamento di
nuovi rack11 in termini di spazio, peso sul pavimento, disponibilità di potenza e
di altri fattori. Questa tipologia di modifiche può portare giù un intero
datacenter; quindi prima di effettuare qualsiasi movimento o cambiamento, è
utile avere alcuni dati sulla base dei quali eseguire la decisione.
DATACENTER VISUALIZATION
Questi pacchetti software mostrano la disposizione fisica dei il datacenter con
rack, raffreddamento, potenza, sistemi informatici e le connessioni tra essi.
Alcuni possono mostrare le zone Computer Room Air Conditioner (CRAC),
temperatura, movimenti del flusso d'aria, pressione, umidità e molti altri fattori.
Queste mappe sono utili per trovare spazio precedentemente sconosciuto o
nuova capienza, prolungando la vita del datacenter.
10
U N I N T E R R U P T I B L E P O W E R S U P P L Y , gruppo di continuità
11
Letteralmente: scaffale
24
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
F IGURA 7 - I RUOLI DEL DCIM
I datacenter odierni si stanno avvicinando velocemente a cloud pubblici e
privati. Rischi derivanti dal non adottare queste strutture includono downtime,
potenziali di risparmio perduti, nuovi datacenter inutili, aumento delle
emissioni di carbonio e non conformità ai nuovi e futuri standard.
Molti gestori di datacenter non sono ancora a conoscenza di software DCIM e
quindi non hanno preso ancora in considerazione la migrazione delle
infrastrutture verso il cloud.
3.2 D AI SERVER TRADIZIONALI A QUELLI VIRTUALI
La svolta decisiva è nella natura programmabile del software. Grazie alla
virtualizzazione, il consolidamento all’interno delle macchine server fisiche di
numerose macchine server virtuali, configurabili via software, ha consentito di
ridurre l’infrastruttura hardware.
Ma per cogliere benefici è necessario creare un’infrastruttura cloud-enabled.
Abbandonare la struttura IT-centrica, la logica complessa e limitante di
ottimizzazione a silos delle isole tecnologiche ed indirizzarsi verso una modalità
di progettazione flessibile, che alla pianificazione degli aggiornamenti
tecnologici affianchi innovative iniziative di sourcing, una nuova piattaforma
capace di fornire via software tutte le risorse (CPU, memoria, storage, ecc.) in
modalità di servizio. Un paradigma di progettazione del datacenter in cui i
25
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
servizi si possono acquisire in modalità ibrida, dall’interno dell’organizzazione
come anche dall’esterno.
Il punto di arrivo di questo lungo percorso? È il Software-Defined Datacenter
(SDDC), in cui tutta l’infrastruttura IT è completamente virtualizzata: dai server
fisici agli apparati di rete, dai dispositivi di storage alle applicazioni. [8]
F IGURA 8 - N EL MODELLO S OFTWARE -D EFINED D ATACENTER (SDDC) TUTTA L ’ INFRASTRUTTURA IT È COMPLETAMENTE
VIRTUALIZZATA .
26
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
4O
PEN S TACK : IL CLOUD IN OPEN - SOURCE
Per passare dalla virtualizzazione al cloud
computing il passo è breve. Grazie alla
virtualizzazione, infatti, possiamo possedere
un’unica macchina server ed implementare
tante configurazioni diverse e indipendenti,
virtualizzando le risorse hardware, ottenendo
così un livello di scalabilità orizzontale fino a
quel momento impossibile. Il moltiplicarsi
degli hypervisor12, le diverse macchine virtuali,
i differenti server fisici e l’avvento del cloud
computing
rendono
però
l’intera
infrastruttura difficile da gestire, anche per gli amministratori IT.
Da questa difficoltà nasce OpenStack, un vero e proprio sistema operativo cloud
che agisce come piattaforma IaaS, che permette di gestire un’infrastruttura
molto complessa attraverso un semplice pannello Web, con strumenti da riga di
comando ed apposite API che consentono di interfacciare qualsiasi
software/hardware alla piattaforma.
H Y P E R V I S O R , conosciuto anche come virtual machine monitor, è il componente centrale e più
importante di un sistema basato sulle macchine virtuali. Svolge attività di controllo al di sopra di
ogni sistema, permettendone lo sfruttamento anche come monitor e debugger delle attività
dei sistemi operativi e delle applicazioni in modo da scoprire eventuali malfunzionamenti ed
intervenire celermente. (da Wikipedia)
12
27
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
OpenStack è un software open source per creare cloud pubblici e privati
rilasciato con Apache License 2.0, che nel 2010 ha preso vita a partire dalla
collaborazione tra Rackspace Hosting e NASA accomunate da un obiettivo
specifico: consentire a qualsiasi organizzazione, indipendentemente dalla sua
dimensione e importanza, di creare e offrire servizi di cloud computing su
hardware standardizzato. Ora è gestito dalla OpenStack Foundation, una
corporate non-profit nata nel Settembre del 2012.
Ad oggi sono più di duecento le aziende e le compagnie che hanno scelto di
utilizzare questo software ed unirsi al progetto. Tra le più note si citano AT&T,
AMD, Cisco, Dell, Ericsson, Hewlett-Packard, IBM, Intel, Oracle, Red Hat, SUSE
Linux, VMware e Yahoo!. [9]
4.1 U NO SGUARDO ALLA STRUTTURA
Il progetto OpenStack è progettato per offrire un sistema operativo cloud
altamente scalabile. Per questo, ciascuno dei servizi costituenti è progettato per
F IGURA 9- LA STRUTTURA DELLA RELEASE ICEHOUSE(DA OPENSTACK.ORG)
28
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
lavorare insieme agli altri e fornire una Infrastructure-as-a-Service (IaaS)
completa. Questa integrazione è facilitata dalle interfacce di programmazione
delle applicazioni (API) pubbliche. Lo schema concettuale in Errore. L'origine
riferimento non è stata trovata. è una schematizzazione semplificata
dell'architettura della release IceHouse e rappresenta una vista sulle relazioni
tra i diversi moduli di OpenStack.
OpenStack si pone come strato intermedio tra un hardware standard e
l’applicazione utente. Come un OS, si occupa principalmente delle mansioni
indicate dai tre blocchi mostrati in Figura .
F IGURA 10- STRUTTURA GENERALE DI OPENSTACK (DA OPENSTACK.ORG)
4.1.1 C OMPUTE (N OVA )
Il sistema operativo cloud OpenStack permette alle aziende e ai service provider
di offrire risorse di computing on-demand, dal provisioning13 alla gestione di
grandi reti di macchine virtuali. Le risorse di calcolo sono accessibili tramite API
agli sviluppatori che creano applicazioni cloud e tramite interfacce web per
amministratori e utenti.
OpenStack è concepito per fornire flessibilità nella progettazione del proprio
cloud, senza richiedere specifici requisiti hardware o software proprietario,
avendo la capacità di integrarsi con i sistemi legacy e le tecnologie di terzi.
P R O V I S I O N I N G è il fornire i servizi di telecomunicazioni ad un utente. Ciò
include hardware, software, cablaggio e quanto di specifico il cliente abbia chiesto.
13
29
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
4.1.2 S TORAGE
Oltre alla tradizionale tecnologia di storage di classe enterprise, molte
organizzazioni oggi hanno una varietà di esigenze di storage con diversi
requisiti di prestazioni e costi. OpenStack supporta Object Storage e Block
Storage, con molte opzioni a seconda del caso d'uso.
Object Storage gestisce i dati come oggetti a differenza del Block Storage che li
gestisce come blocchi nei settori e tracce dei dischi. L’Object Storage è utilizzato
per scopi diversi, ad esempio per l'archiviazione di foto su Facebook , canzoni
su Spotify o file in servizi di storage online, come Dropbox.
F UN ZI O N A LI T À
DI U N
O BJ E CT S T O R AG E (S W I F T )
OpenStack fornisce l'archiviazione ridondante e scalabile utilizzando cluster di
server standardizzati in grado di memorizzare petabyte di dati. Object Storage
non è un file system tradizionale, ma piuttosto un sistema di storage distribuito
di dati statici come immagini virtuali della macchina, archiviazione foto,
archiviazione e-mail, backup ed archivi.
Gli oggetti ed i file vengono scritti su più dischi sparsi sui server nel datacenter,
ed è il software OpenStack ad avere la responsabilità di garantire la replicazione
e l'integrità dei dati nel cluster. I cluster sono scalabili orizzontalmente, quindi
semplicemente aggiungendo nuovi server. Nel caso di guasti ad un server o al
disco fisso, OpenStack replica il contenuto da altri nodi attivi in nuove posizioni
nel cluster.
F UN ZI O N A LI T À
DI U N
B LO CK S T O R A G E (C I N DE R )
OpenStack fornisce il sistema di block storage che gestisce creazione,
connessione e disconnessione dei block devices14 ai server. I volumi di storage a
blocchi sono pienamente integrati nel OpenStack Compute e nella Dashboard
che consente agli utenti di cloud di gestire le proprie esigenze di storage. Utilizza
server Linux, ma è previsto il supporto di storage unificato per numerose
piattaforme, tra cui Ceph, NetApp, Nexenta, SolidFire e Zadara.
B L O C K D E V I C E S nei sistemi operativi Unix e Unix-like, è un tipo speciale di file che
rappresenta una periferica o un dispositivo virtuale su cui è possibile effettuare operazioni
di input/output per blocchi di byte di dimensione predeterminata
14
30
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
4.1.3 N ETWORKING (N EUTRON )
Oggi le Reti dei datacenter contengono più dispositivi che mai, apparecchiature
di rete, sistemi di storage e dispositivi di sicurezza, molti dei quali sono
ulteriormente suddivisi in macchine e reti virtuali. Il numero di indirizzi IP,
configurazioni di routing e le norme di sicurezza potrebbe crescere rapidamente
diventando milioni. Per questo le tecniche di gestione di rete tradizionali non
sono in grado di fornire un vero approccio automatizzato per la gestione di
queste reti di nuova generazione. Allo stesso tempo, gli utenti si aspettano un
maggiore controllo e flessibilità, con fornitura più rapida.
OpenStack Networking è un sistema di innesto, scalabile e API-driven per la
gestione delle reti e degli indirizzi IP. Come altri aspetti del sistema operativo
cloud, può essere utilizzato dagli amministratori e dagli utenti per aumentare
l’efficienza dei datacenter esistenti. OpenStack Networking assicura che la rete
non diventi il collo di bottiglia o il fattore limitante in un sistema cloud e offre
agli utenti un servizio self service reale, che vada anche oltre le classiche
configurazioni di rete.
F UN Z I O N AL I T À
D I RE T E
Gestisce gli indirizzi IP, consentendo indirizzi IP statici o il DHCP. IP flottanti
consentono al traffico di essere reindirizzato in modo dinamico durante la
manutenzione o in caso di fallimento. Gli utenti possono creare le proprie reti,
controllare il traffico e collegare server e dispositivi di una o più reti.
Inoltre esiste un'estensione che consente servizi di rete aggiuntivi, come sistemi
di rilevamento delle intrusioni (IDS), bilanciamento del carico, firewall e reti
private virtuali (VPN).
4.2 L A D ASHBOARD (H ORIZON ), MODULO PER UNA
GESTIONE SEMPLIFICATA DEL CLOUD
« “Think simple”- as my old master used to say - meaning reduce the whole of
its parts into the simplest terms, getting back to first principles. »
Frank Lloyd Wright
La Dashboard di OpenStack offre agli amministratori e agli utenti l'interfaccia
grafica per l'accesso, la fornitura e automatizzazione delle risorse su cloud.
31
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
Ma la Dashboard è solo uno dei modi per interagire con le risorse OpenStack: gli
sviluppatori, infatti, possono automatizzare l'accesso o creare strumenti che
permettano di gestire le risorse utilizzando l'API OpenStack nativa o la
compatibilità con le API EC215.
Horizon è nata come un’applicazione per la gestione del progetto di calcolo di
Openstack. Tutto ciò che serviva era un insieme di viste, modelli e chiamate alle
funzioni delle API. Man mano si sviluppavano altri progetti OpenStack e durante
il rilascio di “Diablo”, la quarta release di OpenStack, sono stati aggiunti plugin
che consentissero la navigazione “syspanel”.
F UN Z I O N AL I T À
DELLA
D AS H BO A RD
La Dashboard è una web app estensibile che consente agli amministratori di
cloud e agli utenti di controllare le loro risorse di elaborazione, storage e rete.
All’ amministratore del cloud, la dashboard fornisce una visione d'insieme delle
dimensioni e dello stato del cloud. Consente di creare utenti e progetti,
assegnare gli utenti ai progetti e impostare dei limiti sulle risorse per tali
progetti. Horizon è una applicazione Django-based16 sviluppata tramite Apache
e WSGI17, il Web Server Gateway Interface. Fornisce il supporto per CSS
personalizzati e Javascript. Per aggiungere CSS e JS si può sia espandere la
versione preesistente che rimpiazzarla con il proprio template personalizzato.
A M A Z O N E L A S T I C C O M P U T E C L O U D , un web service offerto da Amazon Inc..
D J A N G O è un web framework open source per lo sviluppo di applicazioni web, scritto in
linguaggio Python, seguendo il pattern Model-View-Controller. Il progetto è sviluppato dalla
"Django Software Foundation" (DSF), un'organizzazione indipendente senza scopo di lucro.
Venne concepito inizialmente per gestire diversi siti di notizie per la World Company
di Lawrence (Kansas), e rilasciato con una licenza BSD a luglio2005. Alcuni siti noti che
utilizzano questo framework sono attualmente Pinterest, Instagram, Mozilla, The Washington
Times, e Public Broadcasting Service. (da Wikipedia)
15
16
W E B S E R V E R G A T E W A Y I N T E R F A C E è un protocollo di trasmissione che stabilisce e
descrive
comunicazioni
ed
interazioni
tra server ed
applicazioni web scritte
nel linguaggio Python. È quindi l'interfaccia standard del web service per la programmazione in
Python.
17
32
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
4.3 A LTRI MODULI DI O PEN S TACK
Si riportano gli altri moduli e le future principali per ognuno di essi.
4.3.1 I DENTITY S ERVICE (K EYSTONE )
OpenStack Identity (Keystone) è il modulo dedicato alla gestione di utenti e
servizi disponibili. Supporta molte modalità di autenticazione, dal classico
username & password ai sistemi basati sui token.
4.3.2 I MAGE S ERVICE (G LANCE )
OpenStack Image Service (Glance) è un modulo che cataloga le immagini disco.
Può anche essere utilizzato per archiviare e catalogare un numero illimitato di
copie di backup. Glance è l’unico modulo che può aggiungere, eliminare,
condividere o duplicare un’immagine.
4.3.3 T ELEMETRY (C EILOMETER )
OpenStack Telemetry Service (Ceilometer) è un servizio utilizzato per tracciare
ciò che succede nel cluster OpenStack, valutando utilizzo e le performances dei
servizi forniti da OpenStack fornendo tutti i contatori necessari per stabilire la
fatturazione del cliente. Lo stato dei contatori è tracciabile e verificabile.
4.3.4 O RCHESTRATION (H EAT )
OpenStack Orchestration, offre un modulo agli sviluppatori di applicazioni per
descrivere e automatizzare l’implementazione di infrastrutture. Attraverso dei
modelli si può creare la maggior parte dei tipi di risorse OpenStack come
istanze, floating IP, volumi, utenti e cosi via;
4.3.5 D ATABASE (T ROVE )
Trove è il motore di provisioning
relazionali che non relazionali.
18
per database-as-a-service sia che essi siano
Processo mediante il quale un amministratore di sistema assegna risorse e privilegi, non solo
agli utenti di una rete ma anche a chi le utilizza da remoto (ad esempio i fornitori). (da
http://www.pc-facile.com/)
18
33
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
5C
LOUD
M ANAGEMENT
Gli strumenti di gestione adottati con i sistemi tradizionali non sono riusciti a
sopravvivere all’avvento del cloud tenendo il passo con le dinamiche di
mercato. Gli approcci convenzionali per la gestione di un gran numero di
sistemi creano, infatti, problematiche di gestione ed errori. Del resto, oggi,
anche le imprese più piccole ed i dipartimenti all'interno di grandi aziende si
apprestano a dover gestire centinaia o migliaia di dispositivi. Grazie poi all’uso
di ambienti virtualizzati, il numero di 'macchine' da gestire può rapidamente
raddoppiare o triplicare. Lo sviluppo di cloud privati e pubblici utilizzati senza
adeguata tecnologia di gestione può dar luogo a problematiche che vanno oltre
lo spreco di tempo e denaro per la gestione di un sistema: si parla delle
interruzioni di servizio causate da errori e delle opportunità precluse da
processi di change management insufficienti.
5.1 P UPPET
Molte organizzazioni IT si affidano a processi manuali, script personalizzati per
svolgere compiti ripetitivi. In ambienti di grandi dimensioni o con molti membri
del team si possono venire a creare diversi problemi derivanti da errori di
configurazione o non conformità di queste, con conseguente diminuzione della
produttività e della reattività del sistema. Per questo, una gestione della
configurazione automatizzata elimina buona parte del lavoro manuale
regalando maggiore affidabilità.
Scritto in Ruby sotto Apache 2.0 License da
PuppetLabs, Puppet è un utility open-source
per la gestione di sistemi sia Unix-like che
34
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
Microsoft ed utilizza un linguaggio dichiarativo che descrive la configurazione di
un sistema in modo molto intuitivo. Puppet offre quindi un nuovo approccio alla
gestione del sistema, un approccio che ora si presta naturalmente ad
applicazioni in ambienti di cloud computing.
5.1.1 O PEN S TACK & P UPPET PER LA GESTIONE
AUTOMATIZZATA DI UN CLOUD
Puppet ha visto una forte diffusione grazie alle distribuzioni di OpenStack .
I moduli di Puppet per OpenStack nascono per fornire automazione scalabile e
affidabile per implementazioni cloud OpenStack. Questi moduli sono
liberamente scaricabili dal Puppet Forge e funzionano con Puppet open source o
Puppet Enterprise. Essi consentono agli amministratori di sistema di
automatizzare ogni fase del ciclo di vita delle loro infrastrutture OpenStack, tra
cui:

Istanze di provisioning OpenStack

Gestione della configurazione

L'implementazione e la configurazione dell'applicazione

Controllo di configurazione per la sicurezza e la conformità
Puppet Labs ed i membri della comunità OpenStack Cisco, Red Hat, Rackspace,
Morphlabs, eNovance ed altri hanno insieme progettato e sviluppato moduli di
Puppet per OpenStack. Tra i principali vantaggi di queste collaborazioni si
evidenziano:
A D O Z I O N E D E L L E “ B E S T PR A C TI CE S ” 19
I membri della comunità hanno tutti una notevole esperienza ed i moduli di
configurazione di Puppet assicurano, fin dall'inizio del progetto, che siano
seguite le ‘best practices’. Si approfitta dall'esperienza degli altri e così non c'è
bisogno di “reinventare la ruota”.
La “B E S T P R A C T I C E ” è un'idea manageriale che asserisce l'esistenza di una tecnica, un
metodo, un processo o un'attività, che sono più efficaci nel raggiungere un particolare risultato,
di qualunque altra tecnica, metodo, processo, o attività.
19
35
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
S UP P O R T O M UL TI PI A T T AF O RM A
I moduli di configurazione di Puppet per OpenStack consentono la creazione di
cloud pubblici o privati in una vasta gamma di sistemi operativi, database ed
hypervisor. Quindi non sono limitati alla piattaforma o tecnologia di un unico
fornitore.
C O M UN I T À A T TI V A
Tutti i membri della comunità hanno un interesse acquisito nei moduli di
configurazione Puppet - OpenStack ed attivamente contribuiscono
all'evoluzione ed al supporto della tecnologia. Non si fa affidamento quindi solo
sulle capacità di ogni singolo membro per sostenere o fornire direzione tecnica.
[10]
36
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
6C
ONCLUSIONI E FUTURI SCENARI
Il cloud ha generato un’ innovazione digitale della quale attualmente si scorgono
solo le prime manifestazioni. Le infrastrutture di cloud computing sono, come si
è visto, grandi datacenter, distribuiti geograficamente o concentrati in una sola
struttura, che permettono all’utente di avere a disposizione le risorse che
effettivamente utilizza, pagando solamente per il tempo in cui sono utilizzate.
Questo è comunque uno solo degli aspetti che definiscono una struttura cloud:
la possibilità di aggiungere risorse alle nostre istanze virtuali, o allo spazio che
ci viene assegnato, deriva dalla scalabilità di questi ambienti, che grazie a
tecnologie di virtualizzazione sono in grado di incrementare lo storage e la
potenza delle singole istanze in base alle richieste.
Non si può (e non si deve!) nascondere però un problema legato a come è gestita
la sicurezza del sistema e quindi quali sono i rischi che corrono i dati nel cloud.
Oltre questo c’è anche un problema di tipo normativo. Questi due aspetti
rappresentano ancora un ostacolo alla diffusione del cloud, con ovvie
ripercussioni per tutti i soggetti coinvolti, aziende, settore pubblico e provider.
Al momento non esiste ancora un quadro normativo in ambito civile e penale,
aggiornato in tema di privacy, che possa offrire adeguate garanzie a chi adotta
questa tecnologia.
Il software di gestione per una infrastruttura cloud di cui è stato fatto
approfondimento in questo elaborato è OpenStack.
OpenStack è in continuo divenire con aggiornamenti, collaborazioni, affiliazioni
e nuove implementazioni. Non è un caso che ormai la maggior parte delle grandi
aziende e colossi dell’informatica, stiano collaborando all’ampliamento del
software o semplicemente l’abbiano adottato. A cadenza semestrale viene
37
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
rilasciata una release nuova e ciò lo rende un prodotto sempre competitivo e
all’avanguardia.
L’ultima (7 Aprile ’14) release è la IceHouse, mentre il 16 Ottobre ’14 è previsto
il rilascio di Juno che implementerà molto probabilmente i moduli Bare Metal
(Ironic), Queue Service (Marconi) e Data Processing (Sahara).
OpenStack è un grande strumento nelle mani di chi vuole investire nel cloud.
Tuttavia, al crescere della complessità di un’infrastruttura, i problemi di
consistenza delle configurazioni e di coerenza di queste, crescono
vertiginosamente. È importante quindi che tutte le operazioni siano
automatizzate. Si è fatto avanti allora Puppet, il software che permette una
gestione dei server semplificata perché automatizza le configurazioni. Il
connubio OpenStack-Puppet rappresenta il modo migliore per la gestione
intelligente e senza spreco di tempo e risorse di un’infrastruttura cloud,
soprattutto se essa si presenta di dimensioni considerevoli.
Sul sito di RedHat20 si evidenzia un paragone interessante: “In many ways, the
use of OpenStack is like Linux ten years ago ” cioè “in molti casi, l’uso di
OpenStack è come quello di Linux dieci anni fa”. Molto probabilmente, però,
OpenStack dovrà affrontare molti meno pregiudizi sull’open source di quanti
non ne abbia dovuti superare Linux a suo tempo.
Ma è presto per dirlo, la curva di adozione è solo all’inizio.
20
https://www.redhat.com/en/about/blog/red-hats-commitment-openStack-icehouse
38
SISTEMI DI GESTIONE PER INFRASTRUTTURE CLOUD
B IBLIOGRAFIA E S ITOGRAFIA
[1] Wikipedia. Grid Computing. - http://it.wikipedia.org/wiki/Grid_computing
[2] M. MIGLIARDI, R. PODESTÀ, Cloud Computing: evoluzionario e rivoluzionario Mondo Digitale - Marzo 2010
http://archivio-mondodigitale.aicanet.net/Rivista/10_numero_1/Migliardi_p_16_26.pdf
[3] P. MELL ,T. GRANCE. The NIST Definition of Cloud. Recommendations of the
National
Institute
September
2011
http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf
[4]OpenConsulting - http://www.openconsulting.it/Sicurezza_e_Architetture_Cloud
[5] Architecture for Managing Clouds| A White Paper from the Open Cloud
Standards
Incubator
http://www.dmtf.org/sites/default/files/standards/documents/DSP-IS0102_1.0.0.pdf
[6] Wikipedia. Datacenter http://en.wikipedia.org/wiki/Data_center
[7] Datacenter tour: come è fatto un datacenter http://www.hostingtalk.it/data-center-tour-come-e-fatto-un-data-center-parte-1_c00000697/
[8] ICT4E.Guide: Software-Defined Enterprise: progettare un datacenter nell’era
del cloud – http://www.ict4executive.it
[9] OpenStack - http://www.openstack.org/
[10] PuppetLabs - http://puppetlabs.com/
39