Docker ha rivoluzionato il settore della virtualizzazione. L'abbiamo scritto numerose volte durante l'arco del 2017, specificandone anche i motivi. Di recente è stato pubblicato un intervento a riguardo di Gianluca Arbezzano, software engineer per Influxdata: rispondendo alle domande dell'intervistatore il developer è riuscito a spiegare in modo molto chiaro perché Docker potrebbe essere preferibile rispetto ad un sistema di virtualizzazione.
Per Arbezzano esisterebbero due ragioni in particolare che avrebbero decretato il successo di Docker, cgroup/LXC e la sua architettura.
Cgroup è una feature del kernel Linux che permette di controllare l'uso delle risorse allocate da un processo (CPU, spazio su disco, RAM, uso della rete), consentendo di isolare e controllare un singolo processo del sistema in modo molto minuzioso. LXC è poi un ambiente di virtualizzazione a container, che opera a livello del sistema operativo e permette di eseguire diversi ambienti Linux virtuali isolati tra loro (container) su una singola macchina reale basata sul kernel Linux.
Il secondo elemento riguarda invece la struttura stessa di Docker. Prima dell'introduzione dei Dockerfile i developer erano abituati a gestire un file di configurazione complesso per descrivere l'infrastruttura come codice. Ma grazie al team di Docker tutto questo è stato enormemente semplificato.
Oggi avviare una normale macchine virtuale risulterebbe più costoso in termini di risorse rispetto ad un'immagine Docker. E questo è un altro dei fattori che ne ha decretato il successo. Docker offre un ambiente isolato e sicuro all'interno di un file della dimensione di una tarball.
Ovviamente esistono anche casi dove le macchine virtuali possono risultare più convenienti di un container, ad esempio se si vuole realizzare uno stack LAMP all'interno di un server.
Ma nella maggior parte dei casi, in particolare se si sta sviluppando e distribuendo una singola applicazione che dipende da una determinata libreria software, Docker è probabilmente la scelta più indicata e il mercato dello sviluppo software durante il 2017 è andato proprio in questa direzione.
Via Jaxenter