September 19, 2021

PAPERS

A volte la vita ti colpirà alla testa con un mattone

Dove eseguire i contenitori? Bare metal vs macchine virtuali

Contenitori sono un serio ed emergente contendente come metodo di consegna delle applicazioni. Sebbene non siano ancora in uso universalmente, la maggior parte delle aziende ha implementato container da qualche parte o sta studiando le loro capacità.

I loro vantaggi sono incentrati sulla capacità di astrarre tutto ciò che è necessario per eseguire le applicazioni lontano dall’hardware e, con la possibilità di creare ed eseguire su richiesta molte, moltissime, istanze di container, sono estremamente scalabili.

Certo, abbastanza spesso cluster di container e orchestrazione vengono eseguiti in ambienti di server virtuali, ma non devono esserlo. Possono anche funzionare direttamente su metallo nudo server. In questo articolo, esamineremo bare metal vs macchine virtuali (VM) e dove eseguire i container.

Contenitori in esecuzione: bare metal o VM?

I contenitori sono una forma di virtualizzazione, ma in cui l’applicazione e tutti i file microservizi necessario per la sua esecuzione eseguito sul sistema operativo del server host, con solo il motore di runtime del contenitore tra i due. Ambienti server virtualizzati, nel frattempo, vedere l’hypervisor eseguito sull’host sistema operativo, con i SO guest in primo piano e le applicazioni in esecuzione in tali ambienti.

La maggior parte delle domande sull’esecuzione di container su VM o su bare metal derivano da questo fatto di base.

Decisioni chiave: prestazioni vs convenienza, forse anche costi

La decisione se distribuire centri di infrastruttura per container dipende dai requisiti di prestazioni rispetto alla praticità. È molto più comodo correre orchestratori di contenitori e i loro nodi sulle VM, ma perderai un po ‘di prestazioni. Detto questo, se vuoi ottenere i vantaggi in termini di prestazioni del bare metal, probabilmente devi eseguire il tuo ambiente on-premise ed essere pronto a fare il lavoro necessario per compensare la comodità offerta dall’ambiente hypervisor.

Inoltre, il costo può entrare nelle cose. Poiché i server bare metal possono eseguire un sistema operativo Linux leggero (come Sistema operativo principale o i suoi discendenti), evitano gran parte del costo della licenza dell’hypervisor. Ovviamente, ciò significa anche che perdono funzionalità avanzate disponibili negli ambienti di virtualizzazione.

Vantaggi e penalità della virtualizzazione

Mettere un livello di virtualizzazione sopra il file sistema operativo host significa aggiungere un livello di software all’ambiente, che porta vantaggi oltre che sanzioni.

In un ambiente di virtualizzazione, l’hypervisor offre molte funzionalità e consente il massimo utilizzo dell’hardware.

I vantaggi principali qui sono che i carichi di lavoro possono essere migrati facilmente tra host, anche quando non condividono lo stesso sistema operativo host sottostante. Questa è una cosa utile soprattutto per i container, che sono desiderabili per la loro portabilità tra le posizioni, ma dipendono dal sistema operativo in cui sono stati costruiti. L’uso di un particolare panorama di virtualizzazione fornirà un ambiente software coerente in cui eseguire applicazioni containerizzate anche se il il sistema operativo host è diverso.

Ma allo stesso tempo, tutte le cose sulla virtualizzazione che portano vantaggi comportano anche delle penalità. Ciò è radicato nel fatto che le tue risorse fisiche devono semplicemente fare più elaborazione a causa degli strati di astrazione aggiunti.

Ciò è più chiaramente visibile nella differenza di prestazioni tra i contenitori che vengono eseguiti su bare metal e in ambienti virtualizzati. Test di benchmarking realizzato da Stratoscale ha scoperto che i container su bare metal hanno prestazioni dal 25% al ​​30% migliori rispetto alle macchine virtuali, a causa del sovraccarico delle prestazioni della virtualizzazione.

Nel frattempo, gli ambienti VM tendono ad avere risorse, come lo storage allocato all’avvio, che rimangono a loro disposizione. Diamanti, che fornisce una piattaforma Kubernetes pensata per l’utilizzo su bare metal e nel cloud, afferma che l’utilizzo delle risorse può arrivare fino al 15% negli ambienti virtualizzati e che può ridurre l’uso dell’hardware di 5 volte.

Nonostante i vantaggi intrinseci delle prestazioni del bare metal rispetto alla complessità aggiuntiva della virtualizzazione, VMware, con il suo Tanzu piattaforma Kubernetes, ha compiuto sforzi per mitigare i costi generali.

Aspetti negativi del metallo nudo

Detto questo, ci sono aspetti negativi dei contenitori su metallo nudo.

La chiave tra questi è che gli ambienti container dipendono dal sistema operativo, quindi uno creato per Linux verrà eseguito solo su Linux, ad esempio. Ciò metterà potenzialmente dei limiti alla migrazione e potrebbe funzionare contro di te nel cloud, dove il bare metal è limitato e dove puoi trovarlo, costa di più. Dato che uno dei principali vantaggi dei container è la possibilità di migrare i carichi di lavoro tra i siti in sede e il cloud, non è una buona notizia.

Le distribuzioni di container bare metal mancheranno anche di funzionalità fornite con i livelli del software di virtualizzazione, come rollback e snapshot.

La distribuzione di container su bare metal può anche rendere più difficile mitigare il rischio tramite la ridondanza. Le VM consentono di dividere potenzialmente i nodi tra di loro, mentre quando i nodi del contenitore sono installati su bare metal, è probabile che ce ne siano meno e saranno meno portabili e meno condivisibili.