Virtualizzazione: quali differenze rispetto al cloud

Virtualizzazione

La creazione virtuale di una risorsa computazionale messa di solito a disposizione “fisicamente” (potrebbe trattarsi di un sistema operativo ma anche di un dispositivo di memorizzazione o una risorsa di rete etc.) è la definizione che spiega in sintesi il termine virtualizzazione: il procedimento è simile a quanto avviene nel sistema operativo di un calcolatore che, attraverso una “visione logica” dei componenti ed un maggiore livello di astrazione, separa le risorse fisiche disponibili ed il loro utilizzo da parte degli utenti.

La virtualizzazione costruisce quindi una molteplicità di prospettive logiche sulle risorse fisiche, oguna delle quali può essere adoperata per interagire con un determinato utente in base alle necessità. Se volessimo spiegarne il significato in maniera più formale “la virtualizzazione costruisce un isomorfismo tra il sistema virtuale (guest) ed il sistema reale (host)”. 

Dopo aver introdotto brevemente i lettori alla virtualizzazione procederemo ora, nell’ordine, con l’elencare prima le principali differenze con il cloud computing e successivamente le sue principali applicazioni nella nuvola.

Differenze tra virtualizzazione e cloud

“Virtualizzazione e cloud privato sono la stessa cosa? Chi sta procedendo all’implementazione di un alto livello di virtualizzazione dovrebbe guardare anche a soluzioni cloud privato?” sono alcune delle domande che privati ed aziende si pongono tutt’ora nell’era del cloud. Prima di rispondere ai quesiti è bene osservare che la virtualizzazione ha consentito hai reparti IT sia di migliorare l’utilizzo dei server ed abbassare le spese ad essi correlate, sia di agevolare l’attività lavorativa mediante il consolidamento dei server, la virtualizzazione delle reti, l’aggiunta di opzioni disaster recovery ed altre applicazioni.

I vantaggi e le possibiltà offerte da tale tecnologia sono quindi numerose ed interessanti ma, tornando alle domande in apertura di paragrafo, occorre anche in questo caso chiedersi quali siano le necessità operative che ci si appresta a soddisfare. Il passo successivo è il comprendere la differenza tra virtualizzazione e cloud, due tecnologie in apparente competizione tra loro che affrontano gli obiettivi degli ambienti  IT con differenti approcci e diverso impatto sul business.

In ambito IT, l’isolamento delle risorse di calcolo deve essere effettuato in maniera tale che l’oggetto (un componente, un’operazione etc.) localizzato in un determinato layer (strato) possa essere, all’occorrenza, impiegato senza dover intervenire sugli altri strati sottostanti. La virtualizzazione, isolando le risorse di calcolo, offre allora l’opportunità di riposizionare e consolidare le risorse isolate migliorandone l’efficienza e l’utilizzo.

D’altra parte il cloud computing è invece in grado di rendere disponibili le risorse su richiesta (on demand). La definizione di cloud computing data dal NIST (National Institute of Standards and Technologies) ed inserita in un documento liberamente consultabile online, ci aiuta in questo caso a delinearne le caratteristiche principali ed i modelli di distribuzione. In ambito cloud computing è il modo con cui si approccia un servizio a contraddistinguere questi ultimi. I servizi identificano sempre qualcosa che è disponibile on demand ma nel caso del SaaS (Software as a Service) ci si riferisce ad un software incentrato sulle funzioni disponibili entro e non oltre l’applicazione; nel caso del PaaS (Platform as a Service) ci troviamo invece davanti ad un ambiente di runtime la cui portata è costituita da tutto l’insieme di funzionalità on demand per le applicazioni distribuite nell’ambiente runtime: essendo quest’ultimo disponibile su richiesta ne consegue che un’applicazione distribuita per quest’ambiente può essere a sua volta portata ad uno stato di esecuzione on demand. Le applicazioni distribuite in un ambiente PaaS vengono consegnate con SaaS.
IaaS (Infrastructure as a Service) mette invece a disposizione infrastrutture su richiesta. Per i professionisti IT l’approvvigionamento di infrastrutture a livello operativo si traduce in server di distribuzione. E nel contesto del cloud computing, tutti i server vengono virtualizzati e distribuiti sotto forma di una macchine virtuali o VM (virtual machine). Quindi, IaaS è in definitiva la capacità di implementare macchine virtuali on demand. E’ bene sottolineare che l’attributo “on demand” non deve essere dato per scontato e che su di esso poggia gran parte del significato della parola cloud computing. On demand è sinonimo di accessibilità, disponibilità e fruizione self service delle risorse in qualsiasi momento. Su un servizio on demand vengono effettuati determinati controlli e misurazioni, in modo che la capacità possa essere pianificata di conseguenza. E’ per questo motivo che i consumi chargeback e show-back sono caratteristiche essenziali del modello cloud.

In base a quanto detto fino ad ora, il self serving è sicuramente un elemento che differenzia il cloud dalla virtualizzazione. Il self serving non è infatti fondamentale nella virtualizzazione: certo, è sempre possibile implementarlo al suo interno ma non costituisce una condizione necessaria e sufficiente a qualificarla come tale. Come detto in precedenza la situazione è invece nettamente differente nel cloud dove la disponibilità di una risorsa ed in qualsiasi momento è centrale.

Ed ancora la virtualizzazione è incentrata sulle macchine virtuali e radicata nella gestione delle infrastrutture, delle operazioni, della flessibilità e della distribuzione; riguarda le capacità per il consolidamento dei server e la gestione di macchine virtuali, desktop streaming etc. Il cloud cambia il modo di offrire questo servizio e la prontezza nella risposta alle opportunità di mercato: si occupa di rendere un’applicazione immediatamente disponibile on demand e non solo di distribuire una macchina virtuale. Il cloud è interessato tanto all’operatività delle VM quanto alla fornitura delle applicazioni eseguite nelle macchine virtuali.

Virtualizzazione: applicazioni in ambienti cloud

Abbiamo a questo punto capito come la virtualizzazione assuma nel cloud il ruolo di tecnologia adoperata per consentire la fruizione on demand di un determinato servizio e confinata logicamente nel server del relativo modello: in tale ambito l’applicazione della virtualizzazione hardware è identificata da server virtualization, un’espressione che indica la separazione delle risorse fisiche che costituiscono il server dal loro utilizzo mediante la creazione di diversi ambienti virtuali isolati detti VPS (Virtual Private Servers) o guest.

Ogni ambiente si concretizza in un insieme di macchine virtuali, create attraverso una particolare forma di hardware virtualization tra quelle elencate precedentemente, e dal relativo hypervisor o sistema operativo compatibile con Operating system level virtualization. Di conseguenza è ad esempio possibile partizionare un singolo server fisico in un numero arbitrario di server virtuali, ognuno con il proprio sistema operativo, disponibili per servire una molteplicità di utenti.

Un esempio classico di server virtualization è quello che vede le macchine virtuali (noleggiabili per un periodo di tempo variabile da pochi minuti fino a diversi mesi) risiedere direttamente sull’hypervisor (nativo come Xen ; hosted come VMware) oppure su un sistema operativo che supporti l’operating system level virtualization (Linux ed OpenVZ). E’ bene ricordare che l’infrastruttura (hypervisor o OS) non deve risidere necessariamente sul server fisico in modo permanente ma può anche essere memorizzata come immagine, in modo da poter essere caricata successivamente su richiesta.

Con desktop virtualization ci riferisce invece al principio di separazione di un ambiente desktop dalla macchina fisica remota responsabile della sua esecuzione attraverso un modello client – server. VDI o virtual desktop interface indica invece il modello server e le risorse necessarie a supportale la virtualizzazione desktop. E’ da notare che lato server l’approccio tecnologico è il medesimo della server virtualization, si beneficerà quindi di tempi di recupero ridotti in caso di guasto, della possibilità di effettuare procedure di migrazione e di costruire con semplicità macchine virtuali. L’espressione Desktop Virtualization focalizza però in particolare la prospettiva dell’utilizzatore, divenendo un potenziale servizio offerto nel contesto del cloud con il nome di Desktop as a Service. 

In chiusura è il caso di ricordare la storage virtualization e la network virtualization, tecnologie che di frequente accompagnano la già menzionata server virtualization. La prima indica la condivisione di memoria di massa da parte di un insieme di dispositivi fisici residenti eventualmente in diverse SAN in un unico dispositivo logico centralizzato. L’intera memoria è quindi percepita come un insieme omogeneo, suddividendo lo spazio logico disponibile in “volumi virtuali”, a prescindere dalla reale topologia, disposizione e eterogeneità degli elementi fisici di memorizzazione (Dischi, RAID o sottosistemi).

Con la seconda si intende invece la condivisione di un insieme di risorse hardware e software appartenenti a reti eterogenee in un’unica rete virtuale gestita centralmente. Di conseguenza è possibile amministrare la rete attraverso la creazione in tempo reale di canali virtuali isolati costruiti sull’infrastruttura.

 

 

Fonti

  • T. Z. B. Z. H. Dong, Q. Hao. Formal discussion on relationship between
    virtualization and cloud computing. The 11th International Conference
    on Parallel and Distributed Computing, Applications and Technologies
  • Cloud Computing: modelli, piattaforme e sviluppo di un caso applicativo. Tesi di laurea triennale di Yuri Ricci.