Macchine virtuali e container non sono alternative: risolvono problemi diversi. Capire la differenza evita infrastrutture troppo pesanti o troppo fragili.
Di Marco Barbera · 4 min di lettura
In breve
Una macchina virtuale simula un computer completo, con il proprio sistema operativo; un container Docker impacchetta solo un'applicazione con ciò che le serve e condivide il sistema operativo del server. Le macchine virtuali sono adatte a gestionali tradizionali, sistemi Windows e servizi da isolare completamente; i container ad applicazioni web moderne da aggiornare e replicare spesso. In molte aziende le due tecnologie convivono: i container girano dentro macchine virtuali.
"Dobbiamo passare a Docker?" Me lo chiedono spesso, di solito dopo che qualcuno in azienda ha letto che "ormai si fa tutto con i container".
La risposta onesta è: dipende da cosa deve girare. Docker non sostituisce le macchine virtuali. Risolve un problema diverso, e lo risolve molto bene.
Immagini un edificio di uffici.
Una macchina virtuale è un appartamento completo: ingresso, impianti, cucina propri. È indipendente e isolato dagli altri, ma occupa spazio e richiede manutenzione come una casa vera. Ogni macchina virtuale ha il suo sistema operativo, che va aggiornato e protetto.
Un container è una postazione arredata in un open space: scrivania, computer e documenti pronti, ma impianti e servizi condivisi con l'edificio. Si allestisce in pochi secondi, si sposta facilmente, se ne aggiungono dieci in un attimo. Condivide però il sistema operativo del server che lo ospita.
Docker è lo strumento più diffuso per creare e far girare container. Ogni applicazione viene distribuita come immagine: un pacchetto che contiene il programma e tutto ciò che gli serve per funzionare, sempre uguale ovunque venga avviato.
Sono gli scenari tipici delle piattaforme di virtualizzazione come Proxmox, VMware o XCP-ng, che ho confrontato nell'articolo Proxmox, VMware, Xen e XCP-ng: le differenze che contano.
Il vantaggio economico è concreto: sullo stesso server girano molte più applicazioni, perché ogni container usa solo le risorse che gli servono davvero.
Nella pratica le due tecnologie lavorano insieme. Un'infrastruttura tipica che progetto per una PMI ha questa forma:
Livello
Cosa contiene
Perché
Server fisico
L'hypervisor, per esempio Proxmox
Sfrutta l'hardware e gestisce i backup
Macchine virtuali
Gestionale, sistemi Windows, servizi critici
Isolamento completo
Una macchina virtuale Linux con Docker
Siti, applicazioni web, strumenti interni
Leggerezza e aggiornamenti rapidi
Così si ottengono i vantaggi di entrambe: l'isolamento delle macchine virtuali e l'agilità dei container. E il backup dell'intera macchina virtuale protegge anche tutti i container che contiene.
Il primo errore è containerizzare tutto per principio. Un gestionale nato vent'anni fa non diventa moderno perché gira in un container: diventa solo più difficile da gestire.
Il secondo è dimenticare i dati. Un container si cancella e si ricrea in un attimo; i dati no. Database e file caricati dagli utenti devono stare in volumi persistenti, inclusi nei backup e provati in ripristino.
Il terzo è lasciare i container senza manutenzione. Le immagini vanno aggiornate come qualsiasi software: un container dimenticato è una porta lasciata aperta.
Per molte applicazioni web sì. Per sistemi operativi diversi, software tradizionali o servizi che richiedono isolamento completo, le macchine virtuali restano necessarie.
L'isolamento è minore, perché condividono il sistema operativo del server. Con immagini aggiornate, permessi ridotti e container separati per servizio, il livello di sicurezza è adeguato alla maggior parte delle applicazioni web.
No. Docker si installa su qualsiasi server Linux, anche su una macchina virtuale già esistente. È spesso la soluzione più semplice per iniziare.
Se sta valutando come organizzare server e applicazioni, trova come lavoro nella pagina Hosting e infrastrutture. Per parlarne, mi scriva dalla pagina Contatti.
Scrivimi
Marco Barbera, digital strategist. Si occupa di strategia digitale, web marketing e intelligenza artificiale applicata al business. Chi sono