Review: Les meilleures distributions Linux pour Docker et les conteneurs

Au cours des six derniers mois, j'ai examiné cinq distributions Linux minimales optimisées pour l'exécution de conteneurs: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host et VMware Photon OS. Généralement connues sous le nom de «systèmes d'exploitation de conteneurs», ces distributions Linux dépouillées et spécialement conçues ne sont pas le seul moyen d'exécuter des conteneurs en production, mais elles fournissent une base qui ne gaspille pas de ressources sur autre chose que le support des conteneurs.

L'état de l'industrie avec les systèmes de déploiement de conteneurs ressemble beaucoup aux débuts des distributions Linux. Vous avez un élément clé, dans ce cas le conteneur Docker, qui est entouré d'un certain nombre de composants d'écosystème concurrents. Tout comme les distributions Linux traditionnelles regroupaient différents gestionnaires de paquets, environnements de bureau, utilitaires système, services et applications, la plupart des distributions de conteneurs combinent et associent divers composants pour créer ce qu'elles considèrent comme une solution optimale. Prenons par exemple la configuration distribuée et la découverte de services. Il existe plusieurs solutions pour cela, telles que Etcd, Consul et ZooKeeper.

Chaque distribution adopte une approche différente de ce qu'il faut inclure dans la pile. À un extrême, il existe des distributions conçues pour ne prendre en charge que les niveaux supérieurs de la pile, tels que CoreOS Container Linux et Red Hat Project Atomic. Une grande partie des fonctionnalités a été placée dans la couche de gestion propriétaire qu'il y a peu d'espoir d'utiliser le système d'exploitation pour autre chose. D'autres distributions, telles que RancherOS et VMware Photon OS, offrent une plus grande flexibilité, prenant en charge plusieurs composants d'écosystème et systèmes d'orchestration. Ceux-ci offrent aux administrateurs un bon moyen d'expérimenter et potentiellement d'éviter le blocage des fournisseurs.

Alpine Linux

Alpine Linux, le système d'exploitation sous-jacent de nombreuses images Docker officielles, est un excellent choix pour cette tâche. D'une taille de seulement cinq mégaoctets, Alpine Linux est à l'opposé des distributions Linux complètes d'il y a quelques années, qui étaient en concurrence avec Solaris et destinées à fonctionner sur des systèmes matériels massifs. Cette nouvelle génération de Linux est conçue pour fonctionner sur du matériel embarqué et consommer un minimum de ressources, ce qui en fait un choix parfait pour les conteneurs.

L'héritage d'Alpine Linux en tant que système d'exploitation embarqué était évident lors de mon examen. La plupart des options de configuration par défaut pour les systèmes embarqués et la documentation dans de nombreux domaines était rare ou inexistante. Clairement un système conçu pour et principalement utilisé par les pirates informatiques, Alpine Linux exigera des entreprises qu'elles franchissent quelques obstacles pour créer leurs applications.

Les déploiements de production d'Alpine Linux bénéficieront de plusieurs avantages, notamment un démarrage rapide, une empreinte minimaliste et une position sécurisée par défaut introuvable ailleurs. Tout, des binaires système aux bibliothèques C, est conçu pour des déploiements petits, rapides et sécurisés. Il n'y a pas de ballonnement ici.

L'administration d'Alpine Linux est différente de celle des systèmes Linux traditionnels et prendra du temps à apprendre. L'installation et la gestion des packages sont uniques, même parmi les systèmes d'exploitation de conteneurs, bien que bien pensées. Si votre boutique de développement compte des développeurs au-dessus de la moyenne qui sont prêts à investir, Alpine Linux fournira une base solide, stable et sécurisée pour les applications pendant longtemps.

Conteneur CoreOS Linux

La pile de conteneurs CoreOS s'appuie sur Etcd pour le stockage distribué et la découverte de services, Flannel pour la mise en réseau et Kubernetes pour l'orchestration de conteneurs, et prend en charge sa propre saveur de format de conteneur, rkt (Rocket), en plus de Docker. Rocket était une tentative d'un format de conteneur concurrent pour remédier aux lacunes du format Docker vers 2015, mais avec ces lacunes corrigées, Rocket n'a pas été beaucoup adopté.

Vidéo connexe: Qu'est-ce que Kubernetes?

Dans cette vidéo de 90 secondes, découvrez Kubernetes, le système open source d'automatisation des applications conteneurisées, par l'un des inventeurs de la technologie, Joe Beda, fondateur et CTO chez Heptio.

CoreOS, comme Project Atomic, n'a pas peur de s'écarter radicalement du Linux traditionnel. Comme le système d'exploitation de conteneur de Red Hat, CoreOS Container Linux crée un système de fichiers essentiellement immuable, mais le fait avec un système de partitionnement de disque inspiré du système d'exploitation Chromium de Google. Cela permet de conserver l'ancien système de fichiers sur une partition, ce qui signifie que les restaurations sont toujours sûres et rapides.

Bien que la documentation soit assez bonne et complète, j'ai trouvé l'installation un peu lourde, impliquant un processus en deux étapes pour dériver le fichier de configuration. Une fois installé, cependant, CoreOS offre des mises à niveau continues, «sans temps d'arrêt», une fonctionnalité rendue possible par sa disposition de partition de disque unique. CoreOS a fait beaucoup de travail ici, et la société propose diverses options de maintenance qui conviendront à la plupart des organisations, y compris la possibilité de se désinscrire.

CoreOS, un peu comme Project Atomic, est une décision du tout ou rien. Séparer les pièces et utiliser le système d'exploitation sous-jacent pour créer votre propre infrastructure de conteneurs n'est pas vraiment une option en raison de toutes les décisions de conception architecturale intégrées à la plate-forme. Si vous êtes prêt à accepter ces décisions et à payer pour la distribution commerciale Kubernetes de CoreOS, Tectonic, vous pourriez sans aucun doute effectuer des tâches très lourdes.

Rancher Labs RancherOS

RancherOS de Rancher Labs est un système d'exploitation Linux composé entièrement de conteneurs. Même le processus d'initialisation (PID 1) est un conteneur Docker. Cela signifie qu'il n'y a pas besoin d'un système de gestion de paquets. Les mises à niveau (et les mises à niveau) du système d'exploitation sont gérées avec Docker, comme tout autre conteneur.

Bien que cette approche soit tout aussi radicale que les décisions architecturales prises dans certaines des autres distributions, telles que Project Atomic et CoreOS, le résultat est une simplicité surprenante. Bien que l'apprentissage d'une administration système entièrement nouvelle semble décourageant au début, vous devez quand même connaître Docker pour gérer les conteneurs, alors pourquoi ne pas utiliser le même système pour les deux?

RancherOS semble mûrir rapidement. Dans mon examen, j'ai trouvé la documentation un peu manquante, mais tout développeur ou administrateur familier avec les conteneurs Docker connaîtra déjà la majeure partie du système. RancherOS a un faible encombrement (20 Mo) et utilise efficacement les ressources. Bien que les frontières entre Rancher le système de gestion des conteneurs et Rancher l'OS soient quelque peu floues, le système de gestion des conteneurs est gratuit et open source, il n'y a donc aucune raison d'essayer de lancer le vôtre. Les organisations qui ont besoin d'accéder au code source ne devraient pas chercher plus loin.

La plateforme Rancher prend en charge la quasi-totalité de l'écosystème d'outils de gestion de conteneurs, y compris Docker Swarm, Kubernetes et Mesos, et elle progresse rapidement. Bien que radicalement différent de l'UNIX traditionnel, RancherOS semble avoir adhéré plus étroitement à la philosophie UNIX de base que les autres distributions de systèmes d'exploitation de conteneurs: des outils simples fonctionnant ensemble de manière élégante.

Projet Red Hat Atomic

Le projet Atomic de Red Hat est fermement dans le camp de l'orchestration de services de Kubernetes. En règle générale, ce type de déploiement est orienté vers des scénarios à grande échelle et hautement disponibles. L'inconvénient est que, essentiellement, vous devez «faire ce qu'on vous dit» et concevoir l'application par convention.

Dans la boîte, vous trouverez Flannel pour la mise en réseau, Etcd pour le stockage distribué clé-valeur et OSTree pour la gestion des hôtes. OSTree est un moyen relativement nouveau de déployer un système d'exploitation à grande échelle de manière fiable et distribuée. Atomic combine OSTree avec un nouveau gestionnaire de packages RPM pour créer RPM-OSTree, qui fournit un système de fichiers essentiellement immuable.

J'ai trouvé que Project Atomic était un défi. Il est très ambitieux et évolue rapidement, avec de nombreuses pièces mobiles. RHEL, CentOS, Fedora, SELinux, Systemd, un jeu de commandes «Docker» personnalisé pour contrôler l'hôte sous-jacent… ils sont tous dans le mélange, et la documentation est désorganisée et déroutante. De plus, dans mon petit cluster, dépourvu de Chef, Salt ou Puppet, je devais configurer manuellement chaque nœud.

L'essentiel est que Project Atomic a encore besoin de temps pour cuire. Si la vision se concrétise, elle peut devenir la norme du futur - mais pas pour les centres de données avec des centaines de nœuds, mais des milliers ou des dizaines de milliers. À cet égard, la vision semble plus proche de celle de Mesos qu'un système de déploiement de conteneurs typique. Si votre entreprise vit et respire l'écosystème Red Hat et prévoit d'y rester, alors Project Atomic vaut probablement la peine de commencer.

Système d'exploitation VMware Photon

Photon OS de VMware est un hôte de conteneur Linux minimal conçu pour avoir un faible encombrement et adapté aux hyperviseurs VMware. En tant que tel, Photon OS ne fonctionne que dans des environnements virtuels; le déploiement sur du matériel physique n'est pas possible. Photon OS est personnalisé pour faciliter la gestion des conteneurs, mais pas aussi radicalement qu'Atomic ou CoreOS. Photon OS est plus une étape évolutive.

D'après mes tests, Photo OS tient ses promesses dans l'environnement virtuel VMware. (Photon OS peut également fonctionner sur d'autres hyperviseurs ainsi que sur les clouds Google et Amazon.) Parce que Photon OS peut faire des hypothèses sur le matériel (virtuel), l'écosystème ressemble beaucoup à Linux standard, ce qui rend la courbe d'apprentissage moins raide. La mise en réseau et le stockage sont compatibles avec Systemd, et il existe une gamme d'options documentées pour la mise en réseau de conteneurs. La documentation de Photon OS est peut-être la meilleure parmi les produits examinés.

VMware prend la tête de la production de conteneurs pour les environnements traditionnels, et cela a du sens quand on y pense. À quelle fréquence vous a-t-on demandé de décrire la différence entre un conteneur et une machine virtuelle? Avec Photon OS, il n'y aura bientôt plus de différence: les conteneurs ne seront qu'une VM légère, déployée et gérée avec les mêmes outils. Photon OS prend en charge pratiquement tous les éléments majeurs de l'écosystème de conteneurs: conteneurs Docker et Rocket, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2, etc.

De toutes les distributions que j'ai examinées, VMware Photon OS semble à la fois la plus visionnaire et actuellement la plus complète et utilisable. Si vous êtes une boutique VMware explorant la conteneurisation, je ne penserais à rien d'autre. Si vous n'êtes pas un magasin VMware, Photon OS vaut toujours le coup d'œil.

Comparaison des systèmes d'exploitation de conteneurs

Alpine Linux sous-tend presque toutes les images Docker. Parfait pour les applications embarquées, Alpine Linux ne doit pas être considéré comme un moyen d'exécuter des conteneurs. Au lieu de cela, d'une certaine manière, Alpine Linux est le conteneur. Les développeurs familiers avec la création d'applications sur Alpine Linux écriront de meilleures applications conteneur.

CoreOS, l'un des premiers systèmes d'exploitation de conteneurs, adopte la pile technologique de Google. Il offre un moyen fiable, quoique avisé, de gérer l'infrastructure des conteneurs. Alors que CoreOS rend la plupart des composants disponibles en open source, la complexité de l'apprentissage d'une pile aussi grande signifie que les utilisateurs devront acheter le système d'orchestration exclusif Techtonic pour les déploiements de production. Si l'argent n'est pas un objet et que vous devez déployer des applications à la taille de Google, CoreOS est un choix logique.

RancherOS est de purs conteneurs. Si vous prévoyez de déployer votre propre infrastructure de conteneurs ou si vous souhaitez une pile de gestion de conteneurs minimale, RancherOS est le point de départ. Avec des outils d'orchestration et de planification open source tels que Docker Swarm, Kubernetes et Mesos, tous disponibles gratuitement, la pile Rancher plaira aux entreprises de bricolage orientées open source.

Le projet Atomic de Red Hat est un projet global qui réorganise la façon dont les entreprises déploient l'infrastructure. Ce projet ambitieux pourrait changer la façon dont les entreprises envisagent le déploiement d'applications, mais la route est longue. Project Atomic est le mieux adapté aux premiers utilisateurs ayant un important investissement existant dans les technologies Red Hat.

Photon OS de VMware apporte la technologie et l'expérience de gestion des machines virtuelles de ce fournisseur aux conteneurs. Photon OS est déployé en tant que machine virtuelle et est géré avec des outils VM traditionnels. VMware, voyant peut-être l'écriture sur le mur des machines virtuelles traditionnelles, a adopté sans réserve la technologie des conteneurs et fait rapidement progresser l'état de l'art. Si vous êtes un magasin VMware maintenant, vous aurez du mal à trouver une meilleure plate-forme de conteneur que Photon OS.

Lisez les avis sur le conteneur Linux: 

  • Bilan: Alpine Linux est fait pour Docker
  • Examen de CoreOS: Linux pour les conteneurs et Kubernetes
  • RancherOS: Un Linux plus simple pour les amateurs de Docker
  • Révision: Red Hat fait Docker à la dure
  • Review: Photon OS de VMware brille pour les conteneurs Docker