Ogni attività che utilizzi strutture informatiche – oggigiorno praticamente tutte – deve assicurarsi che l’infrastruttura sia in grado di sostenere il carico di lavoro ed eseguire i software senza interruzioni ed errori, per quanto possibile.
In questo caso, per infrastruttura intendo soprattutto il server a cui si fa ricorso, il quale può essere un server virtuale (Virtual Machine, VM) o fisico (ovvero un server alloggiato presso la propria azienda – on premises – o presso un fornitore esterno – ad es. cloud – o una combinazione tra virtuale e fisico (server ibrido).
Vediamo dunque ora quali sono i principali vantaggi e svantaggi della configurazione con server fisico e server virtuale (VM).
Server fisico
Un server fisico è un apparecchio hardware dimensionato per un singolo utente in base a esigenze specifiche. In gergo è anche detto bare-metal server o single-tenant computer server. Tenant è una parola inglese che in questo caso designa l’utente, colui che lo ha affittato o noleggiato. Allo stesso tempo, se il server è presente nei locali dell’azienda, ovvero on premises (non on premise come erroneamente spesso si dice e si scrive) il concetto non cambia, anche se in tal caso la macchina è stata acquistata e non noleggiata come servizio da un fornitore online.
Il fatto che ci si riferisca ad un singolo utente non significa che tale hardware sia in grado di servire solo un operatore, in questo caso utente indica il noleggiante o proprietario, ovvero quella azienda e non altre, la quale possiede quel computer – perciò quel server – in modo esclusivo senza condividerlo con nessuno. Pertanto, a seconda delle applicazioni installate in quel server, possono essere collegati tanti operatori (utenti) quanti ne sono richiesti e permessi in base al suo dimensionamento software e hardware.
Ciascun server fisico include memoria, processore, connessione di rete, disco rigido e un sistema operativo per l’esecuzione di programmi e applicazioni. La figura seguente offre uno schema di massima
Il server fisico sarà composto da unità di calcolo (CPU), memoria di accesso casuale (RAM), dischi rigidi (Hard Disk), unità per la gestione dei dispositivi di ingresso e uscita (I/O, input/output), oltre che ospitare un sistema operativo che ne permette il dialogo con l’utente e applicazioni software che consentono di eseguire elaborazioni e calcoli come richiesto dall’utente.
Macchina Virtuale
Che cos’è una macchina virtuale?
Una macchina virtuale (VM) è un computer software utilizzato come emulazione di un computer fisico. Detto alla buona, una macchina reale che emula il funzionamento di più macchine.
L’ambiente, a questo punto, diventa multiproprietario, “multi-tenant” in gergo, cioè più utenti noleggiano servizi – macchine virtuali – all’interno di uno stesso server fisico dove più macchine virtuali vengono eseguite sullo stesso hardware fisico. In questo caso, le risorse di elaborazione di un server fisico vengono virtualizzate e condivise tra tutte le macchine virtuali in esecuzione su di esso. L’architettura di un server virtuale è leggermente più complessa di quella di un server fisico. Pertanto, è necessario usare un hypervisor – come monitor di macchina virtuale – il quale è un software che crea ed esegue macchine virtuali (VM). Un hypervisor consente a un computer host di supportare più macchine virtuali ospiti (guest VMs) condividendone virtualmente le risorse, come memoria ed elaborazione.
Esistono vari hypervisor, tra i più comuni vi sono VMware vSphere e Microsoft Hyper-V. Questo software viene installato sopra l’hardware fisico. Successivamente è possibile caricare più sistemi operativi ospiti e applicazioni server sull’hardware virtuale.
Pertanto, i server virtuali consentono di eseguire diversi sistemi operativi e applicazioni sulla base dell’hardware fisico condiviso, il che lo rende un’opzione più conveniente rispetto a un server fisico. Perché? Semplice, perché i provider (fornitori di servizi web) con un solo server fisico possono vendere spazi a più utenti.
La figura di seguito offre lo schema di massima di una macchina virtuale.
Confrontiamo ora le due configurazioni: Server Fisico e Server Virtuale
Prestazioni
In quanto alle prestazioni il primo distinguo che è necessario fare è se abbiamo la necessità di elaborare una quantità considerevole di dati o meno.
Ovviamente, i server fisici sono molto più prestanti ed efficienti quando abbiamo esigenza di compiere elaborazioni molteplici su una grande mole di dati e che magari implicano anche operazioni matematiche complesse.
I server virtuali, in questi casi, vanno facilmente in overflow. Un overflow si verifica quando un ciclo di elaborazione riceve un numero di variabili e di operazioni che supera la capacità delle sue risorse; quindi, non riesce a gestirlo e va in errore. Overflow in inglese che significa traboccare, straripare. Rende bene il significato, giusto?
Pertanto, una macchina fisica e una macchina virtuale, entrambe dotate delle stesse risorse e capacità hardware e software, non possono funzionare allo stesso livello. Non pensate mai e poi mai di far fare ad una macchina virtuale quello che fareste fare ad una macchina fisica.
Gestione e manutenzione
In generale possiamo dire che ripristinare un server virtuale è molto più immediato e semplice rispetto ad un server fisico. Ad esempio, se ho creato un backup – cosa che bisogna sempre fare per non rischiare di perdere i dati – con pochi clic riesco a ripristinare eventuali danni di tipo virtuale.
Quando succedono problemi al server fisico le cose sono più complicate perché bisogna controllare lo stato dell’intero hardware e accertarsi che tutto sia a posto. Possono anche presentarsi eventuali carenze in un server fisico. Ad esempio, finora ho avuto necessità di 64 GB di RAM ma è possibile che le esigenze di elaborazione – per via di diverse variabili – siano cambiate e ora ho bisogno di più RAM e magari anche di più CPU e hard disk.
Tuttavia, se la configurazione che utilizzo è un server fisico e al suo interno uno o più server virtuali, la gestione e manutenzione include entrambe le risorse.
Inoltre, bisogna chiarire che se è vero che la gestione di un server fisico richiede competenze tecniche di alto livello, altrettante competenze sono necessarie per gestire un ambiente di server virtuale. Se all’interno dell’organizzazione non ci sono figure specializzate in tal senso, bisogna riferirsi a partner IT di alto livello. Diffidate sempre di chi dice di saper fare tutto perché non funziona così. Un ottimo sistemista che gestisce server fisici potrebbe non avere esperienza nella gestione di un Hypervisor e quindi di una macchina virtuale e viceversa.
Affidarsi ad aziende con alto livello di specializzazione è essenziale. Questi servizi costano, perciò, se spendete cento euro all’anno per una VM, quello è il valore che avete indietro.
Portabilità
La portabilità è la capacità di un sistema di essere trasferito da un luogo ad un altro.
Tutto ciò che risiede in un ambiente virtuale può essere trasferito più o meno facilmente in un altro ambiente virtuale o perfino in un ambiente fisico, ammesso che sia idoneo in quanto a caratteristiche a riceverlo e perciò a eseguire i programmi.
I server virtuali sono isolati uno dall’altro e dispongono del proprio hardware virtuale, il che rende una macchina virtuale indipendente dall’hardware. Lo spostamento dell’ambiente del server fisico in un’altra posizione è un’attività che richiede più risorse. In questo caso, sarà necessario copiare tutti i dati archiviati sul server su un supporto rimovibile, trasportare il supporto e tutte le risorse hardware disponibili in una nuova posizione, quindi reinstallare tutti i componenti del sistema su un nuovo server fisico. Ciò significa che il server va riconfigurato da zero.
Scalabilità
La scalabilità è la capacità di un sistema di aggiungere nuove risorse, o anche di diminuire quelle esistenti ma di solito si scala sempre verso l’alto perché le esigenze crescono.
Un singolo server virtuale può ospitare più macchine virtuali. Certamente, le problematiche esposte sopra valgono come monito. Se ho necessità di elaborare una grande mole di dati ed eseguire programmi complessi avrò bisogno di un server fisico dedicato e semmai di espanderlo qualora le esigenze aumentino, non certamente fare ricorso a macchine virtuali perché sono più facilmente scalabili.
Nelle macchine virtuali è dunque semplice scalare verso l’alto o verso il basso anche con pochi clic del mouse, aggiungendo o eliminando certe risorse. Aggiungere risorse, chiaramente, significa acquistare piani più costosi dal fornitore o comunque applicazioni che non sono implementate nella configurazione corrente. La cosa positiva, in questo caso, è che non devo acquistare hardware. Ciò è dovuto al fatto che le macchine virtuali in esecuzione sul server host (quello che serve l’impianto) condividono le stesse risorse di elaborazione, che possono essere distribuite uniformemente tra tutte le macchine virtuali. In questo modo è possibile progettare un ambiente facilmente configurabile in grado di eseguire operazioni di qualsiasi livello di complessità. Certamente, ciò implica implementare i software adatti e che il sistema sia gestito da chi ha specifiche competenze.
Gestione della capacità
Questo è un discorso piuttosto complesso. In un data centre solitamente i server fisici sono sottoutilizzati. Non sempre e non in tutti i casi, ciò dipende dalla tipologia e qualità delle macchine e dalla gestione del fornitore. In media si stima che questi hanno una capacità di produzione intorno al 25%. Quindi, i fornitori di questi servizi ospitano più macchine virtuali dato che un server fisico con più VM distribuisce le risorse sottoutilizzate tra le altre VM che ne hanno più bisogno. In questo modo si ottiene una gestione ottimale della capacità. Tuttavia, se il fornitore non usa oculatezza e installa più VM tanto per ospitare più utenti possibili, il sistema va facilmente in stallo.
Ripristino del sistema
Un server fisico può andare in stallo per varie ragioni. Se non vi sono danni fisici solitamente basterà un riavvio per rimettere le cose a posto. Nel caso di danni fisici, potrebbero essere necessari giorni prima di ripristinare il funzionamento. Potrebbe essere necessario sostituire componenti hardware e sicuramente reinstallare i software.
Anche in caso di danni ai dati e ai software potrebbe essere necessario un tempo lungo per il ripristino, non tanto quanto per danni fisici chiaramente.
Sicuramente, sempre che il server fisico che ospita i server virtuali non abbia subito danni, il ripristino di un ambiente virtuale è molto più rapido e semplice da eseguire.
Continuità
Se le macchine virtuali risentono meno dei guasti fisici significa che esse conferiscono una maggiore continuità di elaborazione. I data centre dei migliori fornitori sono strutturati in modo che i contenuti che risiedono sui server virtuali siano facilmente trasferibili ad altri server anche in caso di danni al server fisico che li ospita. Questo avviene anche in caso di manutenzioni delle apparecchiature hardware. Per rendere il tempo di inattività (downtime) minore possibile, i dati vengono spostati su ambienti di emergenza per poi essere ripristinati nel sito originario. Tuttavia, se il luogo in cui sono presenti i server fisici e le infrastrutture (data centre) subisce danni seri – incendio, terremoti, inondazioni, guerre – il danno è quasi sempre irreversibile.
Sicurezza
Nel caso di server fisici, il sistema di protezione deve riguardare ogni singolo server e deve essere progettato in base alle sue capacità e risorse di elaborazione e alla sensibilità dei dati che ospita. Nel caso di server virtuali è più facilmente gestibile. Infatti, un server virtuale può essere protetto sulla base di un modello di sicurezza universale. Pertanto, le politiche e le procedure di sicurezza possono essere sviluppate, documentate e implementate da un unico pannello di controllo, ovvero attraverso il pannello di controllo del software hypervisor.
Costi
L’ambiente a server fisico è generalmente più costoso sia in termini di acquisto – se non altro per l’investimento immediato – sia in termini di manutenzione. Il sistema può guastarsi, gli aggiornamenti software sono continui e anche gli aggiornamenti hardware vanno presi in considerazione.
I costi sono decisamente inferiori per un server virtuale. Se ad esempio per qualunque ragione la vostra azienda ha bisogno di gestire molti server, allora – sempre che ciò trovi riscontro in base alle esigenze reali – può facilmente optare per il noleggio di più VM o anche acquistare un server fisico – o più server fisici se del caso – dove installare tanti server virtuali quanti ne sono necessari.
Chiaramente, le licenze del software VM (Hypervisor) hanno un costo e a seconda delle dimensioni dell’ambiente virtuali possono costare qualche migliaio di euro ciascuna all’anno.
Conclusioni
Come tutte le cose, entrambe le configurazioni, server fisico e server virtuali, hanno i loro pregi e difetti. La scelta dipende dalle esigenze della vostra azienda e non già da riflessioni orientate solamente sui costi e/o la facilità o meno di gestione. Quando fate queste scelte affidatevi a persone competenti e non lasciatevi ingannare dal vostro intuito o peggio ancora da chi non ha idea di quello che dice.