Il modello del Container as-a-Service rientra a pieno titolo tra quelli emergenti negli ultimi anni; la piattaforma a contenitori permette di ottimizzare tempi e costi.
Grazie a questo servizio sono infatti disponibili piattaforme container come soluzioni complete di hosting su cloud. Il CaaS, o “Container as-a-Service”, prevede servizi evoluti attraverso piattaforme di cloud computing e la disponibilità di risorse per la “virtualizzazione a container”. Grazie a questo meccanismo, che include service online scalabili, gli utenti finali possono approcciare il mondo della containerizzazione senza dover allestire una infrastruttura fisica.
Ricordiamo come il concetto stesso di containerizzazione delle applicazioni sia strettamente correlato all’universo Linux. Proprio grazie a questa tecnologia è possibile la virtualizzazione “a livello del sistema operativo” e l’esecuzione di applicazioni. Le singole istanze incapsulate includono tutte le funzioni, così come le librerie e i file di configurazione necessari al funzionamento. Il vantaggio pratico che ne deriva riguarda la possibilità di usare istantaneamente, e in modo simultaneo, un sistema operativo con più App, ciascuna caratterizzata da specifiche richieste operative e di deployment.
Il CaaS è ideale per chi è alla ricerca di un sistema di virtualizzazione a contenitore a livello di sistema operativo, ma desidera contenere costi di avvio, della gestione tecnica e quelli legati all’approvvigionamento energetico.
Per definizione, i modelli CaaS più diffusi sono costituiti da numerosi elementi che vanno a formare un ambiente container completo. Al suo interno annoveriamo i tool di orchestrazione, il catalogo di immagini (o registry), il software di gestione cluster e un set di strumenti per sviluppatori e di API.
All’atto pratico, con “servizi container” si intendono pacchetti offerti da un provider di cloud computing. Grazie all’infrastruttura già pronta presso il gestore, il cliente può attivare e sviluppare liberamente le componenti software (container di applicazione), avviando procedure di distribuzione o test pratici, in funzione delle proprie necessità del momento.
Il CaaS si affianca a tre modelli cloud ben noti: IaaS, PaaS e SaaS. Tuttavia, rispetto a questi schemi di servizio, il Container as-a-Service fa eccezione per un approccio di virtualizzazione essenzialmente diverso e che ne determina anche la connotazione del nome: la tecnologia dei container.
Se confrontato con altre proposte “as-a-Service” risulta facile vedere le differenze.
Il modello IaaS rappresenta il livello più basso tra i modelli di cloud computing e prevede la disponibilità di risorse hardware virtuali per gestire infrastrutture IT. Analogamente, il PaaS si fonda sullo IaaS e i servizi cloud inclusi mettono a disposizione le piattaforme di programmazione e ambienti di sviluppo.
SaaS è invece lo step più avanzato tra i servizi cloud. In questo modello di servizio i programmi messi a disposizione non funzionano sull’hardware del cliente ma sul server presso il provider.
Come per le altre piattaforme, anche il CaaS permette ai clienti una completa gestione del ciclo vitale di applicazioni software. Tuttavia, diversamente da IaaS e PaaS, la configurazione delle risorse virtualizzate non si basa sulla virtualizzazione tramite hypervisor di VM disgiunte e con un proprio sistema operativo.
In questo caso, le attività fondamentali sfruttano funzionalità native del kernel Linux. È così possibile garantire l’isolamento dei singoli processi, anche se eseguiti all’interno del medesimo sistema operativo.
In termini funzionali, scegliendo la tecnologia “a container” si abilita un livello di astrazione e l’incapsulamento delle applicazioni, il tutto includendo il file system del sistema che ospita la struttura. Ciò rende possibile l’utilizzo dei container su differenti piattaforme, purché supportino la rispettiva tecnologia container.
Gli sviluppatori di software che desiderano avvicinarsi a un ambiente di sviluppo basato su cloud per il modello PaaS devono necessariamente fare riferimento alle tecnologie messe a disposizione dal servizio (linguaggi di programmazione e i framework). Diversamente, il CaaS offre agli utenti una piattaforma di programmazione “libera”. Su questa base sono eseguite le applicazioni incapsulate in container, componenti scalabili che possono essere “ridimensionate” tramite infrastrutture IT eterogenee.
All’atto pratico, la base del Container as-a-Service è costituita da un cluster di server che può essere parzialmente affittato per caricare e gestire centralmente le App basate su container. Anche se esistono differenti tecnologie di containerizzazione, il nucleo di una piattaforma CaaS è costituito dagli strumenti di orchestrazione. La gestione di architetture complesse avviene tramite API o, in alternativa, attraverso interfaccia grafica.
L’interazione multi-container poggia sugli orchestration tools, indispensabili per abilitare una vera automazione per il deployment dei container sui singoli host e tutte le attività base (load balancing, ridimensionamento container, service discovery, per citarne alcune).