Un insieme di processi che si isolano dal resto del sistema: questa potrebbe essere una prima definizione dei container Linux.
Il principale vantaggio di questa tecnologia risiede nel fatto che i container risultano coerenti in qualunque ambiente, partendo dallo sviluppo per arrivare al test fino alla fase di produzione.
La maggior velocità così raggiunta è dovuta da un’immagine sola e distinta che fornisce tutti i file necessari all’esecuzione dei processi.
Container: perchè usarli?
Quando si lavora allo sviluppo di un’applicazione, lo si fa sempre in un ambiente di produzione che presenta alcune peculiari configurazioni.
Lo sviluppo dell’applicazione è fortemente legato proprio a queste specifiche configurazioni.
Esse però potrebbero variare, anche se di poco, rispetto a quelle presenti negli ambienti utilizzati da altri sviluppatori.
Non solo: anche l’ambiente di sviluppo che potrebbe poi essere quello aziendale, sul quale andrà implementata l’applicazione, presenterà ancora diverse configurazioni con set di file specifici.
Per cercare di sviluppare l’applicazione nel modo più utile e coerente possibile allora, ecco che gli esperti cercano di riprodurre lo stesso ambiente aziendale nel quale il prodotto andrà implementato.
Naturalmente cercando però di contenere i costi che scaturiscono dalla creazione di un nuovo ambiente server.
Non solo costi: i limiti dell’emulazione degli ambienti di sviluppo e le proprie particolari configurazioni si manifestano anche nel momento in cui risulta necessario superare i controlli inerenti la qualità oltre che la fase di “distribuzione”, ovvero il deployment.
Superare questi limiti significa anche cercare di evitare di riscrivere l’applicazione, proprio per ottimizzare i tempi.
I vantaggi dei container Linux
Ecco che in questo contesto, rivolgersi all’utilizzo di tecnologia container significa optare per la soluzione migliore possibile.
Scegliendo questa opzione infatti, ecco che librerie, file e dipendenze vengono presentate dal container che contiene l’applicazione e si consente di passare, senza alcun impatto negativo o necessità di riscrivere l’applicazione, direttamente all’ambiente di produzione.
Il fulcro del passaggio risiede tutto nell’immagine : un’immagine container infatti ha un contenuto che potrebbe essere paragonato ad un passaggio, più tradizionale, di installazione dell’applicazione Linux.
Proprio come l’applicazione infatti, questa immagine container ha come contenuto sia pacchetti riguardanti l’RPM che gli importantissimi file di configurazione.
I container però non sono “alla pari” rispetto ad un’installazione standard. Il vantaggio infatti qui risiede nel fatto che l’installazione, rispetto alle nuove copie dei sistemi operativi ,risulterà molto più semplice. Non solo: anche la risoluzione dei problemi risulta molto più semplice e addirittura non necessaria perchè prevedibile grazie ai container.
Isolamento, portabilità e configurabilità: quando i processi devono avere queste caratteristiche, ecco che i container Linux diventano la soluzione più adeguata.
Snellire le procedure e garantire prestazioni di ottima qualità sono le più importanti caratteristiche dei container Linux.
L’obiettivo ultimo di questa particolare tecnologia consiste nel migliorare continuamente lo sviluppo, rendendolo tanto efficiente da riuscire a soddisfare le esigenze aziendali proprio quando emergono.
La caratteristica di efficientamento del tempo dei container Linux, che passano fino alla trasmissione di dati in tempo reale, è un elemento fondamentale per tutti quei processi e quei prodotti che necessitano di essere scalabili.
Interessante anche notare come la tecnologia container sia totalmente indipendente dall’infrastruttura (che potrà essere on permise, ibrida o cloud).
Container e virtualizzazione
A questo punto allora ci si potrebbe chiedere se non si tratti di virtualizzazione.
La risposta ha dei contorni “sfumati”: tecnologia container e virtualizzazione infatti possono essere considerati come integrati e complementari.
Non sono però due elementi completamente identici.
Differenze tra container Linux e virtualizzazione
1. diversi sistemi operativi eseguiti contemporaneamente su un solo sistema hardware è una peculiarità della virtualizzazione
2. isolare il processo applicativo da tutto il resto del sistema e condividere lo stesso kernel del sistema operativo sono invece caratteristiche tipiche dei container Linux
Rispetto alle macchine virtuali quindi, un container Linux va ad utilizzare, in fase di esecuzione, le risorse in modo meno intenso.
Il container viene gestito tramite un’interfaccia standard (con funzioni di avvio, arresto e variabili sempre uguali) e dà un’ottima garanzia di isolamento per le applicazioni.
Non solo: un altro importante vantaggio dei container Linux è costituito dal fatto che, anche utilizzando più container (comunque più facile da gestire), possono essere gestite e coordinate tra molteplici cloud.
Il progetto LXC: Linux Containers
Si chiama Linux Containers (LXC) e si tratta di una piattaforma, completamente open source come tutto quello che riguarda Linux da sempre, completamente dedicata ai containers che offre la possibilità di gestire un set di associazioni tra linguaggi, modelli, librerie e strumenti.
Un ambiente di virtualizzazione che va ad interfacciarsi al livello del sistema operativo e che può essere installato su diversi sistemi, naturalmente basati su Linux: ecco in cosa consiste, nella pratica,il nuovo progetto Linux Containers.
In un futuro non troppo lontano, LXC potrebbe diventare disponibile nell’ambiente di memorizzazione e conservazione di software (il repository) del pacchetto di distribuzione Linux.
Comments are closed.