Decenni fa le macchine invasero il mondo e l’hardware divenne sempre più una costante dei nostri ambienti: case, negozi, uffici, etc. Col tempo – proprio per contrastare tale proliferazione e permettere l’ottimizzazione di tutta questa “ferramenta” – la virtualizzazione prese piede permettendo di installare veri sistemi operativi su macchine virtuali da mandare in esecuzione contemporaneamente.

La duttilità delle macchine virtuali le ha rese idonee alla predisposizione di ambienti per l’esecuzione di applicazioni server richiedendo però, d’altro canto, una cura idonea ad un sistema operativo completo. Ciò ha offerto lo spunto per aprire l’era dei container, ambienti più piccoli, dedicati ad un contesto applicativo specifico: in sostanza, forniscono una sorta di habitat per l’applicazione che dovrà essere eseguita sul server. I container sono necessariamente più snelli, efficienti e veloci rispetto alle virtual machine pertanto si intravvede la possibilità di scomporre un applicativo in più servizi, ognuno con un container dedicato.

I software che attuano, in pratica, la logica dei container sono vari, di natura open source e spesso sostenuti da ampie community o grandi attori dell’informatica: pensiamo a Docker, Kubernetes o Google Container Engine, solo per citare alcuni progetti. Lo scenario è in continua evoluzione ed offre una flessibilità, a livello infrastrutturale, che si presta ad utilizzi in produzione e testing.