Programování

Co je Docker's Moby Project?

Být Austinrád, že jsem měl místní DockerCon rád a byl jsem spoluautorem průvodce po návštěvě Austinu v naději, že si účastníci budou užívat DockerCon také v Austinu.

Během DockerConu 2017 zaznělo několik významných oznámení, včetně projektu Moby.

Co je Moby Project? Jde o rámec pro sestavování specializovaných kontejnerových systémů bez nutnosti znovuobjevování kola.

The Moby Project is to Docker what Fedora is to Red Hat Enterprise Linux. - Solomon Hykes, CTO / zakladatel Docker

Tím, že se stal kontejnerovým projektem ekvivalentním projektu Fedory, se mění způsob, jakým je postaven Docker.

Red Hat odvedl dobrou práci v počátcích zmatku RHEL v tom, že vymezili projekt od produktu; rozdělili Fedoru od RHEL. Docker vidí tento přístup jako způsob, jak lépe zapojit komunitu. Hranice mezi komunitou a produkty byly předtím nejasné. Lidé nemuseli nutně vědět, kdy přispívají k projektu v porovnání s produktem. Toto oddělení kódu mezi úložištěm moby / moby a úložištěm docker / docker objasňuje tento rozdíl.

Moby převede Dockera z monolitického enginu na sadu nástrojů a sestaví jeho komponenty do různých konfigurací. Projekt Moby by měl podporovat opětovné použití každé ze složek. Docker má v tomto ohledu historii úspěchu a lze jej měřit v jeho opětovném použití nad rámec jeho tvůrce:

  • Vytočili OCI / runc a nyní je to zavedený standard pro formáty běhu kontejneru a obrázků.
  • Vytočili containerd a nyní je de facto průmyslovým standardem pro běh kontejnerů s příspěvky všech hlavních dodavatelů cloudu a 99 procent instalační základny (miliony uzlů po celém světě).
  • Notář se stal nejzralejší implementací TUF v tomto odvětví a centrem spolupráce pro bezpečnostní komunitu.
  • Distribuce Docker je základem open-source pro tucet komerčních produktů.

Tým Dockeru doufá, že když bude Dockerův monolit rozdělen na menší kousky, mohou se tyto jednotlivé komponenty stát stavebními kameny pro vlastní řešení. Monolitický projekt, který dříve sídlil v docker / docker, byl přemístěn do moby / moby.

O projektu došlo k určitému zmatku. Tým Dockeru projekt dobře sdělil přispěvatelům na konferenci a většině správců. Lidé, kteří se v komunitě více uvolňují, však byli překvapeni a nejasní ohledně jejího účelu a dopadu, což vyjadřovalo frustraci z toho, že nechápali, jak jednotlivé části do sebe zapadají nebo co dělají nové funkce (např. LinuxKit).

Stručně řečeno projekt @moby: uvnitř i venku. pic.twitter.com/K8Rn9YYtVs

- Solomon Hykes (@solomonstre) 22. dubna 2017

Projekt Moby umožňuje tvůrcům systému vytvářet další projekty nad rámec stejných nástrojů. Tvůrce systému může chtít tato sestavení spustit odlišně, v závislosti na tom, zda běží na malém zařízení IoT, nebo zda běží na velkém systému s GPU.

Na vylomení komponent je ještě mnoho práce; cílem je však vytvořit jeden velký upstream pro Dockera - to je Moby. Společnost Docker Inc. chce, aby byly nástroje otevřenější než Docker. Rozhodnutí o designu produktu jsou někdy v rozporu s open-source projektem založeným na konsensu. Oddělení obav umožňuje společnosti Docker Inc. shromažďovat názory na uživatelské zkušenosti do jejich komunitních a podnikových nabídek Dockeru. Moby je projekt. Produktem je Docker.

Projekt Moby lze popsat ve čtyřech vrstvách:

  1. Úplně předřazené komponenty
  2. Moby
  3. Docker CE
  4. Docker EE
David Chung / Docker Inc.

Organizace projektu do vrstev by měla zajistit přirozený obsah, který vzniká, když je třeba rozhodovat mezi tím, co funguje pro projekt vs. produkt. Docker jako produkt bude přidávat názory informované jejich uživateli (pro jejich uživatele snazší). Například containerd nemá výchozí registr, zatímco Docker bude mít Docker hub jako výchozí nebo rozhraní Docker CLI, které poskytuje snadné vyhledávání otevřených problémů, které máte pro svůj projekt ve fóru / systému podpory Docker. Uživatelé nedotčeni. Uživatelé budou stále komunikovat s Dockerem stejným způsobem.

  • Vývojáři aplikací hledají snadný způsob, jak provozovat své aplikace v kontejnerech, se mohou podívat na Docker CE.
  • Enterprise IT při pohledu na komerčně podporovanou kontejnerovou platformu připravenou k použití se může podívat na Docker EE.

U těchto uživatelů se nic nezmění. Příkazový řádek zůstává stejný. Docker nyní může využít ekosystém k rychlejší inovaci.

  • Tvůrci systému snaha využít komponenty projektu Moby se může inovovat, aniž by byla spojena s Dockerem.

Řízení projektu

Projekt Moby je otevřený a bude komunitním projektem. Společnost Docker Inc. má obecnou vůli darovat jednotlivé součásti tohoto projektu jiným řídícím orgánům, kde je to vhodné. Containerd musí stát samostatně od Moby org, protože byl darován CNCF. Dlouhodobé individuální projekty by se nakonec měly přesunout a přejít do jiných úložišť.

Časté dotazy k projektu Moby

  • Nyní, když Moby rozbíjí monotlit, budou začleněny i jiné jazyky než Go?
    • Pro LinuxKit - existuje závazek vůči Ocaml a Rust. Neexistuje žádný hlavní plán na změnu jazyků.
  • Bude REST nahrazen gRPC?
    • Docker Inc obecně touží opustit REST API jako konstantní fasádu, zatímco přesouvá interní komunikaci mezi projekty Moby na gRPC. Komponenta může měnit jazyky a nemá na jiné komponenty vliv (stejně jako mikroslužby poskytují výběr). Engine má HTTP REST API a všechny komponenty nižší úrovně přijaly gRPC. Solomon navrhuje přijetí gRPC jako standardního rozhraní. Mezi výhody patří více automatizované nástroje.
  • Kde najdete Docker CE (projekt open source)?
    • TBD — Docker / CLI will now have the client libraries and SDKs for now. Balení a stavba je specifická pro jednotlivé edice, protože existuje mnoho Dockerů pro XXX.