L’informatica moderna guarda sempre più a nuove forme di distribuzione dei carichi di lavoro all’interno delle reti, sia per consentire il massimo utilizzo di ogni singola risorsa, sia per economizzare la gestione ed i costi latenti dei mezzi a disposizione.
Per questo motivo oggi si usa, e si abusa, di termini tecnici quali Cloud Computing e Virtualizzazione , spesso senza essere effettivamente consci del loro significato profondo, delle implicazioni e dei benefici tecnologici che queste metodologie apportano.
I benefici della virtualizzazione
Concentrandosi sul solo aspetto della virtualizzazione , è innegabile che attualmente si tenda a pensare a questa nuova soluzione informatica a solo ed esclusivo appannaggio della sfera dei server e degli alti processi che avvengono in queste macchine. In realtà, l’azione del “virtualizzare”, quindi l’applicazione del principio per cui si genera una versione simulata di una risorsa effettivamente esistente dal punto di vista fisico, non è da riferirsi solo all’hardware di un server. Quest’ultima è una declinazione specifica del principio e non una sua definizione. Si capisce facilmente che qualsiasi sia la risorsa a disposizione, questa possa essere teoricamente virtualizzata, sia essa software ed hardware. Partendo da questo presupposto, diverrà ancora più semplice comprendere le differenti forme di virtualizzazione oggi esistenti, che coinvolgono diversi tipi di risorse.
Microsoft ha ben presente quest’ultimo concetto ed ha per questo proposto differenti soluzioni tecnologiche studiate per declinare l’atto della virtualizzazione in tutte le forme oggi possibili, proponendo così differenti livelli di virtualization , tali da massimizzare la flessibilità e l’avanzamento delle strutture IT, riducendo costi e tempi di fermo.
I livelli di virtualizzazione proposti da Microsoft, sono così riassumibili:
VIRTUALIZZAZIONE STATO UTENTE
Può essere realizzata ricorrendo alle tecniche del Roaming Profile e del Folder Redirection . La prima modalità di virtualizzazione permette di salvare in rete il profilo dell’utente avendo cura di memorizzare tutte le preferenze di configurazione, come ad esempio l’immagine del desktop, il colore dello sfondo, le cartelle di rete, i link preferiti, le stampanti configurate e tutte le altre opzioni utente impostate, in modo tale che queste sia disponibili indipendentemente dal PC di accesso.
Il metodo del Folder Redirection , permette, invece, di rendere fruibile all’utente i propri documenti da qualsiasi computer della rete aziendale in modo assolutamente semplice ed efficiente. Tutti i processi di scrittura e lettura dei file che sono destinati ad una cartella locale, vengono in realtà reindirizzate in modo trasparente verso una cartella di rete, che si occupa di effettuare lo storage di tutti i documenti. Insomma, l’utilizzo contemporaneo delle due modalità di virtualizzazione finora descritte permetterebbero a qualsiasi utente di accedere alle proprie impostazioni ed ai propri documenti, indipendentemente dal PC consegnatoli: questo significherebbe, ad esempio, un’assoluta assenza di complicazioni qualora un dipendente debba consegnare il proprio notebook in assistenza, in quanto qualsiasi sia il muletto fornitogli, troverebbe lì, sempre a sua disposizione, i dati a lui necessari e le impostazioni a lui care, permettendogli di lavorare in modo continuo, senza perdere tempo nel trasferimento dei dati o nell’acquisizione di feeling con il nuovo ambiente.
VIRTUALIZZAZIONE APPLICATIVA
Per capire il significato di virtualizzazione applicativa è necessario sfatare un mito: rendere virtuale un’applicazione, non significa installare una macchina virtuale. Infatti, si tratta di due concetti differenti, che giocano un ruolo complementare. Virtualizzare una macchina significa rendere disponibile un sistema hardware emulato creando uno strato astratto fra l’hardware reale ed il sistema operativo posto su di esso. Virtualizzare un’applicazione significa, invece, rendere accessibile un ben determinato software da un qualsiasi computer sulla quale, però, il software non si trova fisicamente installato. Insomma, nelle soluzioni apps-virtualization come Microsoft App-V , l’applicativo viene trasformato in una serie di bit che vengono scaricati dal server nel momento in cui l’applicazione stessa viene eseguita. L’elaborazione e l’esecuzione avviene in locale, sfruttando l’hardware del PC che ha accesso all’app, senza però che questa sia fisicamente installata su di essa. Quindi, l’applicazione viene eseguita in una piccola bolla virtuale che contiene le voci di Registro, i file, gli oggetti COM e gli altri componenti di cui ha bisogno per essere eseguita, agendo come un “sottile” ambiente virtuale di livello tra l’applicazione e il sistema operativo. I vantaggi di questo tipo di virtualizzazione sono tanti ed indiscutibili: nessun problema di aggiornamento software da distribuire su computer dei dipendenti (è sufficiente aggiornare l’applicativo lato server), nessuna necessità di perdere tempo nei setup di nuove postazioni con la classica trafila di installazione degli applicativi aziendali, possibilità dell’utenza di ritrovare i propri software da qualsivoglia computer si acceda, completa compatibilità dei software con il PC di installazione e pochi problemi di gestione delle licenze di utilizzo.
VIRTUALIZZAZIONE DEL DESKTOP UTENTE ( Presentazion virtualization )
La virtualizzazione del desktop permette a chiunque di accedere in remoto ad un’istanza di esecuzione di un sistema operativo installato su un server, utilizzando un apposito protocollo, definito semplicemente come RDP – Remote Desktop Protocol . L’assoluto vantaggio di questa tipologia di virtualizzazione si realizza nella possibilità di eseguire su hardware minimo ed eventualmente anche vetusto (come dispositivi leggeri, thin client o portatili) qualsiasi sistema operativo e software, facendo girare in locale solamente un OS minimo, necessario per garantire il corretto funzionamento del solo software di connessione. Nessun problema di ingenti investimenti per riattrezzare l’hardware dei differenti reparti o dei dipendenti in sede ed in mobilità, qualora si voglia offrire un sistema operativo più innovativo ed una nuova versione di un determinato applicativo.
VIRTUALIZZAZIONE DEL CLIENT ( Virtual Desktop Infrastructure e local desktop virtualization )
Tale virtualizzazione sembra molto simile alla precedente. In realtà, si differenzia in quanto l’utente accede da remoto tramite protocollo RDP dedicato a delle macchine virtuali che vengono eseguite su di un server, ma che contengono un sistema operativo client. Tali ambienti sono completamente separati l’uno dall’altro. Questa virtualizzazione può essere realizzata anche su macchine client invece che su server, grazie a sistemi di virtualizzazione client-oriented come Virtual PC o come la modalità di esecuzione XP-Mode , disponibile in Windows 7. Per le aziende che decidono di implementare questa soluzione di virtualizzazione su differenti macchine client, è possibile ricorrere ad una gestione centralizzata di tutte le virtual machine in esecuzione, attraverso piattaforme come MED-V (Microsoft Enterprise Desktop Virtualization).
VIRTUALIZZAZIONE DEL SERVER
La virtualizzazione di server, normalmente riferita con il solo termine di virtualizzazione, permette di emulare l’hardware di un server, consentendo l’esecuzione di differenti sistemi operativi server in macchine virtuali. Tramite Hyper V , è possibile, quindi, ottimizzare e massimizzare l’utilizzo delle periferiche presenti nei server, che normalmente vengono usate in una percentuale che si attesta intorno al 20-30% delle reali prestazioni raggiungibili. Tutto ciò consente di sfruttare un server al massimo delle potenzialità, risparmiando costi di acquisto, installazione, gestione e tutti i costi indotti, dovuti all’acquisizione di un nuovo server. L’obiettivo è quindi di eseguire sullo stesso hardware differenti OS, consolidando in un unico server tutto il workload suddiviso normalmente su server differenti. I server costano. E tanto. Ma spesso sono utilizzati solo per un terzo delle loro reali possibilità. Difatti, i risultati di indagini condotte da varie società di analisi, attestano che lo sfruttamento dei server si aggira attorno al solo 20-30%.
Tali statistiche dimostrano gli enormi sprechi che si concretizzano nell’uso dei server aziendali. Sperperi dovuti al consumo energetico, alle risorse hardware non utilizzate ed agli elevati costi di gestione. Senza contare che, molto spesso, le aziende ricorrono all’acquisto di nuovi server piuttosto che investire sulle strutture esistenti , sprecando così risorse preziose al fine di implementare nuove funzioni o di mantenere le strutture IT al passo con i cambiamenti del mercato e dei bisogni di business.
Per ovviare a questa situazione di stallo informatico, è necessario adottare uno strumento in grado di ridurre i costi dei sistemi IT, rendendo però tali strutture comunque flessibili ed affidabili. Nonostante tutto questo possa sembrare una chimera, la soluzione esiste. E risiede nella virtualizzazione dei server.
Le aziende possono trovare nei sistemi di virtualizzazione dei server un partner fidato con il quale raggiungere l’obiettivo di mantenere stabile il rapporto costi/benefici. Virtualizzare, infatti, significa consolidare i carichi di lavoro su un’unica macchina senza dover ricorrere a differenti server che gestiscano separatamente i workload.
Il risparmio è evidente: minori costi di personale addetto alla manutenzione, minori costi di elettricità per alimentare i server ed i sistemi di raffreddamento e minori costi di connessione.
A tal proposito, Microsoft ha introdotto, in Windows Server 2008 R2 , una nuova piattaforma di virtualizzazione, nota con il nome di Hyper-V . Tale piattaforma è installabile su hardware fisico e permette la completa virtualizzazione della macchina.
Hyper-V permette l’installazione in virtuale di quasi tutti i sistemi Windows Server, di Suse Linux Enterprise Server (10 e 11), di Red Hat Enterprise 5 e di tutta la famiglia Windows per uso SOHO (XP, Vista e Seven).
La praticità della struttura Hyper-V, legata alla sua efficienza, consente di gestire con semplicità ogni server virtualizzato. A tal fine, le piccole realtà possono ricorrere alla console Hyper-V manager inclusa in Windows Server 2008 R2, mentre le medie e grandi organizzazioni possono adottare sistemi di scripting (Vbscript o Powershell) o utilizzare System Center Virtual Machine Manager 2008 R2 .
Con Hyper-V, Microsoft pone fine anche ai problemi legati alle installazioni hardware delle macchine virtuali: una delle questioni che più attanaglia gli addetti ai settori IT risiede proprio nei problemi di installazione dei driver delle periferiche.
In realtà, con Hyper-V ogni driver di periferica viene ad essere installato sulla partizione principale, o Parent, mentre tutti i livelli applicativi saranno poi gestiti a livello di partizioni Child.
Tale suddivisione è ancora più apprezzabile, visionando la mappa dell’architettura della piattaforma Hyper-V. Immaginiamo un’azienda: molti dipendenti, alcuni in sede, altri in mobilità; computer portatili e desktop da gestire; applicazioni da installare; aggiornamenti da distribuire, magari non compatibili con i diversi sistemi operativi; PC che devono rientrare, viaggiando con corrieri e a rischio rottura o smarrimento.
Sembra quasi un’apocalisse informatica. In realtà, è una tipica situazione che sempre più spesso i tecnici dei reparti IT di medie-grandi imprese si trovano a dover fronteggiare ogni giorno.
La soluzione a tutto questo marasma? La virtualizzazione, naturalmente. Questa volta, però, il livello coinvolto è quello applicativo: non si tratta dell’uso di una macchina virtuale, ma della trasformazione dei software in una serie di bit da inviare in streaming.
Ma procediamo per gradi e scopriamo di cosa si tratta.
Per virtualizzare il livello applicativo, si potrebbe ricorrere all’uso del software Microsoft Application Virtualization, noto anche come App-V, che si basa sulla tecnologia SystemGuard, sviluppata dall’azienda SoftTricity.
Grazie a questa fine tecnologia, l’applicazione viene ad essere installata su di una macchina, definita sequencer che, grazie ad App-V, verifica quali sono le modifiche che la procedura di installazione apporta a livello di registro, di componenti COM e di librerie DLL e salva queste mutazioni in un file con estensione.sft.
Tutto ciò avviene durante la prima fase di virtualizzazione, definita fase di Sequecing. Il file che contiene le informazioni sull’applicazione e diviene dunque l’ambiente eletto di esecuzione per l’applicazione stessa, una sorta di bolla o sanbox nella quale l’applicativo si trova completamente separato dal sistema operativo sottostante, ma anche da eventuali altri software che vengano avviati. In questo modo, l’app virtualizzata accede alle librerie del sistema operativo solo ed esclusivamente in modalità di lettura, evitando così che possa avvenire la sovrascrittura dei componenti dell’OS sulla quale il software viene eseguito: in parole povere, i binari dell’applicativo non vanno ad intaccare le dll del sistema. Allo stesso tempo, però, l’applicazione ha la possibilità di accedere in modalità lettura/scrittura ai servizi del sistema ed ai dati di profilo, consentendo l’utilizzo dei sistemi di copia&incolla, dei servizi OLE, delle stampanti installate oltre alla possibilità di salvare in locale i file elaborati. Da ciò si capisce che per l’utente non cambia assolutamente nulla, in quanto potrà continuare ad utilizzare il PC come sempre.
Superata la fase di sequencing, la bolla ottenuta può essere re-distribuita dall’amministratore di sistema o mediante package MSI oppure in modalità streaming, esattamente come un film. Nel primo caso, il package non fa altro che creare nel sistema di destinazione la sandbox e creare lo shortcut dell’applicazione nel menu dell’OS.
Nel secondo caso, invece, alla richiesta di esecuzione del programma, dal streaming-server parte la consegna del primo blocco di informazioni, alla quale segue l’avvio del software e poi, man a mano, viene ricevuto in background il resto del package fino al termine dell’installazione virtuale dell’app sul client. In questo modo è possibile, ad esempio, eseguire una versione vetusta di un software anche su sistemi operativi molto innovativi, come Windows 7, oppure eseguire contemporaneamente, in modalità side-by-side, differenti versioni dello stesso applicativo, senza che si vengano a creare conflitti operativi, garantendo così un perfetto isolamento tra le differenti apps.
Inoltre, per estendere la compatibilità anche alle architetture 64 bit, Microsoft ha provveduto recentemente al rilascio della nuova versione 4.6 di App-V. Grazie al supporto dei sistemi 64 bit, il nuovo metodo di virtualizzazione permette di effettuare il sequencing di applicazioni 32 e 64 bit ed eseguirle in sistemi a 64 bit reali o su piattaforme 32/64 bit virtualizzati, oltre a garantire la migliore condizione di distribuzione di Office 2010 in virtual mode. Allo stesso tempo, sono stati rilasciati tutta una serie di strumenti che accelerano la gestione e migliorano la manutenzione ed il problem solving dei package e dei file.sft.
Infine, tutte le aziende che decidono di adottare la soluzione Microsoft per la virtualizzazione del livello applicativo, possono ricorrere ad una guida resa disponibile nella Library TechNet, che offre un pieno supporto all’analisi del progetto da adottare per la propria infrastruttura IT.
I differenti passi da seguire sono rappresentati in un flow-chart di facile comprensione. Dapprima, secondo lo schema, è necessario definire esattamente lo scopo che si vuole raggiungere con il progetto, identificando quali siano le applicazioni da rendere disponibili virtualmente ed individuando quale sia il target di utenza e la modalità con cui essi possano accedere ai software virtuali. Successivamente, è necessario determinare come portare gli applicativi agli utenti, scegliendo fra il modello streaming od il modello package e, nel prosieguo, indicare quante sono le istanze per ogni modello selezionato. Gli ultimi step consentono di valutare i rapporti fra client e sequencer, procedendo al disegno progettuale della struttura streaming e della piattaforma completa.
Curando nei minimi dettagli ogni singolo aspetto, sarà possibile approntare in breve tempo e nei migliori modi possibili un sistema di virtualizzazione completo ed affidabile, assolutamente cucito addosso alla realtà business di cui si è protagonisti. Da anni, il gruppo di Redmond è fortemente attivo anche nella fornitura di prodotti Terminal Services. E ancora oggi, tale piattaforma, con opportuni miglioramenti tecnici e forti restyling dovuti al continuo investimento di ricerca, rimane alla base dei servizi di virtualizzazione offerti da Microsoft.
Le innovazioni applicate ai sistemi Terminal Services hanno dato vita a quelli che oggi si definiscono Remote Desktop Services, il cui cuore tecnologico pulsa al centro delle metodologie di Virtualizzazione del Presentation Layer.
Procedendo con ordine, si potrebbe semplificare il discorso nel seguente modo: i Remote Desktop Services, cosi come le sessioni Terminal Services, permettono che su ogni macchina server possano coesistere innumerevoli sessioni di altrettanti utenti. E che, collegandosi da remoto tramite il proprio client, possano usufruire di un ambiente desktop.
In questo caso è l’aspetto, il contenuto del desktop o della finestra dell’applicazione trasferita, ad essere inviato dal server verso i client.
Questo trasferimento di dati via rete informatica è garantito dal protocollo RDP (Remote Desktop Protocol) divenuto nelle sue ultime release così performante, completo ed affidabile, da essere considerato il cuore pulsante di tutta una serie di servizi offerti da Microsoft.
Come le connessioni di Remoting Desktop verso gli host server, fra client e client, all’interno di una struttura VDI (Virtual Desktop Infrastructure), per le sessioni di Remote Assistance, per i client Live Mesh, per i sistemi di intrattenimento (come Xbox360 e Media Center) sfruttati la riproduzione in remoto di contenuti multimediali e per i controlli remoti esercitati tramite System Center Configuration Manager ed Hyper-V.
La forte innovazione tecnologica alla quale tale protocollo è stato sottoposto, ha permesso di utilizzare il canale client-server non solo per trasferire l’immagine del desktop, come avveniva fino a pochi anni fa, ma anche per consentire l’accesso e l’utilizzo di tutta una serie di componenti aggiuntivi resi così disponibili per l’uso remoto. Il RDP ci consente di instradare, da qualsiasi luogo ci si trovi, da casa, dalla rete aziendale o in mobilità tramite connessioni UMTS/HSDPA, tutta una serie di contenuti, come l’input delle stampanti locali, i file destinati verso il file system della macchina client, il contenuto ed i driver di memorie USB, rendendoli così disponibili anche nella sessione remota, oppure l’input del microfono integrato nel PC client.
In questo modo si garantisce agli utenti la possibilità di utilizzare le risorse hardware e software della rete, con la stessa qualità della user-experience che l’utente può provare nell’uso delle proprie macchine locali: ciò significa, che ormai in una sessione remota è possibile visionare video in qualità HD, effettuare chiamate VoIP ed utilizzare sistemi di autenticazione, ad esempio, tramite smartcard.
Tutto ciò è quindi realtà, grazie alla nuova versione 7 del protocollo RDP, inclusa in Windows Server 2008 R2 ed in Windows 7. Con questo nuovo rilascio, Microsoft ha investito ingenti risorse nel miglioramento dei flussi multimediali, nel supporto ai sistemi multi monitor, nell’utilizzo dei vantaggi e delle accelerazioni offerti dai sistemi di grafica 3D e nelle performance generali, soprattutto di occupazione di banda di rete.
Tali sviluppi hanno portato ad una nuova esperienza utente, che BigM riferisce con orgoglio come nuova “Windows Experience” tramite servizi remoti. Questa neonata “Windows Experience” permette ad esempio di avere in modalità remota il supporto alla nuova interfaccia grafica Aero, sfruttando a pieno le sue caratteristiche quali trasparenze e preview dei programmi in esecuzione sulla taskbar.
Inoltre, il supporto multi monitor permette di configurare fino a 16 monitor per ogni connessione remota, permettendo di configurare separatamente la risoluzione di ogni singolo lcd (fino ad una risoluzione massima di 1920×1080).
Non è tutto, perché anche dal punto di vista audio, il nuovo protocollo implementa un sistema di audio bidirezionale e garantisce una migliore sincronizzazione audio/video.
Queste novità sono state implementate a sostegno del progetto Windows Media Redirection, che consente di re-indirizzare completamente la pipeline video Windows Media Foundation e Direct Show dalla macchina remota a quella client. Tale instradamento si realizza tramite l’invio del solo bytestream per un ridotto utilizzo della CPU lato session host, mentre nel client avviene il rendering vero e proprio del video.
Si potrebbe pensare che uno sviluppo così multimedia-oriented possa inficiare sulla qualità delle connessioni e soprattutto sulla quantità di banda consumata: invece, dai test condotti si identifica immediatamente un miglioramento nell’uso della banda che va dal 20% al 30% a seconda dell’applicazione accedute via Remote Desktop Services.
Dal grafico si nota che passando dal protocollo 6.1 alla versione 7.0, si possono ottenere miglioramenti di consumo della banda di circa il 30% per la navigazione tramite Internet Explorer 8 e l’uso di Microsoft Word, mentre si raggiunge circa il 20% di guadagno nel caso di accesso ad una presentazione PowerPoint di notevole complessità.
Questo forte taglio nell’uso della rete è dovuto sicuramente anche ad un’altra novità introdotta nelle ultime versioni dell’RDP: mentre in passato per accedere a qualsiasi applicazione era necessario avviare una connessione Terminal Service completa, oggi è possibile connettersi in remoto alla sola applicazione di interesse, per averla funzionante nel desktop del client, integrata side-by-side con le applicazioni installate localmente.
Questa suddivisione in applicazioni remote apre la strada a tutta una serie di scenari possibili: ad esempio presso alcuni clienti di Microsoft, sono stati avviati dei feed RSS che vengono aggiornati automaticamente nel Remote Desktop Server centrale, notificando ai client quando nuove RemoteApp sono disponibili per essere usate da remoto.
Sempre a proposito di applicazioni, si deve notare che, per migliorare la compatibilità fra gli ambienti RDP ed i software classici, BigM ha introdotto una serie di tecnologie.
Queste novità non riguardano solo il livello di utilizzo, come ad esempio la serializzazione dei package MSI, che consente l’installazione dei software nei terminal services anche con utenti già connessi, ma anche a livello progettuale: infatti, per verificare in anticipo se un applicativo funzionerà in modo corretto in ambiente RDS, i repati IT hanno a disposizione l’RDS Application Compatibility Analyzer. Si tratta di uno strumento gratuito che consente di visionare il comportamento delle applicazioni in ambiente Remote Desktop, validandone fin da subito il corretto funzionamento.
Nonostante RDP sia il centro propulsore dei Remote Desktop Services, le novità in seno a questa piattaforma non si esauriscono solo con le revisioni al protocollo.
Sono stati introdotti nuovi componenti, come il Remote Desktop Virtualization Host ed il Remote Desktop Connection Broker, che insieme permettono di creare in azienda una struttura VDI completa, basata su Hyper-V R2 e Windows Server 2008 R2 e gestita con l’ausilio del System Center Virtual Machine Manager 2008 R2, componente dedicato al managment delle macchine virtuali.
Da quanto detto fin’ora si può evincere che, implementando presso la propria struttura aziendale una piattaforma per l’amministrazione centralizzata delle sessioni utente, non solo si ottiene un’ottimizzazione dell’uso delle risorse hardware, ma si va incontro a notevoli risparmi pecuniari e di tempo.