Qu'est-ce que le projet Moby de Docker?

Étant un ite d' Austin , j'ai aimé avoir DockerCon local et j'ai co-écrit un guide pour visiter Austin dans l'espoir que les participants apprécieraient également d'avoir DockerCon à Austin.

Lors de la DockerCon 2017, quelques annonces majeures ont été faites, dont le Moby Project. 

Qu'est-ce que le projet Moby? C'est un cadre pour assembler des systèmes de conteneurs spécialisés sans réinventer la roue.

Le projet Moby est à Docker ce que Fedora est à Red Hat Enterprise Linux. - Solomon Hykes, directeur technique / fondateur de Docker

En devenant le projet conteneur équivalent au projet Fedora, la façon dont Docker est construit change.

Red Hat a fait un bon travail au début de la confusion RHEL en ce sens qu'ils ont délimité le projet du produit; ils ont séparé Fedora de RHEL. Docker voit cette approche comme un moyen de mieux impliquer la communauté. Les frontières entre la communauté et les produits étaient floues auparavant. Les gens ne pouvaient pas nécessairement dire quand ils contribuent au projet par rapport au produit. Cette séparation du code entre le référentiel moby / moby et le référentiel docker / docker clarifie cette distinction.

Moby convertira Docker d'un moteur monolithique en une boîte à outils pour assembler ses composants dans différentes configurations. Le projet Moby devrait encourager la réutilisation de chacun des composants. Docker a une histoire de succès à cet égard et peut être mesuré dans leur réutilisation au-delà de leur créateur:

  • Ils ont créé OCI / runc, et c'est maintenant la norme établie pour les formats d'exécution et d'image de conteneur.
  • Ils ont créé containerd, et c'est désormais la norme de facto de l'industrie pour les environnements d'exécution de conteneurs avec les contributions de tous les principaux fournisseurs de cloud et de 99% de la base d'installation (des millions de nœuds dans le monde).
  • Notary est devenu l'implémentation de TUF la plus mature de l'industrie et un centre de collaboration pour la communauté de la sécurité.
  • La distribution Docker est la base open-source d'une douzaine de produits commerciaux.

L'équipe Docker espère qu'au fur et à mesure que le monolithe Docker sera brisé en plus petits morceaux, ces composants individuels pourront devenir des blocs de construction pour des solutions personnalisées. Résidant auparavant dans docker / docker, le projet monolithique a été transféré à moby / moby.

Une certaine confusion a surgi au sujet du projet. L'équipe Docker a bien communiqué le projet aux contributeurs de la conférence et à la plupart des responsables. Cependant, les gens qui s'interfaçaient plus avec désinvolture dans la communauté étaient surpris et incertains de son objectif et de son impact, exprimant leur frustration de ne pas comprendre comment les différentes pièces s'emboîtaient ou ce que font les nouvelles fonctionnalités (par exemple, LinuxKit).

Le projet @moby en bref: à l'intérieur et à l'extérieur. pic.twitter.com/K8Rn9YYtVs

- Solomon Hykes (@solomonstre) 22 avril 2017

Le projet Moby permet aux constructeurs de systèmes de créer d'autres projets en plus du même outillage. Un constructeur de système peut souhaiter exécuter ces assemblys différemment, selon qu'ils s'exécutent sur un petit appareil IoT ou s'ils s'exécutent sur un grand système avec des GPU.

Il y a encore beaucoup de travail pour décomposer les composants; cependant, l'objectif est de créer un grand en amont pour Docker - c'est Moby. Docker Inc. souhaite que l'outillage soit plus ouvert que Docker. Les décisions de conception de produit sont parfois en contradiction avec un projet open source basé sur le consensus. La séparation des préoccupations permet à Docker Inc. de compiler des opinions sur l'expérience utilisateur dans leurs offres Docker pour la communauté et l'entreprise. Moby est le projet. Docker est le produit.

Le projet Moby peut être décrit en quatre couches:

  1. Tous les composants en amont
  2. Moby
  3. Docker CE
  4. Docker EE
David Chung / Docker Inc.

L'organisation du projet en couches doit apaiser le contenu naturel qui survient lorsque des décisions doivent être prises entre ce qui fonctionne pour le projet et le produit. Docker en tant que produit ajoutera des opinions informées par leurs utilisateurs (pour être plus facile pour leurs utilisateurs). Par exemple, containerd n'a pas de registre par défaut, tandis que Docker aura le hub Docker par défaut ou la CLI Docker, offrant une recherche facile des problèmes ouverts que vous avez pour votre projet dans le forum / système de support Docker. Les utilisateurs ne sont pas concernés. Les utilisateurs interagiront toujours avec Docker de la même manière.

  • Les développeurs d'applications à la recherche d'un moyen simple d'exécuter leurs applications dans des conteneurs peuvent se tourner vers Docker CE.
  • L'informatique d'entreprise à la  recherche d'une plate-forme de conteneur prête à l'emploi et prise en charge commercialement peut se tourner vers Docker EE.

Rien ne change pour ces utilisateurs. La ligne de commande reste la même. Docker peut désormais tirer parti de l'écosystème pour innover plus rapidement pour eux.

  • Les constructeurs de systèmes qui  cherchent à tirer parti des composants du projet Moby peuvent innover sans être liés à Docker.

Gouvernance du projet

Le projet Moby est ouvert et sera un projet géré par la communauté. Docker Inc. a une tendance générale à faire don des composants individuels de ce projet à d'autres organes directeurs, le cas échéant. Containerd doit être indépendant de l'organisation Moby car il a été donné à la CNCF. Les projets individuels à long terme devraient éventuellement déménager et aller dans d'autres référentiels.

FAQ sur le projet Moby

  • Maintenant que Moby brise le monotèle, des langues autres que Go seront-elles incorporées?
    • Pour LinuxKit - Il y a un engagement envers Ocaml et Rust. Il n'y a pas de plan directeur pour changer de langue.
  • REST sera-t-il remplacé par gRPC?
    • Docker Inc souhaite généralement laisser l'API REST comme une façade constante, tout en déplaçant les communications internes entre les projets Moby vers gRPC. Un composant peut changer de langue et ne pas avoir d'incidence sur les autres composants (tout comme les microservices offrent le choix). Le moteur dispose d'une API HTTP REST et tous les composants de niveau inférieur ont adopté gRPC. Solomon propose d'adopter gRPC comme interface standard. Les avantages comprennent un outillage plus automatisé.
  • Où trouverez-vous Docker CE (le projet open source)?
    • TBD - Docker / CLI aura les bibliothèques clientes et les SDK pour le moment. L'emballage et la création sont spécifiques à l'édition, étant donné qu'il existe de nombreux Docker pour XXX.