Recensione: le migliori distribuzioni Linux per Docker e contenitori

Negli ultimi sei mesi ho esaminato cinque distribuzioni Linux minime ottimizzate per l'esecuzione di container: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host e VMware Photon OS. Generalmente conosciuti come "sistemi operativi container", queste distribuzioni Linux progettate appositamente per i container non sono l'unico modo per eseguire i container in produzione, ma forniscono una base che non spreca risorse su nient'altro che sul supporto dei container.

Lo stato del settore con i sistemi di distribuzione dei container è molto simile ai primi giorni delle distribuzioni Linux. Hai un elemento chiave, in questo caso il container Docker, che è circondato da una serie di componenti dell'ecosistema concorrenti. Proprio come le distribuzioni Linux tradizionali raggruppavano diversi gestori di pacchetti, ambienti desktop, utilità di sistema, servizi e app, la maggior parte delle distribuzioni di contenitori combina e abbina vari componenti per creare quella che considerano una soluzione ottimale. Prendiamo ad esempio la configurazione distribuita e il rilevamento dei servizi. Esistono diverse soluzioni per questo, come Etcd, Consul e ZooKeeper.

Ogni distribuzione adotta un approccio diverso a cosa includere nello stack. Ad un estremo ci sono distribuzioni progettate per supportare solo i livelli più alti dello stack, come CoreOS Container Linux e Red Hat Project Atomic. Molte delle funzionalità sono state inserite nel livello di gestione proprietario che ci sono poche speranze di utilizzare il sistema operativo per qualcos'altro. Altre distribuzioni, come RancherOS e VMware Photon OS, offrono una maggiore flessibilità, supportando più componenti dell'ecosistema e sistemi di orchestrazione. Questi forniscono agli amministratori un buon modo per sperimentare e potenzialmente evitare il vincolo del fornitore.

Alpine Linux

Alpine Linux, il sistema operativo sottostante per molte immagini Docker ufficiali, è un'ottima scelta per l'attività. Con una dimensione di soli cinque megabyte, Alpine Linux è all'estremità opposta dello spettro rispetto alle distribuzioni Linux full-fat di alcuni anni fa, che erano in competizione con Solaris e destinate a funzionare su enormi sistemi hardware. Questa nuova generazione di Linux è progettata per funzionare su hardware incorporato e consumare risorse minime, rendendolo una scelta perfetta per i contenitori.

L'eredità di Alpine Linux come sistema operativo per sistemi embedded è stata evidente durante la mia recensione. Molte delle opzioni di configurazione sono predefinite per i sistemi embedded e la documentazione in molte aree era scarsa o inesistente. Chiaramente un sistema progettato e utilizzato principalmente dagli hacker, Alpine Linux richiederà alle aziende di eliminare alcuni ostacoli per creare le loro applicazioni.

Le distribuzioni di produzione di Alpine Linux godranno di numerosi vantaggi, tra cui un avvio rapido, un'impronta minimalista e una posizione sicura per impostazione predefinita che non si trovano altrove. Tutto, dai binari di sistema alle librerie C, è progettato per distribuzioni piccole, veloci e sicure. Non c'è gonfiore qui.

L'amministrazione di Alpine Linux è diversa dai sistemi Linux tradizionali e richiederà del tempo per imparare. L'installazione e la gestione dei pacchetti sono uniche anche tra i sistemi operativi container, sebbene ben pensate. Se il tuo negozio di sviluppo ha sviluppatori superiori alla media che sono disposti a fare l'investimento, Alpine Linux fornirà una base solida, stabile e sicura per le applicazioni per molto tempo a venire.

CoreOS Container Linux

Lo stack di contenitori CoreOS si basa su Etcd per l'archiviazione distribuita e l'individuazione dei servizi, Flannel per il networking e Kubernetes per l'orchestrazione dei contenitori e supporta il proprio tipo di formato contenitore, rkt (Rocket), oltre a Docker. Rocket è stato un tentativo di un formato container concorrente per affrontare le carenze del formato Docker intorno al 2015, ma con queste carenze risolte, Rocket non ha visto molto assorbimento.

Video correlato: che cos'è Kubernetes?

In questo video di 90 secondi, scopri Kubernetes, il sistema open source per l'automazione di applicazioni containerizzate, da uno degli inventori della tecnologia, Joe Beda, fondatore e CTO di Heptio.

CoreOS, come Project Atomic, non ha paura di divergere radicalmente dal Linux tradizionale. Come il sistema operativo container di Red Hat, CoreOS Container Linux crea un filesystem per lo più immutabile, ma lo fa con un sistema di partizionamento del disco ispirato al sistema operativo Chromium di Google. Ciò che fa è preservare il vecchio filesystem su una partizione, il che significa che i rollback sono sempre sicuri e veloci.

Sebbene la documentazione sia abbastanza buona e completa, ho trovato l'installazione un po 'complicata, poiché richiede un processo in due fasi per derivare il file di configurazione. Una volta installato, tuttavia, CoreOS offre aggiornamenti continui "senza tempi di inattività", una caratteristica resa possibile dal suo layout di partizione del disco unico. CoreOS ha svolto molto lavoro qui e l'azienda offre varie opzioni di manutenzione che si adattano alla maggior parte delle organizzazioni, inclusa la possibilità di rinunciare.

CoreOS, un po 'come Project Atomic, è una decisione tutto o niente. Separare i pezzi e utilizzare il sistema operativo sottostante per costruire la propria infrastruttura di container non è davvero un'opzione a causa di tutte le decisioni di progettazione architettonica incorporate nella piattaforma. Se sei disposto ad accettare queste decisioni e pagare per la distribuzione commerciale di Kubernetes di CoreOS, Tectonic, senza dubbio potresti eseguire un lavoro davvero pesante.

Rancher Labs RancherOS

RancherOS di Rancher Labs è un sistema operativo Linux composto interamente da contenitori. Anche il processo di inizializzazione (PID 1) è un contenitore Docker. Ciò significa che non è necessario un sistema di gestione dei pacchetti. Gli aggiornamenti (e i downgrade) del sistema operativo vengono gestiti con Docker, proprio come qualsiasi altro contenitore.

Sebbene questo approccio sia altrettanto radicale delle decisioni architettoniche prese in alcune delle altre distribuzioni, come Project Atomic e CoreOS, il risultato è una semplicità sorprendente. Anche se l'apprendimento di un'amministrazione di sistema completamente nuova sembra inizialmente scoraggiante, devi comunque conoscere Docker per gestire i contenitori, quindi perché non utilizzare lo stesso sistema per entrambi?

RancherOS sembra maturare rapidamente. Nella mia recensione ho trovato la documentazione un po 'carente, ma qualsiasi sviluppatore o amministratore che abbia familiarità con i contenitori Docker conoscerà già la maggior parte del sistema. RancherOS ha un ingombro ridotto (20 MB) e fa un uso efficiente delle risorse. Sebbene i confini tra Rancher il sistema di gestione dei contenitori e Rancher il sistema operativo siano in qualche modo sfocati, il sistema di gestione dei contenitori è gratuito e open source, quindi non c'è motivo di tentare di eseguire il tuo. Le organizzazioni che necessitano dell'accesso al codice sorgente non dovrebbero cercare oltre.

La piattaforma Rancher supporta quasi l'intero ecosistema di strumenti per la gestione dei container, inclusi Docker Swarm, Kubernetes e Mesos, e sta avanzando rapidamente. Sebbene radicalmente diverso dal tradizionale UNIX, RancherOS sembra aver aderito più strettamente alla filosofia UNIX di base rispetto alle altre distribuzioni di sistemi operativi container: strumenti semplici che operano insieme in modo elegante.

Red Hat Project Atomic

Il progetto Atomic di Red Hat è saldamente nel campo dell'orchestrazione dei servizi di Kubernetes. In genere questo tipo di distribuzione è orientato a scenari su larga scala e ad alta disponibilità. Lo svantaggio è che, essenzialmente, devi "fare come ti viene detto" e progettare l'applicazione per convenzione.

Nella casella troverai Flannel per il networking, Etcd per l'archiviazione distribuita di valori-chiave e OSTree per la gestione degli host. OSTree è un modo relativamente nuovo per distribuire un sistema operativo su larga scala in modo affidabile e distribuito. Atomic combina OSTree con un nuovo gestore di pacchetti RPM per creare RPM-OSTree, che fornisce un filesystem per lo più immutabile.

Ho trovato Project Atomic una sfida. È molto ambizioso e si muove velocemente, con molte parti in movimento. RHEL, CentOS, Fedora, SELinux, Systemd, un set di comandi "Docker" personalizzato per controllare l'host sottostante ... sono tutti nel mix e la documentazione è disorganizzata e confusa. Inoltre, nel mio piccolo cluster, privo di Chef, Salt o Puppet, dovevo configurare manualmente ogni nodo.

La conclusione è che Project Atomic ha ancora bisogno di un po 'di tempo per cuocere. Se la visione viene realizzata, potrebbe diventare lo standard del futuro, sebbene non per i data center con centinaia di nodi ma migliaia o decine di migliaia. Sotto questo aspetto la visione sembra più vicina a quella di Mesos rispetto a un tipico sistema di distribuzione di container. Se la tua azienda vive e respira l'ecosistema Red Hat e prevede di restarci, allora probabilmente vale la pena iniziare con Project Atomic.

VMware Photon OS

Photon OS di VMware è un host di container Linux minimo progettato per avere un ingombro ridotto e ottimizzato per hypervisor VMware. In quanto tale, Photon OS funziona solo in ambienti virtuali; l'implementazione su hardware fisico non è possibile. Photon OS è personalizzato per semplificare la gestione dei container, ma non così radicalmente come Atomic o CoreOS. Photon OS è più un passo evolutivo.

Sulla base dei miei test, Photo OS è all'altezza delle sue promesse nell'ambiente virtuale VMware. (Photon OS può essere eseguito anche su altri hypervisor così come Google e Amazon cloud.) Poiché Photon OS può fare ipotesi sull'hardware (virtuale), l'ecosistema assomiglia molto allo standard Linux, rendendo la curva di apprendimento meno ripida. La rete e l'archiviazione sono compatibili con Systemd e sono disponibili una gamma di opzioni documentate per il networking del contenitore. La documentazione per Photon OS potrebbe essere la migliore tra i prodotti recensiti.

VMware sta assumendo un ruolo guida nella produzione di container per ambienti tradizionali e questo ha senso se ci si pensa. Quante volte ti è stato chiesto di descrivere la differenza tra un contenitore e una VM? Con Photon OS, presto non ci sarà alcuna differenza: i container saranno solo una VM leggera, distribuita e gestita con gli stessi strumenti. Photon OS supporta praticamente tutti i componenti principali dell'ecosistema di container: container Docker e Rocket, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 e altri.

Di tutte le distribuzioni che ho recensito, VMware Photon OS sembra sia la più visionaria che attualmente la più completa e utilizzabile. Se sei un negozio VMware che esplora la containerizzazione, non penserei di prendere in considerazione nient'altro. Se non sei un negozio VMware, vale comunque la pena dare un'occhiata a Photon OS.

Confronto dei sistemi operativi del contenitore

Alpine Linux è alla base di quasi tutte le immagini Docker in circolazione. Perfetto per le applicazioni incorporate, Alpine Linux non dovrebbe essere pensato come un modo per eseguire i contenitori. Invece, in un certo senso, Alpine Linux è il contenitore. Gli sviluppatori che hanno familiarità con la creazione di applicazioni su Alpine Linux scriveranno applicazioni container migliori.

CoreOS, uno dei primi sistemi operativi per container, adotta lo stack tecnologico di Google. Offre un modo affidabile, sebbene ostinato, di gestire l'infrastruttura dei container. Sebbene CoreOS renda molti dei componenti disponibili come open source, la complessità di apprendere uno stack così grande significa in modo efficace che gli utenti dovranno acquistare il sistema di orchestrazione Techtonic proprietario per le distribuzioni di produzione. Se il denaro non è un oggetto e devi distribuire applicazioni di dimensioni Google, CoreOS è una scelta logica.

RancherOS è puro contenitore. Se hai intenzione di implementare la tua infrastruttura di container o desideri uno stack di gestione dei container minimo, RancherOS è il punto di partenza. Con strumenti di orchestrazione e pianificazione open source come Docker Swarm, Kubernetes e Mesos tutti disponibili gratuitamente, lo stack Rancher si rivolge alle aziende fai-da-te orientate all'open source.

Il progetto Atomic di Red Hat è un progetto ombrello che sta riorganizzando il modo in cui le aziende implementano l'infrastruttura. Questo ambizioso progetto potrebbe cambiare il modo in cui le aziende pensano alla distribuzione delle applicazioni, ma la strada è lunga. Project Atomic è più adatto ai primi utenti con un grande investimento esistente nelle tecnologie Red Hat.

Photon OS di VMware porta la tecnologia e l'esperienza di gestione delle macchine virtuali di quel fornitore nei container. Photon OS viene distribuito come macchina virtuale ed è gestito con strumenti VM tradizionali. VMware, forse vedendo la scritta sul muro per le VM tradizionali, ha abbracciato con tutto il cuore la tecnologia dei container e sta rapidamente facendo avanzare lo stato dell'arte. Se sei un negozio VMware ora, ti sarà difficile trovare una piattaforma container migliore rispetto a Photon OS.

Leggi le recensioni su Linux del contenitore: 

  • Recensione: Alpine Linux è fatto per Docker
  • Revisione CoreOS: Linux per contenitori e Kubernetes
  • RancherOS: un Linux più semplice per gli amanti di Docker
  • Recensione: Red Hat fa Docker nel modo più difficile
  • Recensione: il sistema operativo Photon di VMware brilla per i container Docker