La moderna impresa digitale non può oggi fare a meno dei container informatici per migliorare flessibilità e automazione dell’IT, garantire le prestazioni e i livelli di disponibilità richiesti dal business. Nell’attuale economia dei servizi IT aziendali in cui i sistemi hardware on premise sono sempre più affiancati con risorse esterne in cloud, i container informatici sono diventati una risorsa chiave per la distribuzione e il deploy più efficiente dei carichi di lavoro.

Struttura logica che incapsula e isola i processi applicativi, i container informatici (o container software) rendono più facile spostare applicazioni e servizi da un server all’altro, tra sistemi on premise e in cloud con l’uso di un orchestratore: come un container fisico di merci può essere spostato con una gru da un camion a un cargo aereo o navale. Nel mondo d’oggi, Docker è la modalità ormai consolidata per container informatici, grazie al vasto supporto della comunità open source, e Kubernetes l’orchestratore più utilizzato.


Come funzionano i container informatici

I container software sono stati creati per sfruttare le doti native multi-user e multi-task di Unix ed esistono da molto tempo in sistemi come IBM AIX, Oracle/SUN Solaris e Linux. È con Linux e lo sviluppo del software in open source che la tecnologia dei container informatici è diventata popolare. Il kernel Linux si è arricchito delle funzioni per il controllo dell’hardware (cgroups) e d’isolamento (spacename) che permettono a ogni processo in esecuzione di avere una propria vista del sistema.

Docker e i container informatici

Sviluppata sei anni fa in open source, Docker è la tecnologia che ha reso pratico l’utilizzo dei container Linux, facendone decollare l’utilizzo grazie anche all’ampio sostegno ottenuto presso i principali vendor hardware e service provider. Un sostegno concretizzato nello sviluppo di componenti software, tra i quali l’orchestratore Kubernetes, anch’esso open source, che facilitano la gestione.

Più container informatici possono girare come singola istanza, vedendo ciascuno le risorse di file system, CPU, RAM, I/O come se fossero dedicati alla propria esecuzione. Il livello di astrazione introdotto da Dockers e Kubernetes viene in aiuto nella gestione di complessi ambienti applicativi aziendali per il cui funzionamento sono coinvolti gruppi di container software.


I vantaggi operativi dei container informatici rispetto alle macchine virtuali

Un vantaggio offerto dai container informatici sta nella loro leggerezza. A differenza delle macchine virtuali (VM) usano direttamente, sia pure in modo condiviso, le risorse presenti sui server, riducendo gli sprechi. Rispetto ai deploy di applicazioni in VM, il container non soffre il peso del sistema operativo (il maggior carico è dell’ordine dei megabyte, contro i gigabyte di una comune macchina virtuale). Non essendoci l’overhead dell’hypervisor (necessario alle VM), i container girano a maggiore velocità.

Container informatici per un’azienda agile

La leggerezza fa sì che i software in container possano essere resi disponibili in minore tempo e allo stesso modo essere aggiunti, rimossi o aggiornati. Ciò facilita la gestione dei carichi di lavoro, dei cicli di deploy e ha riflessi sulla customer experience, specie nelle applicazioni rivolte al consumatore dove la velocità d’interazione è un requisito. A parità di servizi erogati, il costo d’una struttura basata su container informatici è molto inferiore rispetto ad una basata su VM e hypervisor. Per contro, il livello di segregazione del software è inferiore alle VM, problema che può essere indirizzato con pratiche efficaci di security.


Il vantaggio dei container informatici nei deploy con DevOps

Una dote dei container informatici è consentire un rapido ed agile delivery delle nuove applicazioni realizzate come architetture a microservizi. Microservizi e container insieme consentono un controllo granulare sull’esecuzione e un migliore sfruttamento delle risorse di sistema. Racchiudere i servizi in componenti facilmente distribuibili e configurabili con una sola riga di comando accelera il rilascio di applicazioni complesse, aiutando le pratiche DevOps.

Container informatici: velocità e portabilità delle applicazioni

Questo è il motivo per cui chi adotta DevOps per velocizzare sviluppo e deploy delle applicazioni spesso opta per l’uso dei container informatici. I container sono inoltre un modo per adottare un formato open source in grado di migliorare portabilità dei servizi su host eterogenei. In ambienti di cloud pubblico e ibrido questo significa spostare i carichi di lavoro da una piattaforma all’altra, dall’on-premise al cloud, per ottenere più prestazioni e ridurre i costi. L’uso dei container informatici aiuta ad evitare il lock-in, ossia di restare legati a uno specifico provider di servizi per gli eccessivi oneri che comporta il cambiamento.