I container Linux® (LXC) sono un tipo di container basato sul sistema operativo Linux. Contengono tutti i file necessari per eseguire uno o più processi specifici in vari ambienti di calcolo e pipeline.
I container Linux sono attualmente degli strumenti fondamentali per lo sviluppo software moderno, poiché consentono di creare facilmente pacchetti di applicazioni con tutte le loro dipendenze. Molte applicazioni moderne, come Docker, Kubernetes, Red Hat OpenShift, Microsoft Azure e altre, utilizzano i container Linux per migliorare l'efficienza, la portabilità e le caratteristiche di sicurezza.
Come tutte le altre applicazioni e gli strumenti software basati su Linux, i container Linux sono open source, il che significa che il loro codice sorgente è gratuito e disponibile per chiunque. I container Linux e le loro molte funzionalità fanno parte delle distribuzioni Linux che una comunità globale di sviluppatori gestisce e aggiorna.
Linux è uno dei sistemi operativi (SO) open source più diffusi al mondo. Inventato nel 1991 da Linus Torvalds, Linux è diventato rapidamente un'alternativa di ampia adozione ai sistemi operativi proprietari, come Windows e macOS. Il sistema operativo Linux si basa sul kernel Linux, un programma per computer che consente agli utenti di controllare i componenti del sistema informatico, come reti, utilizzo della CPU, driver, file system e molto altro.
Negli anni successivi alla sua invenzione, il kernel Linux è diventato critico per le distribuzioni Linux, ovvero le versioni open source del sistema operativo Linux che vengono regolarmente rilasciate agli utenti. Linux alimenta attualmente un'ampia gamma di dispositivi e applicazioni moderne ed è utilizzato da alcune delle più grandi aziende tecnologiche, software e informatiche del mondo.
I container sono unità eseguibili di software che contengono il codice dell'applicazione insieme alle librerie e alle dipendenze di tale codice, al fine di consentire l'esecuzione del codice in vari ecosistemi. Per funzionare, i container si basano su molti componenti. Ad esempio, i file binari sono componenti fondamentali per il funzionamento dei container, poiché consentono l'esecuzione di singoli file e del codice di applicazione in qualsiasi ambiente di calcolo.
I container utilizzano una forma di virtualizzazione del sistema operativo in cui le caratteristiche del kernel del sistema vengono utilizzate per isolare i processi e controllare la quantità di CPU, memoria e spazio su disco a cui possono accedere le applicazioni. I container sono più portatili ed efficienti in termini di risorse rispetto alle macchine virtuali (VM) e sono diventati essenziali nelle moderne applicazioni cloud-native, come Netflix, Spotify, AirBnB e altre.
Newsletter di settore
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
I container Linux eseguono applicazioni in ambienti isolati su un singolo sistema host che utilizza Linux come sistema operativo. Al centro della funzionalità dei container Linux c'è una riga di comando, nota anche come shell, che offre agli utenti un'interfaccia testuale che controlla il sistema Linux.
I container Linux sono simili alle macchine virtuali (VM), in quanto entrambi sono metodi di virtualizzazione ampiamente utilizzati che si trovano alla base del cloud computing e della distribuzione delle più moderne applicazioni aziendali. Tuttavia, ci sono alcune differenze importanti che vale la pena sottolineare.
Mentre le VM virtualizzano l'hardware e l'infrastruttura IT, i container Linux virtualizzano solo il sistema operativo di un sistema, il che li rende un'opzione più leggera e portatile per l'esecuzione delle applicazioni. Inoltre, i metodi di virtualizzazione su cui si basano le VM e i container Linux sono leggermente diversi. In una macchina virtuale, un componente software chiamato hypervisor fornisce l'isolamento delle risorse necessario per la virtualizzazione, mentre in un container Linux ciò è ottenuto tramite un'immagine del container.
Queste cinque caratteristiche principali dei container Linux rendono uniche le sue funzionalità.
Le macchine virtuali devono avere un proprio sistema operativo e un proprio kernel per funzionare. Tuttavia, i container possono utilizzare il kernel Linux del sistema operativo host su cui vengono eseguiti, il che li rende più leggeri e veloci da avviare ed eseguire rispetto alle macchine virtuali.
L'isolamento dei container Linux utilizza una caratteristica del kernel Linux chiamata namespace del kernel Linux che consente di isolare determinate risorse per diversi processi. Ad esempio, i namespace degli ID dei processi (PID namespace) sono utilizzati per isolare i processi nello stesso container, in modo che non si influenzino a vicenda.
Cgroups, abbreviazione di control groups, è uno strumento di gestione delle risorse che consente agli utenti di raggruppare i processi in modo gerarchico, controllando quindi a quali risorse hanno accesso. Ad esempio, i daemon (processi che controllano i cicli di vita dei container) sono spesso controllati da cgroups.
Le immagini container sono pacchetti software che contengono tutto il necessario per eseguire un'applicazione, inclusi codice, tempo di esecuzione, librerie di sistema e strumenti di sistema. Le immagini container rendono altamente scalabili le applicazioni che supportano, oltre che in grado di funzionare in qualsiasi ambiente senza configurazione manuale.
I runtime dei container sono software che consentono ai container di funzionare all'interno di un sistema host, come Linux. I runtime dei container vengono usati per gestire il ciclo di vita del container. Utilizzando le application programming interface (API) che consentono alle applicazioni di comunicare tra loro, i runtime dei container fungono da intermediario tra un container orchestrator, come Kubernetes, che gestisce l'applicazione containerizzata, e il sistema host su cui viene eseguita.
Il concetto di containerizzazione esiste dagli anni '70, quando Unix introdusse un sistema noto come chroot. Unix, un sistema operativo molto diffuso, consentiva agli utenti di controllare le risorse hardware e software su un computer o un dispositivo elettronico. Chroot era unico, in quanto consentiva l'isolamento dei processi su un sistema, un aspetto critico per le tecnologie container.
Sebbene altre tecnologie (ad esempio, AIX Workload Partitions e FreeBSD jails) abbiano offerto un isolamento dei processi e una virtualizzazione del sistema simili a quelli dei container in esecuzione, nessuna ha raggiunto un utilizzo così diffuso. Nel 2013 l'introduzione di Docker, una piattaforma open source per la gestione dei container, ha potenziato il predominio dei container nel moderno ecosistema delle applicazioni, rendendo la creazione, la gestione e l'implementazione dei container più facile che mai.
Il dominio dei container nel mercato delle applicazioni moderne non può essere sopravvalutato, soprattutto per le app cloud-native e i microservizi. Secondo un recente rapporto, l'anno scorso il mercato globale dei container è stato stimato in 5,85 miliardi di dollari. Si prevede che, nei prossimi 5 anni, crescerà a un tasso annuale composto (CAGR) del 33%.1
I container di applicazione sono container che eseguono singoli processi e workload, consentendo agli utenti di creare ed eliminare container senza influire su altri processi o funzionalità dell'app. I container di applicazione (e in particolare Docker) sono stati critici consentire alle applicazioni da cui dipendono così tanti utenti oggi, come Facebook, MS Word, Zoom e altre ancora, di prosperare. Sebbene esistano tecnologie Linux più recenti e open source, come Ubuntu e system-nspawn, i container Linux sono ancora ampiamente utilizzati e offrono molti benefici.
In quanto progetto open source, i container Linux sono in continua evoluzione, plasmati da una comunità globale di sviluppatori che aggiungono costantemente caratteristiche e migliorano le funzionalità e l'esperienza utente. Di seguito sono riportati alcuni dei principali benefici:
Grazie alla grande quantità di funzionalità e benefici e al successo del modello di distribuzione open source di Linux, i container Linux sono implementati in molti settori e vantano molti casi d'uso. Ecco alcuni dei più popolari.
L'architettura dei microservizi è un approccio architettonico cloud-native allo sviluppo del software, in cui una singola applicazione viene creata da componenti più piccoli e indipendenti. L'approccio basato su microservizi è attualmente utilizzato in molti ambienti di sviluppo software per la sua velocità, scalabilità e flessibilità.
I container Linux sono ideali per le architetture di microservizi, poiché facilitano agli sviluppatori l'implementazione di singoli microservizi che possono essere collegati tra loro per creare applicazioni grandi e complesse.
DevOps e continuous integration/continuous delivery (CI/CD) sono un insieme di pratiche utilizzate dagli sviluppatori software per automatizzare lo sviluppo e la distribuzione del software.
I container Linux migliorano DevOps e CI/CD in diversi modi importanti. Innanzitutto, i container Linux aiutano a garantire l'uniformità degli ambienti di produzione nell'intera pipeline CI/CD affinché, quando viene rilasciato, un software funzioni come previsto.
In secondo luogo, automatizzano le attività di costruzione, test e distribuzione delle applicazioni, aiutando gli sviluppatori a risparmiare tempo e risorse. Infine, i container Linux sono più leggeri di altri tipi di virtualizzazione, il che aiuta i team DevOps a ridurre il costo dell'infrastruttura IT di cui necessitano per rispettare le scadenze.
La maggior parte delle aziende moderne deve distribuire le principali applicazioni aziendali su una combinazione di piattaforme di cloud privato e cloud pubblico, attraverso un approccio noto come architettura hybrid cloud.
I container Linux sono ideali per ambienti cloud ibridi che combinano cloud pubblici e privati grazie alla loro portabilità e all'utilizzo delle risorse. I container Linux possono aiutare a migliorare l'efficienza negli ambienti cloud ibridi, aumentare significativamente le prestazioni delle app e ridurre al minimo i costi operativi.
Nell'ambito delle iniziative di trasformazione digitale in corso, molte aziende devono sviluppare e migliorare il modo in cui funzionano le loro app e sono alla costante ricerca di nuove tecnologie e strumenti che possano dare loro un vantaggio di mercato.
Secondo l'IBM Institute of Business Value, l'83% dei dirigenti ha posto la modernizzazione delle applicazioni al centro della propria strategia. I container Linux velocizzano questa attività prendendo le applicazioni basate su codice e infrastrutture legacy e isolando le loro dipendenze e i loro requisiti in modo che possano essere distribuite facilmente ed efficacemente negli ambienti moderni.
Red Hat OpenShift on IBM Cloud è una OpenShift Container Platform (OCP) completamente gestita.
Le soluzioni basate su container eseguono e scalano workload containerizzati con sicurezza, innovazione open source e implementazione rapida.
Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.
1. App market size and trends (2024), Grandview Research, 2024