2015-05-22 18 views
15

Recentemente ho implementato una piccola app Haskell con finestra mobile, utilizzando "scratch-haskell" come immagine di base.Docker Container confrontato con Unikernel

Poi ho letto di Unikernels e HALVM. E mi sono un po 'confuso.

Il contenitore docker ha una larghezza di circa 6 MB. Un Unikernel (con la stessa app di haskell) sarebbe grosso modo delle stesse dimensioni.

L'Unikernel gira direttamente sull'hypervisor Xen, mentre l'immagine docker (o LXC generale) gira su una normale distribuzione Linux, che gira su bare metal.

Ora ho la "scelta" di eseguire Linux con più contenitori minimi O una macchina Xen con più piccoli Unikernel.

Ma quali sono i vantaggi e gli svantaggi di queste due soluzioni? È uno più sicuro dell'altro? E ci sono differenze di prestazioni significative tra loro?

+1

unikernel essere abbastanza recente, penso che si dovrebbe eseguire i propri test – user2915097

risposta

10

da http://wiki.xenproject.org/wiki/Unikernels

Cosa Unikernels Fornire?

Unikernels normalmente genera un ambiente di runtime singolare destinato a abilitare singole applicazioni create esclusivamente con tale ambiente. In genere, questo ambiente non ha la capacità di generare processi secondari, esegue comandi shell, crea più thread o processi fork. Invece, forniscono una pura incarnazione del runtime lingua targetted, sia esso OCaml, Haskell, Java, Erlang o qualche altro ambiente .

Unikernels Versus Linux Containers

Molto è stato fatto di recente dei vantaggi di Linux Container soluzioni più tradizionali macchine virtuali. Si dice dai sostenitori dei container che il loro ingombro di memoria leggero, il tempo di avvio rapido e la facilità dell'imballaggio rendono i contenitori il futuro della virtualizzazione. Sebbene questi aspetti dei container di siano certamente degni di nota, non rappresentano la fine dello del mondo dell'hypervisor. In effetti, Unikernels può ridurre l'utilità a lungo termine dei contenitori di .

Unikernels facilitare le stesse caratteristiche desiderabili descritte da proponenti contenitore, con l'aggiunta di un assolutamente splendida storia sicurezza che poche altre soluzioni possono abbinare.

Quindi, se si desidera solo eseguire Unikernels applicazione Haskell potrebbero funzionare per voi, e dovrebbero avere anche meno spese generali di finestra mobile (e finestra mobile in testa è molto piccola comunque), ma se la vostra applicazione avrà bisogno di qualche ambiente preparato, necessità comunicare con la finestra mobile del software non Unikernels è una scelta migliore. Suppongo sia troppo presto per dire che Unikernel sarà utile o diffuso o meno, solo il tempo lo dirà.

+0

anche se, non sono unikernels diventando sempre più potenti col passare del tempo? in termini di acquisizione di threading/forking e accesso a storage ecc. Vedo potenziali convergenze ... –

+1

Il threading e il biforcarsi sono antitetici alla definizione di unikernel. – bahamat

2

Gli Unikernali sono grandi per le cose che sono apolidi. Quando inizi a richiedere l'accesso al disco, è meglio usare Docker.

Ecco perché tutti i "killer" applicazioni per unikernals sono configurati staticamente kernel, come le pagine web statiche o pile software di rete definita.

+2

Sono abbastanza sicuro che unikernels può essere reso statico se necessario. Forse non esponendo una sorta di I/O del disco, ma ci sono altri mezzi per la persistenza. –

2

Ci sono molti buoni explations Ecco un semplice:

Unikernel sono macchine virtuali, ma specializzata e ottimizzato per la particolare applicazione.

enter image description here

+1

Qui manca la finestra mobile in esecuzione bare metal senza hypervisor/no VM – bodrin

+0

Ben illustrata, ma si prega di elencare i riferimenti. – securecurve

Problemi correlati