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
© Copyright 2024 ExpyDoc