Caratteristiche e differenza tra Virtual machine e Container in informatica

Caratteristiche e differenza tra Virtual machine e Container in informatica

Virtual machine VS Container

In informatica, seppur macchine virtuali e container sembrano molto simili tra loro sfruttando gli stessi benefici legati all’isolamento delle risorse, possono essere visti come modi alternativi e distinti per la creazione di un ambiente sul quale esegue un programma software, presentando parecchie differenze legate intrinsecamente al modo scelto per virtualizzare il nodo di computing.

I vantaggi e gli svantaggi principali delle macchine virtuali possono essere schematizzati come segue:

  • Flessibilità: ogni applicazione ha il suo ambiente di esecuzione specifico (versione kernel, librerie) per il corretto funzionamento di questa;
  • Esecuzione del software legacy: la possibilità di utilizzare programmi sviluppati con linguaggi di programmazione non recenti e che non sono sostituibili dati i costi per una nuova implementazione per i sistemi più recenti;
  • Eccellente isolamento: l’esecuzione di una virtual machine, in condizioni nominali, non ‘disturba’ l’esecuzione di altre virtual machine dispiegate su una macchina host poiché l’isolamento è dettato dall’hardware (cpu, memory);
  • Live migration: copia e spostamento di una macchina virtuale su macchine fisiche differenti, anche durante l’esecuzione (migrazione delle macchine virtuali);
  • Sicurezza: l’hypervisor responsabile di eseguire le macchine virtuale guest è molto ridotto esponendo una superficie di attacco minore;
  • Overhead: occupazione aggiuntiva di memoria (centinaia di MB) e di CPU per l’esecuzione dei sistemi operativi guest;
  • Upgrade Time: necessita di configurare e tenere aggiornato ogni istanza del sistema operativo guest;
  • Booting Time: decine di secondi o più prima che la macchina virtuale sia up e running non sono accettabili per applicazioni “fire and dye”.

Caratteristiche e differenza tra Virtual machine e Container in informatica

Viceversa, i vantaggi e gli svantaggi principali dei container sono:

  • Tempo di avvio più rapido: con la virtualizzazione del solo sistema operativo i tempi di avvio si riducono notevolmente rispetto all’esecuzione di una virtual machine;
  • Deployment semplificato: ogni container include non solo l’applicazione – servizio ma anche tutto il pacchetto utile per eseguirlo, semplificando ogni operazione di deployment e facilitando la distribuzione su differenti sistemi operativi senza ulteriori sforzi di configurazione;
  • Efficienza operativa: i contenitori occupano minor spazio su disco rispetto alle VM e hanno un consumo di CPU basso, rendono il sistema più agile, migliorando l’efficienza operativa, lo sviluppo e la gestione delle applicazioni;
  • Sicurezza: il sistema operativo che ospita i container ha un numero di librerie maggiore rispetto all’hypervisor per garantire il corretto funzionamento dei container; ne consegue una superficie d’attacco maggiore;
  • Flessibilità:il sistema operativo di tutti i container deve coincidere con quello in esecuzione sulla macchina host, dato che il kernel è condiviso; ne consegue l’impossibilità di usare un sistema operativo differente per ogni container;
  • Live migration: a differenze delle virtual machine risulta essere più difficile da attuare poiché necessita dell’identificazione delle zone di memoria usate e proprie del container (che si vuole migrare) in kernel space prima di procedere con la migrazione su un’altra macchina host.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *