Novm sfida la definizione di cosa sia un contenitore e cosa sia una VM

Proprio quando pensavi che tutte le possibilità per hypervisor, contenitori e VM fossero esaurite, arriva un altro contendente per mescolare ingredienti freschi nella pentola.

Novm - prodotto sotto gli auspici di Google, sebbene non sia un prodotto Google ufficiale secondo la sua descrizione GitHub - è un hypervisor di tipo 2 (simile a VMware Workstation, piuttosto che VMware ESX) scritto in Go, sfruttando il KVM di Linux e focalizzato su eseguire applicazioni piuttosto che interi sistemi.

Curiosamente, "espone un dispositivo del filesystem come meccanismo principale per l'esecuzione dei guest", secondo la pagina del progetto. Invece di definire un'immagine disco da utilizzare con la VM, l'utente annota quali directory devono essere rese visibili a Novm e l'elenco può essere modificato in tempo reale, consentendo di aggiungere o rimuovere directory al volo mentre il sistema è in esecuzione.

I creatori di Novm - principalmente Adin Scannell, uno sviluppatore di software di sistema di Google - sottolineano diversi vantaggi rispetto ai contenitori per il loro sistema, oltre a rendere meno problematico la gestione delle istanze del disco. A differenza di un sistema basato su container, Novm può eseguire qualsiasi kernel sull'host che sa come avviare, quindi guest e host possono eseguire versioni completamente diverse di Linux con diversi mix di moduli. Inoltre, questo modello ha una sicurezza migliore rispetto ai container, poiché le uniche interfacce esposte sono quella dell'ABI x86 e dell'hypervisor stesso. ("È più probabile che i contenitori soffrano di falle di sicurezza poiché l'ospite può accedere all'intera interfaccia della chiamata di sistema del kernel", spiegano i creatori.)

In una presentazione di LinuxCon consegnata lo scorso agosto, Scannell (anche il creatore dell'utility Huptime) ha descritto alcuni di quelli che percepiva come i limiti dei contenitori. Sono fortemente dipendenti dal kernel dell'host, rendendo la sicurezza più difficile di quanto possa sembrare e creano problemi con lo stato del kernel condiviso, che è "complesso e difficile da isolare", poiché "la migrazione, la sospensione e il ripristino sono molto più difficili. " Piuttosto che provare a rendere i contenitori più simili alle VM, la sua idea con Novm era di provare a rendere una VM più simile a un contenitore che sfoggiava una distribuzione in stile Docker, poteva mappare nelle directory di altri file system con non più di un comando e poteva indirizzarlo alcuni di questi problemi.

Gli attuali svantaggi dell'approccio di Novm sono triplici: velocità (i carichi di lavoro ad alta intensità di I / O vengono forniti con molti avvertimenti), supporto per un numero molto ridotto di dispositivi hardware e supporto solo per i kernel Linux in questo momento. La seconda restrizione limita Novm all'esecuzione di applicazioni con stack moderno. Come ha detto Scannell, "Non puoi migrare il tuo antico e intoccabile sistema IT su Novm".

Un'analogia per l'esplosione di prodotti che esplorano lo spettro di possibilità tra hypervisor, VM e container è il modo in cui gli smartphone hanno subito una simile esplosione nei fattori di forma, dal telefono convenzionale fino al "phablet" che si è rivelato un successo sorprendente. Ogni fattore di forma soddisfaceva esigenze diverse per clienti diversi, anche se le esigenze non erano visibili ad altri clienti o ad altri produttori di smartphone.

Allo stesso modo, esperimenti come questi che esplorano il trasferimento della linea di demarcazione tra una VM e un contenitore hanno lo scopo di eliminare i pruriti che gli addetti IT potrebbero non sapere di avere. Chiaramente Docker è stato in grado di soddisfare un grande prurito, ma è del tutto possibile che progetti come Novm possano trovare e soddisfare altre esigenze che non sono state espresse.