Il Data Center (in Italia spesso chiamato CED – Centro Elaborazione Dati) è un’area attrezzata per il trattamento e l’archiviazione dei dati. È l’ambiente in cui risiedono i server (fisici o virtuali) che erogano servizi fondamentali: web, posta, database, autenticazione, file sharing, VPN, ecc.
I server si identificano in base al servizio che erogano. In una rete aziendale reale, un CED ospita spesso più ruoli contemporaneamente (o gli stessi ruoli replicati/clusterizzati).
Per piccole/medie aziende può bastare un server standalone (autonomo), spesso in formato tower. Crescendo, si passa a rack e, quando lo spazio è critico, a blade.
Una server farm (o web farm) è un insieme di server collocati in un unico ambiente (data center) per centralizzare gestione, manutenzione e sicurezza. In server farm spesso si usano cluster per carichi pesanti o critici (email, web, database, rendering, grid computing), con ridondanza fisica per tolleranza ai guasti.
Un’azienda può scegliere un CED interno (dentro il perimetro fisico aziendale) oppure esternalizzare affidandosi a provider specializzati. La scelta dipende da: sicurezza, privacy, costi, continuità, competenze interne e tipo di servizi esposti verso Internet.
L’hosting è il servizio più diffuso ed economico: un provider ospita (to host) il tuo sito o la tua applicazione su un web server della server farm, rendendolo accessibile da Internet. Può essere condiviso o dedicato, e differisce anche per piattaforma (Windows/Linux).
Con la colocation in housing l’azienda colloca nel data center un server di sua proprietà e paga principalmente lo spazio fisico, alimentazione e rete. La gestione hardware/software resta a carico del cliente, ma la server farm garantisce sicurezza e connettività ad alte prestazioni.
Nel modello server dedicato il cliente noleggia un server a uso esclusivo: paga collocazione + noleggio + connettività. L’amministrazione software resta al cliente, mentre in caso di guasto hardware è il provider a ripristinare rapidamente.
Un VPS è una macchina virtuale fornita dal provider: il cliente gestisce la VM, il provider gestisce il server fisico. Il costo è più basso di un dedicato perché l’hardware è condiviso, ma l’isolamento è garantito dalla virtualizzazione.
La maggior parte dei server in web farm eroga servizi di rete, quindi la connettività è critica. Una server farm deve avere allacciamenti ridondanti alle dorsali per sostenere banda e velocità necessarie a centinaia di armadi. La rete interna si distribuisce tramite switch/firewall/gateway del provider, spesso in fibra ottica.
La server virtualization permette di eseguire più macchine virtuali sullo stesso server fisico: le VM condividono le risorse hardware ma restano separate logicamente. L’idea chiave è astrarre i servizi IT dalle dipendenze (hardware, rete, storage), facilitando gestione e migrazione.
In ambiente Microsoft vengono presentate diverse tecnologie di virtualizzazione, ognuna con un obiettivo specifico. È fondamentale non confondere i livelli (presentazione, applicazioni, desktop, server, storage, rete).
Hyper-V (da Windows Server 2008) introduce un hypervisor per la server virtualization. Il server che esegue Hyper-V è l’host; le VM sono i guest. Hyper-V implementa virtualizzazione hardware e consente dischi virtuali, switch virtuali e dispositivi virtuali assegnabili alle VM.
Per virtualizzare un sistema operativo in modo semplice, una soluzione molto diffusa è Oracle VM VirtualBox (gratuito, open source, multipiattaforma). Consente di testare molte combinazioni (Windows/Linux su Mac, Linux su Windows, ecc.) e può collegarsi a supporti iSCSI usandoli come dischi virtuali.
# Esempio (didattico) di concetti da saper spiegare a voce:
# - ISO: immagine del supporto d'installazione
# - iSCSI: LUN remota vista come disco locale
# - Hypervisor: strato che crea/gestisce le VM
# - VM: guest che usa risorse virtualizzate (CPU/RAM/Disk/Net)
Se non vuoi virtualizzare l’intero sistema operativo, puoi virtualizzare solo le applicazioni. Un esempio è SVS, che si interpone tra OS e processo d’installazione tracciando file e modifiche al registro, evitando conflitti e instabilità. L’ambiente virtuale di una singola app è chiamato layer: attivabile/disattivabile, rendendo l’app “visibile” o “invisibile” senza impattare permanentemente il sistema.
Quando progetti una soluzione, devi saper rispondere a queste domande in modo tecnico.