La virtualizzazione ha rivoluzionato il campo dell’Information Technology grazie alla distribuzione delle risorse di una macchina fisica su più macchine virtuali (VM) tramite la virtualizzazione hardware. In questo caso si emulano i componenti hardware, in modo da mettere a disposizione diversi server virtuali con un proprio sistema operativo basati su un sistema host comune. Spesso si utilizza questa struttura per lo sviluppo di software, nel caso in cui ci sia bisogno di effettuare più test. Inoltre la virtualizzazione è alla base di diversi pacchetti di hosting offerti dai provider, che si basano su una tecnologia Cloud.
Un’alternativa alla virtualizzazione hardware è data dalla virtualizzazione del sistema operativo, anche chiamata OS-level o container-level. In questo caso le diverse applicazioni server si realizzano in ambienti virtuali isolati, chiamati contenitori (dall’inglese “container”) che presentano lo stesso sistema operativo: si parla perciò di virtualizzazione basata su contenitori. Proprio come le macchine virtuali, anche i contenitori offrono la possibilità di utilizzare diverse applicazioni, con requisiti differenti, simultaneamente sulla stessa macchina fisica. Visto la mancanza di un proprio sistema operativo, il processo di virtualizzazione nei contenitori si contraddistingue per la facile installazione e un overhead minore.
I contenitori non sono però una nuova scoperta, ma la tecnologia impiegata è stata portata alla ribalta da progetti open source come Docker e rkt di CoreOS.