Ricerca nel sito web

Docker vs VMWare: come si accumulano?


Si tratta di uno scontro tra titani della virtualizzazione: una macchina virtuale, l'altra una tecnologia di containerizzazione. In realtà, entrambe sono tecnologie complementari, poiché la virtualizzazione hardware e la containerizzazione hanno ciascuna le loro qualità distinte e possono essere utilizzate in tandem per ottenere vantaggi combinatori. Diamo un'occhiata a ciascuno di essi per scoprire come si accumulano l'uno contro l'altro e come i due possono essere utilizzati in tandem per ottenere la massima agilità.

Contenitori e macchine virtuali a confronto

In poche parole, i container forniscono l'isolamento dei processi a livello di sistema operativo, mentre le macchine virtuali offrono l'isolamento a livello di astrazione dell'hardware (ad esempio, la virtualizzazione dell'hardware). Quindi, nei casi d'uso IaaS, la virtualizzazione delle macchine è la soluzione ideale, mentre i container sono più adatti per l'imballaggio/spedizione di software portatili e modulari. Anche in questo caso, le due tecnologie possono essere utilizzate insieme per ottenere ulteriori vantaggi, ad esempio i container Docker possono essere creati all'interno delle macchine virtuali per rendere una soluzione ultraportatile.

VMware

Questo fornitore di software di virtualizzazione leader del settore non ha bisogno di presentazioni, poiché i suoi prodotti e le sue soluzioni hanno aperto la strada a una generazione di tecnologie di virtualizzazione. vSphere è la suite di virtualizzazione di punta di VMware, composta da una miriade di strumenti e servizi come ESXi, vCenter Server, vSphere Client, VMFS, SDK e altro ancora. La suite funziona come una sorta di sistema operativo di virtualizzazione del cloud computing, dimostrando una piattaforma operativa virtuale per sistemi operativi guest come Windows, *nix e così via.

Al centro della suite vSphere c'è ESXi: la principale tecnologia hypervisor che rende possibile la virtualizzazione dell'hardware. Gli hypervisor consentono a più sistemi operativi di risiedere su un singolo host con il proprio set di risorse dedicate, in modo che ogni sistema operativo guest sembri avere CPU, memoria e altre risorse di sistema dedicate al proprio utilizzo. ESXi viene eseguito direttamente sull'hardware del server bare-metal, senza bisogno di un sistema operativo sottostante preesistente. Una volta installato, crea ed esegue il proprio microkernel composto da 3 interfacce:

  • Hardware
  • Sistema ospiti
  • Sistema operativo console/console di servizio

Sebbene sia stato uno dei primi pionieri della virtualizzazione, VMware non è più l'unico spettacolo in città: anche Microsoft Hyper-V, Citrix XenServer e Oracle VirtualBox sono tecnologie hypervisor popolari. Sempre più spesso, anche le aziende stanno adottando Docker come potenziale disrupter di VMware, ma come vedremo presto, non compete direttamente con VMware, nonostante abbia preso d'assalto lo spazio della virtualizzazione.

Scaricatore

L'intento principale del progetto Docker è quello di consentire agli sviluppatori di creare, distribuire ed eseguire applicazioni più facilmente attraverso l'uso di container. Chiaramente, per le iniziative DevOps e CI/CD, la portabilità e la coerenza delle applicazioni sono esigenze cruciali che Docker soddisfa abbastanza bene. I container, creati a partire da immagini di container, consentono di raggruppare un'applicazione con tutte le librerie, le dipendenze e le risorse necessarie per una facile implementazione. Utilizzando le funzionalità del kernel Linux, come la spaziatura dei nomi e i gruppi di controllo, per creare contenitori sul sistema operativo host, la distribuzione delle applicazioni può essere automatizzata e semplificata dallo sviluppo fino alla produzione.

Architettura Docker. Fonte: Docker.

Nella versione 0.9, Docker ha sostituito LXC con la propria libreria libcontainer scritta in Go, consentendo un supporto nativo più ampio per diversi fornitori. Ora alla versione 19.x, Docker offre ora il supporto nativo per Windows, semplificando la gestione degli host e dei container Docker sui computer di sviluppo Windows. Nel frattempo, l'attività Docker Enterprise è stata acquisita da Mirantis, il fornitore di Kubernetes As A Service.

Sia per gli sviluppatori che per gli operatori, Docker offre i seguenti vantaggi di alto livello, tra gli altri:

  • Velocità/agilità di distribuzione: i container Docker ospitano i requisiti minimi per l'esecuzione dell'applicazione, consentendo un'implementazione rapida e leggera.
  • Portabilità: poiché i container sono essenzialmente bundle di applicazioni indipendenti e autosufficienti, possono essere eseguiti su più computer senza problemi di compatibilità.
  • Riutilizzo: i contenitori possono essere sottoposti a controllo delle versioni, archiviati, condivisi e utilizzati per eseguire il rollback delle versioni precedenti di un'applicazione. Le configurazioni della piattaforma possono essere gestite essenzialmente come codice.

Docker Vs VMware fianco a fianco

Sebbene sia VMware che Docker possano essere classificati come tecnologie di virtualizzazione, i casi d'uso ottimali per ciascuno di essi possono essere molto diversi. Ad esempio, VMware emula l'hardware virtuale e deve tenere conto di tutti i requisiti di sistema sottostanti: di conseguenza, le immagini delle macchine virtuali sono significativamente più grandi dei container. Detto questo, è anche possibile eseguire molte istanze discrete del sistema operativo in parallelo su un singolo host con VMware, consentendo alle organizzazioni di creare soluzioni IaaS in-house.

Poiché i contenitori Docker vengono eseguiti dal motore Docker (anziché da un hypervisor), non sono completamente isolati. Tuttavia, il compromesso è un ingombro ridotto: a differenza di VMware, Docker non crea un intero sistema operativo virtuale, ma tutti i componenti necessari non ancora in esecuzione sulla macchina host vengono impacchettati all'interno del container con l'applicazione. Poiché il kernel host è condiviso tra i container Docker, le applicazioni vengono fornite solo con ciò di cui hanno bisogno per l'esecuzione, né più né meno. Ciò rende le applicazioni Docker più semplici e leggere da distribuire e più veloci da avviare rispetto alle macchine virtuali.

I container Docker sono generalmente più veloci e richiedono meno risorse rispetto alle macchine virtuali, ma la virtualizzazione completa di VMware offre comunque i suoi vantaggi principali, ovvero la sicurezza e l'isolamento. Poiché le macchine virtuali consentono un vero isolamento a livello di hardware, la possibilità di interferenze e/o sfruttamento è meno probabile rispetto ai container Docker. Quindi, per la portabilità di applicazioni/software, Docker è la soluzione più sicura. Per la portabilità delle macchine e un maggiore isolamento, scegli VMware. E indipendentemente dalla tecnologia di virtualizzazione selezionata, UpGuard può convalidare automaticamente l'integrità e la sicurezza delle macchine virtuali, dei container Docker, delle app Web e altro ancora.

Domande frequenti su Docker Vs VMware

Quali sono le principali differenze?

VMware emula l'hardware della macchina, mentre Docker emula il sistema operativo in cui viene eseguita l'applicazione. Docker è una tecnologia di virtualizzazione molto più leggera poiché non deve emulare le risorse hardware del server. L'attenzione si concentra sull'astrazione dell'ambiente richiesto dall'app, piuttosto che sul server fisico. VMware, proprio come l'hardware delle macchine, consente di installare sistemi operativi e altre attività che richiedono un server completo.

Docker è solo una montatura o un miglioramento rispetto a VMware?

I casi d'uso di Docker sono guidati dai progressi nel modo in cui le applicazioni vengono architettate e distribuite. Piuttosto che affidarsi ad applicazioni monolitiche, le aziende su scala web hanno scoperto i vantaggi dell'architettura a microservizi, che includono scalabilità e alta disponibilità. I container Docker offrono agilità e affidabilità per i microservizi. L'ecosistema che è stato costruito attorno ai container, inclusi strumenti come Kubernetes e Apache Mesos, rende tangibili i vantaggi per le organizzazioni IT. Gli strumenti di Docker, tra cui l'interfaccia della riga di comando, Docker Compose e Docker Swarm, offrono un supporto eccellente per la distribuzione di app native per il cloud.

Docker è più veloce di VMware?

Il provisioning e l'avvio di un container Docker sono necessariamente più veloci rispetto all'avvio di un container VMware. Dopotutto, un container Docker è una risorsa molto più leggera. Il contenitore ha un sovraccarico minimo, rispetto alla RAM e ad altri requisiti di una macchina virtuale. Tuttavia, ciò non significa che quando si eseguono i container le app saranno necessariamente più veloci di quelle eseguite su una macchina virtuale VMware. Le piattaforme di macchine virtuali come VMware ESXi, Xen e KVM hanno prestazioni che rivaleggiano con quelle del bare metal. L'ambiente specifico dell'applicazione determinerà la velocità, comprese le specifiche della macchina, la RAM e altri fattori.

Puoi eseguire Docker in una macchina virtuale?

Poiché VMware e Docker si occupano di virtualizzazione a diversi livelli, non sono tecnologie strettamente concorrenti, ma sono anche tecnologie complementari. È possibile utilizzarli in tandem e molte organizzazioni lo fanno. È quindi possibile eseguire Docker in un sistema operativo come Ubuntu o Photon di VMware, in esecuzione su una macchina virtuale VMware ESXi.

Combinazione di Docker e VMware

L'esecuzione di Docker su macchine virtuali VMware non solo è possibile, ma molti team IT si affidano a questa configurazione per la distribuzione delle applicazioni. Sebbene un prodotto desktop, VMware Workstation, sia disponibile per gli sviluppatori durante lo sviluppo, non è la configurazione che funziona per la produzione. Invece, ti consigliamo di utilizzare prodotti VMware come VMware vSphere ed ESXi, che ti forniscono macchine virtuali ad alte prestazioni per i carichi di lavoro di produzione. ESXi di VMware è un hypervisor bare metal di tipo 1 progettato appositamente per garantire sicurezza ed efficienza. Si installa direttamente sul tuo server e ha il controllo diretto delle risorse del server fisico. ESXi ha un ingombro ridotto, arrivando a soli 150 MB, con supporto per la configurazione di macchine virtuali fino a 6 TB di RAM, con 128 CPU e 120 dispositivi.

Sono disponibili numerose opzioni per il sistema operativo effettivo utilizzato su una macchina virtuale VMware per l'esecuzione di container. Un approccio efficace consiste nell'utilizzare Photon di VMware, un sistema operativo incentrato sui container, leggero e ottimizzato per le prestazioni proprio per questo scopo. Un'altra opzione è quella di eseguire le distribuzioni più diffuse che potresti già utilizzare, come Ubuntu, CentOS o Debian, che funzionano perfettamente con i prodotti VMware. Oltre a queste configurazioni, è anche semplice per le app containerizzate comunicare con i servizi in esecuzione su macchine virtuali VMware o altri tipi di macchine virtuali. Ciò significa che è possibile combinare host Docker e server virtuali VMware nel data center. Le app Docker possono essere distribuite anche su macchine virtuali nel cloud, come AWS, Azure o Google Cloud.

Di seguito sono riportati alcuni problemi comuni riscontrati durante l'esecuzione di Docker su macchine virtuali VMware:

  • La migrazione dell'host virtuale VMotion interrompe l'accesso alle risorse fisiche a una macchina virtuale, causando problemi per le applicazioni Dockerized in esecuzione nella macchina virtuale.
  • Un elevato livello di CPU ready (una metrica del momento in cui una macchina virtuale era pronta ma non poteva essere eseguita su una CPU fisica) può causare problemi di prestazioni per le applicazioni nei contenitori Docker.
  • Sebbene VMware consenta l'acquisizione di snapshot delle macchine virtuali, durante gli snapshot le risorse di I/O disponibili sulla macchina vengono ridotte, causando problemi o interruzioni per i container Docker.

È necessario essere consapevoli di questi problemi quando si lavora insieme con Docker e VMware e adottare misure per mitigarli.

Il futuro della virtualizzazione: Docker sostituirà VMware?

Il futuro della virtualizzazione probabilmente includerà un uso molto maggiore dei container e Docker probabilmente ne trarrà vantaggio. Ci sono potenti ragioni dietro le tendenze al rialzo di Docker e l'utilizzo delle tecnologie correlate. Per prima cosa, i container consentono alle organizzazioni di essere più agili poiché si distribuiscono così rapidamente. L'avvio dei container è più semplice e veloce per gli sviluppatori per testare il codice, mentre anche il deployment è più veloce.

Con Docker è possibile eseguire il deployment su bare metal, macchine virtuali, AWS, Azure o altri ambienti di produzione. Non solo i container stanno introducendo una maggiore efficienza nell'orchestrazione, ma anche una parte significativa della tecnologia dei container è open source. Ciò favorisce una maggiore innovazione in tutta la comunità, con conseguenti soluzioni migliori accessibili a tutti, riducendo al contempo i costi. Altre tendenze come l'hosting severless promuovono anche la tesi generale di una distribuzione di applicazioni più leggera, con i container che facilitano molto di questo. In futuro, è probabile che sempre più organizzazioni seguano il mantra "preoccupati della tua applicazione, non dell'ambiente". ”

Tutte queste tendenze suggeriscono un futuro in cui tecnologie come Docker e Kubernetes avranno un ruolo più importante da svolgere. Detto questo, è probabile che le macchine virtuali rimangano prevalenti, almeno per alcuni casi d'uso. I container raggiungono un isolamento inferiore rispetto alle macchine virtuali e quindi tendono a essere visti come meno sicuri. Per i casi d'uso in cui è richiesta una maggiore sicurezza, le macchine virtuali potrebbero rimanere una tecnologia superiore. Inoltre, lo stoccaggio persistente è più difficile con i container. Si tratta di problemi con cui i container lottano, ma che potrebbero migliorare notevolmente in futuro. Se così fosse, la necessità di macchine virtuali potrebbe diminuire ulteriormente, ma resta da vedere.

VMware, da parte sua, potrebbe trarre vantaggio dal passaggio al cloud da parte delle aziende che stanno spostando le app esistenti nel cloud. In questi casi, molte di queste organizzazioni non sono pronte per un'adozione su larga scala dei container, ma possono trarre vantaggio dai prodotti cloud di VMware come VMware Cloud o VMware Hybrid Cloud Platform.

Come scegliere tra Docker e VMware

>

Come abbiamo visto, la complementarietà di Docker e VMware significa che invece di chiedersi "dovremmo usare Docker vs VMware", molte di queste organizzazioni dovrebbero invece chiedersi "come usiamo i due insieme". Tuttavia, se la tua situazione richiede uno e non entrambi, queste linee guida possono aiutarti a fare la selezione. Innanzitutto, se si esegue la migrazione di un'applicazione monolitica dall'hosting locale e il porting dell'applicazione su contenitori richiederà un investimento di sviluppo inaccettabile, le macchine virtuali VMware sono una soluzione ovvia. Inoltre, se desideri che la tua applicazione disponga di un proprio spazio utente e di uno storage persistente con isolamento a livello di sistema operativo, VMware, che funziona con tecnologie come Intel VT o AMD-V, è anche la soluzione migliore per le tue esigenze. Se le tue esigenze IT richiedono l'esecuzione e la gestione di più sistemi operativi e l'accesso a tutte le funzionalità e le risorse del sistema operativo, anche in questo caso le macchine virtuali saranno la soluzione ideale.

D'altra parte, per le situazioni in cui l'attenzione è rivolta all'applicazione, con il sistema operativo specifico e le sue funzionalità irrilevanti per l'app, i contenitori Docker sono l'ideale. Se si implementa un'architettura distribuita con ogni applicazione eseguita come microservizio, Docker è ideale per la distribuzione di questo tipo di applicazioni. Ogni applicazione viene eseguita nel proprio container e piattaforme come Kubernetes consentono di gestire cluster di container che possono essere ospitati su numerosi server nel cloud.

Indipendentemente dallo strumento che si sceglie per utilizzare, sia Docker che VMware possono migliorare l'utilizzo e l'efficienza del server, oltre a ridurre i costi complessivi di implementazione.

Proteggi la tua azienda dalle violazioni dei dati

Noi di UpGuard siamo in grado di proteggere la tua azienda dalle violazioni dei dati, identificare tutte le fughe di dati e aiutarti a monitorare continuamente la posizione di sicurezza di tutti i tuoi fornitori.

UpGuard supporta anche la conformità in una miriade di framework di sicurezza, inclusi i nuovi requisiti stabiliti dall'ordine esecutivo sulla sicurezza informatica di Biden.

CLICCA QUI per ottenere subito la tua valutazione di sicurezza GRATUITA!

Articoli correlati