Per spiegare perché, soprattutto nello sviluppo delle applicazioni e servizi digitali di nuova generazione, adottare le tecnologie di containerizzazione possa oggi costituire una leva strategica decisiva per incrementare la produttività del business, si può paragonare lo sviluppo software alla costruzione di un edificio. Quest’ultimo può essere costruito in molto meno tempo se, anziché procedere in maniera tradizionale, muratori, operai, addetti ai lavori hanno la possibilità di utilizzare parti e componenti prefabbricati, e strumenti ottimizzati per facilitare e velocizzare le attività di assemblaggio dell’edificio stesso.

In maniera analoga, nel mondo digitale, utilizzando i container e la tecnologia di containerizzazione, gli sviluppatori software possono avere a disposizione mattoncini, strumenti di sviluppo, componenti precostituiti e riutilizzabili: componenti che permettono di risparmiare tempo in operazioni ripetitive e routinarie, e di creare più rapidamente applicazioni e servizi IT ricchi di moderne funzionalità, raggiungendo un’efficienza di sviluppo che poi si traduce in una maggior produttività del business nella sua totalità.


Virtualizzare con le macchine virtuali

Prima dell’avvento della tecnologia di containerizzazione, è stata la virtualizzazione dei server a consentire alle imprese di razionalizzare la gestione dell’infrastruttura IT, attraverso la possibilità di ottimizzare lo sfruttamento dell’hardware e di far funzionare su uno stesso server fisico diversi server virtuali. In aggiunta, oggi, i servizi di cloud computing permettono di espandere in maniera elastica il numero di server virtuali, e quindi la capacità di elaborazione del data center, in rapporto ai picchi di traffico, nell’uso dei servizi digitali, generati dalla progressiva crescita del business.


Limiti della virtualizzazione classica

La virtualizzazione classica si basa sull’uso delle macchine virtuali (VM), che tuttavia implica una serie di limitazioni: in primo luogo, ciascuna virtual machine, per poter funzionare incorpora il proprio sistema operativo, che richiede spazio disco e risorse di memoria; secondariamente, quando il reparto IT si trova a gestire un numero elevato di macchine e server virtuali, diventa lungo, complesso e oneroso amministrare la corretta configurazione di ciascuna macchina, e mantenere traccia di tutti i differenti sistemi operativi e dei relativi problemi di funzionamento e aggiornamento. La varietà dei sistemi operativi complica anche la gestione delle attività di sicurezza informatica. Tali inconvenienti possono portare a malfunzionamenti o blocchi delle VM, e spingere il reparto IT ad aumentare il personale di supporto.


Containerizzazione, una virtualizzazione più evoluta

La containerizzazione informatica è una tipologia di virtualizzazione che ha l’obiettivo di superare le tipiche limitazioni delle virtual machine, e di accelerare ulteriormente lo sviluppo software e l’agilità di conduzione del business. Come le macchine virtuali, anche i container sono in grado di creare uno spazio isolato per il funzionamento di un dato software, ma la differenza è che non possiedono un proprio sistema operativo: condividono invece con altri container il kernel di uno stesso sistema ospitante (host). Il grado di portabilità dei container li rende in sostanza installabili in qualsiasi ambiente IT.  


Vantaggi della containerizzazione per la produttività

La containerizzazione permette di razionalizzare la manutenzione software, in primo luogo perché le attività di manutenzione IT vanno svolte su un solo sistema operativo, e ciò semplifica molto la gestione. I container, poi, usano molto meno spazio disco e memoria rispetto alle macchine virtuali e, oltre a risparmiare risorse hardware, possono essere avviati e resi operativi in pochi secondi. Per gli sviluppatori ciò significa eliminare i frustranti tempi di attesa per l’avvio delle macchine virtuali, e ciò genera importanti vantaggi di produttività sia quando si deve implementare un ambiente di test, sia quando si trasferisce l’applicazione nell’ambiente di produzione.

Un altro beneficio chiave di produttività deriva dalla combinazione della containerizzazione con l’architettura a microservizi. In quest’ultima, infatti, i container possono essere riutilizzati e combinati di continuo per creare rapidamente nuove applicazioni e servizi. Inoltre, il rallentamento o blocco della funzionalità di un container non pregiudica il funzionamento dell’intera applicazione.