Agence web » Actualités du digital » Qu’est-ce que Moby et comment est-il lié à Docker ? – Informatique CloudSavvy

Qu’est-ce que Moby et comment est-il lié à Docker ? – Informatique CloudSavvy

Le projet Moby de Docker désassemble les composants fondamentaux de Docker Engine dans une boîte à outils modulaire que d’autres systèmes basés sur des conteneurs peuvent réutiliser. Moby a été créé à partir de la base de code Docker alors monolithique en 2017. Il est devenu une bibliothèque complète de composants backend de conteneurs qui peuvent être combinés pour créer des solutions de conteneurs complètes comme Docker lui-même.

En tant qu’utilisateur final de Docker, vous n’interagissez pas directement avec le projet Moby. Il est destiné aux personnes qui créent des plates-formes de conteneurisation, et non aux développeurs qui créent et exécutent des images de conteneurs. Cependant, vous pouvez rencontrer Moby dans la documentation de Docker ou lors du dépôt de rapports de bogues et de demandes de fonctionnalités.

Docker avant Moby

Docker a été développé à l’origine dans une base de code qui contenait tout ce dont le projet avait besoin. Cela allait de l’environnement d’exécution du conteneur et des générateurs d’images aux fournisseurs de stockage, à la gestion du réseau et à la CLI.

Alors que l’adoption de Docker a explosé au milieu de la dernière décennie, cette approche tout-en-un a été observée comme freinant l’écosystème plus large. Les outils complémentaires ne pouvaient pas s’appuyer sur des éléments spécifiques de Docker car rien n’était composant. Les fournisseurs externes ont dû apporter toute la plate-forme tentaculaire de Docker.

Les unités fonctionnelles de base telles que containerd ont été rapidement divisées en modules autonomes. La communauté peut désormais créer de nouveaux systèmes de conteneurs sans réinventer le runtime qui sert d’intermédiaire avec le noyau pour démarrer les instances de conteneurs. D’autres composants comme runc et HyperKit ont suivi, étant séparés du projet Docker puis réintégrés dans les versions de Docker Engine en tant que dépendances modulaires.

Moby a fait passer cette approche au niveau supérieur en extrayant encore plus de composants de Docker. L’ancien docker/docker Le référentiel GitHub est devenu moby/moby; il contient les parties open source du code de Docker Engine dans un emplacement accessible à la communauté, indépendamment des référentiels de produits Docker CE et EE à source fermée.

Le modèle d’assemblage

Avec Moby, n’importe qui peut mélanger et assortir des parties de la technologie de Docker sans être obligé de tirer tout le lot. Il fournit des implémentations de tous les sous-systèmes clés qui composent une plate-forme de conteneurisation. Vous pouvez créer votre propre version de Docker, puis échanger des éléments pour utiliser des projets alternatifs dans des domaines fonctionnels spécifiques.

L’approche de Moby s’inspire de l’utilisation de plates-formes partagées par l’industrie automobile. Marques construit des familles de modèles entières à partir d’une seule gamme de châssis et de moteurs. L’ajout d’une nouvelle option à la gamme est réalisé en prenant la plate-forme partagée et en l’ajustant pour répondre aux exigences de conception du nouveau véhicule. La plate-forme ne sera pas nécessairement utilisée telle quelle : un modèle qui sera proposé comme choix de performance pourrait avoir des options de moteur et des modifications de châssis qui ne sont pas disponibles sur d’autres modèles utilisant la plate-forme.

Moby offre quelque chose de similaire aux développeurs de systèmes de conteneurs. Vous pouvez commencer avec des assemblages de composants prédéfinis qui offrent une compatibilité croisée éprouvée. Il s’agit de la plate-forme automobile partagée de base. Au fur et à mesure que votre système évolue, vous remplacez des modules individuels par de nouvelles implémentations pour créer un outil plus puissant. Un exemple pourrait être de remplacer le générateur d’images BuildKit par une alternative plus performante. Cela revient au constructeur automobile à remplacer le petit moteur standard de sa plate-forme par une alternative de plus grande capacité.

L’expérience du développeur Moby en est donc une d’assemblage et d’extension. Chaque projet basé sur Moby consommera un ensemble différent de pièces pour atteindre un objectif unique. Avant Moby, les développeurs n’avaient pas de point de départ accessible pour innover dans des domaines spécifiques de l’écosystème des conteneurs. Désormais, les développements peuvent être plus ciblés lorsque Moby remplit les blancs.

Que comprend Moby ?

Moby propose trois offres fonctionnelles distinctes :

  • Une bibliothèque de composants backend qui implémentent des fonctionnalités de conteneur communes telles que la création d’images, la gestion du stockage et la collecte de journaux.
  • Un cadre avec des outils de support qui vous aide à combiner, créer et tester des assemblages de composants au sein de votre propre système. La chaîne d’outils produit des artefacts exécutables pour toutes les architectures, systèmes d’exploitation et environnements cloud modernes.
  • Exemples d’utilisations du framework, y compris un assembly de référence. Cet assembly de référence est le noyau open source sur lequel le produit Docker est construit. Vous pouvez l’utiliser pour mieux comprendre comment les composants Moby sont rassemblés dans un système cohérent.

Ces pièces donnent aux constructeurs de systèmes tous les ingrédients pour créer leur propre plate-forme de conteneurisation. Ils facilitent l’innovation sans coupler les projets à Docker et son écosystème fermé. Le modèle est décrit comme « piles incluses mais échangeables ».

Moby est entièrement open source et dirigé par la communauté. Docker apporte ses composants open source au projet et des parties externes peuvent également ajouter des éléments. Docker s’est également engagé à continuer d’utiliser Moby en amont ; cela signifie que les modifications apportées à Moby apparaîtront lors de l’installation de Docker.

Moby n’est pas réellement la fin de la ligne dans l’arborescence des dépendances de Docker. Certains composants tels que le runtime Containerd ont été donnés à la CNCF et sont donc maintenus séparément de Moby. Moby utilise Containerd comme environnement d’exécution de conteneur par défaut, mais il est inclus en tant que dépendance en amont, et non membre du projet.

De Moby à Docker

Alors que Moby inclut tous les principes fondamentaux d’un système de conteneurs, l’accent mis sur les développeurs de systèmes signifie que l’installation de l’assembly de référence ne vous offrira pas la meilleure expérience. C’est là que les projets en aval tels que Docker ajoutent de la valeur. Ils s’appuient sur Moby pour créer une plate-forme qui fonctionne d’une manière utile aux utilisateurs finaux travaillant avec des conteneurs et des images.

Par exemple, installer Docker et exécuter docker pull ubuntu:latest est possible sans aucune configuration manuelle. En effet, Docker est préconfiguré pour extraire des références d’image non qualifiées de Docker Hub. Cela ne fonctionnerait pas avec l’assembly de référence Moby ; bien qu’il soit capable d’extraire des images, il n’a pas de registre par défaut, il ne serait donc pas en mesure de résoudre la balise.

Les plates-formes en aval ajoutent des avis à l’ensemble objectif de fonctionnalités offertes par Moby. Bien que les développeurs de systèmes de conteneurs ne veuillent pas d’URL de registre préconfigurée, c’est un avantage utile pour les créateurs d’images. Avant l’introduction de Moby, les développeurs de plates-formes n’avaient aucun moyen de filtrer les décisions basées sur les produits de Docker.

Résumé

Moby est une boîte à outils modulaire de composants de conteneur backend. Il se situe en amont des plates-formes destinées aux utilisateurs finaux qui créent et exécutent des images de conteneurs. Moby est destiné aux personnes qui créent des systèmes comme Docker mais qui ne veulent pas hériter de ses valeurs par défaut, de ses opinions et de ses liens avec Docker Inc.

Moby facilite un écosystème de conteneurs plus productif qui n’est plus dominé par le monolithe Docker. La plupart des utilisateurs de Docker n’auront pas remarqué le changement car l’introduction de Moby a principalement rationalisé le développement d’outils tels que Kubernetes, Podman et d’autres environnements de conteneurs. Ces projets bénéficient du partage de composants clés qui ont été distillés jusqu’à leurs éléments fonctionnels nus.

★★★★★