COSA SONO I CONTAINER LINUX?

EDITORIALIGNU/LINUXSISTEMI E RETI

I container Linux, in breve, contengono le applicazioni in modo da mantenerle isolate dal sistema host su cui vengono eseguite. I container consentono a uno sviluppatore di creare un pacchetto di un’applicazione con tutte le parti di cui questa ha bisogno, come le librerie e altre dipendenze, e spedire tutto come un unico pacchetto. Essi sono progettati per consentire  a sviluppatori ed amministratori di sistema di trasferire il codice dagli ambienti di sviluppo alla produzione in modo veloce e replicabile, nonché di costruire in modo semplice un’infrastruttura di rete con determinati servizi.

In un certo senso, i container si comportano come una macchina virtuale.  Al mondo esterno, possono sembrare come un sistema completo, tuttavia, a differenza di una macchina virtuale, invece di creare un intero sistema operativo virtuale, i container non hanno bisogno di replicare un intero sistema operativo, ma solo i singoli componenti di cui hanno bisogno per funzionare.  Ciò fornisce un aumento significativo delle prestazioni e riduce le dimensioni dell’applicazione.  Funzionano anche molto più velocemente, poiché a differenza della virtualizzazione tradizionale il processo viene essenzialmente eseguito in modo nativo sul suo host, solo con un ulteriore livello di protezione attorno ad esso.

In particolare, molte delle tecnologie alla base della tecnologia dei container sono open source. Ciò significa che hanno un’ampia comunità di manutentori e sviluppatori, contribuendo a promuovere il rapido sviluppo di un ampio ecosistema di progetti correlati che soddisfano le esigenze di tutti i tipi di organizzazioni diverse, grandi e piccole.

Indubbiamente, uno dei principali motivi del recente interesse per la tecnologia dei container è stato il progetto open source Docker, uno strumento a riga di comando che ha reso la creazione e il lavoro con i container facile per sviluppatori e amministratori di sistema, simile al modo in cui Vagrant ha reso più facile gestire le macchine virtuali.

Docker consente di gestire i container, i quali – quindi – possono essere aggiornati facilmente, riprodotti, condivisi e modificati proprio come se fosse il codice sorgente di un programma.

I container hanno anche suscitato interesse per l’architettura dei microservizi, un modello di progettazione per lo sviluppo di applicazioni in cui le applicazioni complesse sono suddivise in pezzi – più piccoli e componibili – che lavorano insieme.  Ogni componente viene sviluppato separatamente e l’applicazione è quindi semplicemente la somma dei suoi componenti costitutivi.  Ogni pezzo, o servizio, può risiedere all’interno di un contenitore e può essere ridimensionato indipendentemente dal resto dell’applicazione in base alle necessità.

Il semplice inserimento delle applicazioni nei container probabilmente non creerà un cambiamento fenomenale nel modo in cui opera la tua organizzazione, a meno che non modifichi anche il modo in cui li distribuisci e gestisci.  Un sistema popolare per la gestione e l’organizzazione dei container Linux è Kubernetes.

Kubernetes è un sistema open source per la gestione di cluster di container. A tale scopo, fornisce strumenti per la distribuzione delle applicazioni, il ridimensionamento di tali applicazioni in base alle esigenze, la gestione delle modifiche alle applicazioni containerizzate esistenti e aiuta a ottimizzare l’uso dell’hardware sottostante sotto i container.  È progettato per essere estensibile e tollerante agli errori consentendo ai componenti dell’applicazione di riavviarsi e spostarsi tra i sistemi secondo necessità.

Strumenti di automazione IT come Ansible, e progetti di piattaforma come servizio (Paas) come OpenShift possono aggiungere funzionalità aggiuntive per semplificare la gestione dei container.

Dove posso saperne di più ? Ecco alcune risorse aggiuntive che potrebbero interessarti:

 

– The Cloud Native Computing Foundation (cncf.io)

– L’iniziativa Open Containers (opencontainers.org)

– Cosa sono i container?  (redhat.com)

– Proteggere i container prima che conquistino il mondo (thestack.com)

– Container: 4 considerazioni chiave sulla sicurezza (containerjournal.com)

– Cos’è Docker?  (opensource.com)