Container vs macchine virtuali, facciamo chiarezza

Cosa sono i container e in cosa sono diversi dalle macchine virtuali? Quale sistema è meglio utilizzare? Vediamo più nel dettaglio in cosa consiste questa tecnologia ancora poco utilizzata.

Il container può essere definito come una sorta di server virtualizzato a livello di sistema operativo a differenza delle macchine virtuali che sono istanze dell’intero server fisico (cioè processore, disco, connessioni, eccetera).

Ci sono molti vantaggi nell’utilizzo dei container. Ad esempio Google ha scelto di sviluppare cgroups per consentire al proprio team di sviluppo di rilasciare software in modo molto più rapido, economico e scalabile.

Rispetto ad una macchina virtuale un container permette un deployment semplificato perché impacchetta un applicativo all’interno di un singolo componente facilmente configurabile da linea di comando. Inoltre i container consentono un controllo granulare sull’eseguibilità delle applicazioni.

I container richiedono meno risorse CPU, dato che non devono inglobare tutte le risorse che invece devono essere considerate in un server. La rapidità di attivazione garantisce la possibilità di gestione di situazioni in cui il carico computazionale varia in maniera importante nel tempo.

Questo si applica certamente nella gestione di siti web e portali ecommerce in cui il traffico può presentare picchi enormi ed inaspettati.

Per gli sviluppatori poi i container rappresentano una grande risorsa perché permettono di creare diversi ambienti di deploy anche sul proprio laptop in modo molto più rapido rispetto all’utilizzo delle macchine virtuali. Inoltre i cicli di rilascio sono semplificati grazie al ridotto tempo di setup dell’ambiente.

Grazie ai container infine è possibile, per gli sviluppatori, creare ambienti dedicati invece di dover configurare sul proprio computer tutti i servizi necessari allo sviluppo ed al testing (MySQL, MongoDB, node, js, eccetera).

Ovviamente ci sono anche degli svantaggi nell’utilizzo dei container. Il più importante di tutti è senza dubbio la minore sicurezza derivante dalla condivisione del kernel. Bisogna poi osservare come, utilizzando i container, non è possibile eseguire contemporaneamente sistemi operativi differenti sullo stesso hardware.

Condividi