Esperienze dalla pratica

Macchina virtuale, container o bare metal: scegliere in base al carico, oltre le mode

VM, container o bare metal? DAXS sceglie in base a supporto del produttore, carico misurato, dati, ripristino e personale operativo.

Logo DAXS sopra tre simboli concettuali per macchina virtuale, container applicativi ed esecuzione fisica diretta.

Macchina virtuale, container o bare metal? La modalità adatta dipende dall’applicazione, dal supporto del produttore e da chi la gestirà nel tempo. Un container non rende automaticamente manutenibile un vecchio ERP. Un server fisico non è automaticamente più veloce. E una VM non giustifica trascurare backup e aggiornamenti. DAXS parte quindi dal carico concreto: sistema operativo, dipendenze, dati, ripartenza e carico misurabile.

Il confronto risponde alla domanda dove convenga eseguire un servizio. Se la scelta dei container applicativi è già fatta, segue un’altra domanda: Docker Compose o Kubernetes per la gestione? Sono due decisioni da prendere separatamente.

Che cosa viene separato?

Una macchina virtuale riceve hardware virtuale e un proprio sistema operativo guest. Permette, per esempio, un guest Windows Server accanto a guest Linux sullo stesso hypervisor. La VM è un’unità ben delimitata per patch del sistema, snapshot e ripristino; l’applicazione deve comunque essere salvata in modo coerente. In Proxmox VE questa modalità si basa su KVM.

Un container condivide il kernel dell’host. Vanno distinte due forme: un container Proxmox LXC è un sistema Linux leggero, mentre un container applicativo OCI racchiude normalmente una singola applicazione con le sue dipendenze. Nessuno dei due è una VM Windows o offre un kernel isolato separato. Per OCI servono anche build delle immagini curate, un registry, aggiornamenti di sicurezza e una soluzione esplicita per i dati persistenti. Una VM Linux come host dei container può delimitare utilmente gestione, backup e permessi; non è obbligatoria tecnicamente in ogni scenario.

Bare Metal esegue sistema operativo e applicazione direttamente su un server fisico. Può essere adatto a vincoli del produttore, hardware speciale o requisiti di latenza dimostrati. Riduce però il consolidamento di quell’host e lega maggiormente manutenzione, ricambi e ripartenza alla macchina fisica. Anche qui contano misure e impegni di supporto, non affermazioni generiche sulle prestazioni.

Cinque carichi tipici e il primo percorso di verifica

I percorsi seguenti sono punti di partenza per una prova, non approvazioni generali di prodotti. Documentazione del produttore, contratto di licenza e prova di ripristino rendono la decisione solida.

Prima il carico, poi la modalità operativa
Applicazione Percorso di verifica Domanda critica
ERP Windows con database e supporto del produttore VM come naturale punto di partenza Quale combinazione di sistema guest, hypervisor, SQL e licenze è effettivamente supportata?
Servizio web Linux sviluppato internamente con build riproducibile Container applicativo OCI, eventualmente su VM Linux Chi crea e aggiorna le immagini, verifica le vulnerabilità e gestisce registry, segreti e log?
Appliance Linux di un produttore Verificare prima una VM supportata Il produttore accetta virtualizzazione, dispositivi virtuali e percorso di backup/ripristino previsto?
Database con carico elevato in scrittura VM o bare metal in base alle misure; container solo con persistenza collaudata Come si comportano latenza p95/p99, IOPS, replica e ripristino coerente durante i picchi?
Servizio con dongle, scheda speciale o accesso diretto ai dispositivi Provare il passthrough della VM; considerare bare metal Supporto, assegnazione dei dispositivi e ripartenza restano possibili dopo la sostituzione dell’host?

Un container per database non è sbagliato in sé. Il suo filesystem scrivibile non è però il posto per dati che devono sopravvivere alla sostituzione del container. Volumi, coerenza, backup e ripristino vanno pianificati esplicitamente. Viceversa, una VM non trasforma un backup non collaudato del database in una ripartenza affidabile.

Sei verifiche per decidere

  1. Produttore e licenza: Verificare per iscritto sistemi, hypervisor, runtime dei container e vincoli hardware supportati. I diritti Windows Server dipendono, fra l’altro, da edizione, core licenziati, numero di ambienti virtuali e contratto; «una VM» non implica un prezzo fisso.
  2. Isolamento e permessi: Quale servizio può influenzarne un altro? I container hanno namespace e limiti alle risorse, ma condividono il kernel dell’host. Runtime, privilegi, mount, rete e aggiornamenti fanno parte della verifica di sicurezza.
  3. Misurare le prestazioni: Rilevare con dati reali carico CPU, RAM e I/O, latenza p95/p99, picchi e finestre batch. Scegliere bare metal solo per un presunto «overhead di virtualizzazione» può impegnare capacità costosa senza risolvere il problema reale di storage o rete.
  4. Dati e ripristino: Definire RPO e RTO per servizio. Provare un ripristino completo su un altro host, includendo database, configurazione, credenziali e dipendenze.
  5. Modifiche e personale: Chi applica le patch al guest o al kernel host? Chi ricrea le immagini? Chi sa gestire di notte un rollback fallito o un cambio hardware? Le competenze disponibili limitano il numero di piattaforme gestibili sensatamente in parallelo.
  6. Dominio di guasto: Considerare separatamente host, storage, rete e backup. Né un solo server bare metal né più container su un unico host diventano altamente disponibili grazie al loro nome.

Confrontare l’impegno prima di promettere risparmi

Su tre o cinque anni, confrontare in ogni colonna la stessa applicazione con uguale carico e obiettivo di ripartenza. Registrare migrazione e avvio iniziali, hardware e ricambi, diritti di sistemi e applicazioni, supporto di hypervisor o runtime, energia, backup, monitoraggio e ore annue del personale. Per OCI si aggiungono, ad esempio, pipeline di build, registry, manutenzione delle immagini ed eventuale orchestrazione. Bare metal può richiedere hardware sostitutivo e finestre di manutenzione diverse. Per le VM contano capacità host e sistemi guest. Un cluster esistente è «gratuito» per il nuovo servizio solo se riserve, licenze e risorse operative sono realmente disponibili.

La formula di base verificabile è: costo totale su n anni = avvio e migrazione iniziali + n × (licenze annue + supporto + energia + backup + ore operative × tariffa oraria interna) + rinnovo pianificato. n è tre o cinque. Nessuna modalità offre un vantaggio generale senza offerte concrete, misure di carico e condizioni di supporto. Nel confronto deve emergere anche il costo del mancato raggiungimento di RPO/RTO, senza escluderlo dal calcolo.

Come DAXS definirebbe la modalità operativa

DAXS preparerebbe prima un breve elenco di applicazioni con responsabile, flusso dati, supporto del produttore, dipendenze e obiettivo di ripristino. Seguono prove tecniche su due candidati realistici: carico simile alla produzione, patch e upgrade, guasto di host o dispositivo e ripristino su un’altra macchina. Il risultato è una decisione motivata per applicazione, non l’obbligo di spostare tutti i servizi sulla stessa piattaforma.

Le VM Windows e Linux esistenti si possono spesso valutare gradualmente; Proxmox in azienda descrive la base di virtualizzazione. Se i container convincono, il confronto tra Docker Compose e Kubernetes aiuta nel passo successivo. Per un carico concreto, tramite Contatti DAXS può tradurre supporto, misure e ripristino in una scelta operativa condivisa.

Fonti: Proxmox VE: KVM e LXC · Docker Engine: modello di sicurezza · Docker Engine: dati persistenti · Microsoft: Windows Server Virtualization Licensing Guidance.