Какво представлява проектът Moby на Docker?

Тъй като съм в Остин , ми харесваше да имам местен DockerCon и съм съавтор на ръководство за посещение на Остин с надеждата присъстващите да се радват да имат DockerCon и в Остин.

По време на DockerCon 2017 бяха направени няколко основни съобщения, включително Moby Project. 

Какво представлява проектът Moby? Това е рамка за сглобяване на специализирани контейнерни системи, без да се преоткрива колелото.

Проектът Moby е да Docker какво е Fedora за Red Hat Enterprise Linux. - Соломон Хайкс, технически директор / основател на Docker

С превръщането на проекта в контейнер, еквивалентен на проекта Fedora, начина на изграждане на Docker се променя.

Red Hat свършиха добра работа в ранните дни на объркването на RHEL, тъй като очертаха проекта от продукт; те разделят Fedora от RHEL. Docker вижда този подход като начин за по-добро ангажиране на общността. Границите между общността и продуктите преди това бяха размити. Хората не можеха непременно да разберат кога допринасят за проекта спрямо продукта. Това разделяне на кода между хранилището moby / moby и хранилището докер / докер изяснява това разграничение.

Moby ще преобразува Docker от монолитен двигател в набор от инструменти, за да сглоби компонентите му в различни конфигурации. Проектът Moby трябва да насърчава повторната употреба на всеки от компонентите. Docker има история на успех в това отношение и може да се измери при повторното им използване извън техния създател:

  • Те отделиха OCI / runc и сега това е установеният стандарт за време на изпълнение на контейнери и формати на изображения.
  • Те отделиха контейнера и сега той е фактическият индустриален стандарт за времетраене на контейнери с принос от всички основни доставчици на облаци и 99 процента от базата за инсталиране (милиони възли по целия свят).
  • Нотариусът се превърна в най-зрелото внедряване на TUF в индустрията и център за сътрудничество за сигурността.
  • Дистрибуцията на Docker е основата с отворен код за дузина търговски продукти.

Екипът на Docker се надява, че тъй като монолитът на Docker е разбит на по-малки парчета, тези отделни компоненти могат да се превърнат в градивни елементи за персонализирани решения. Преди това е пребивавал в докер / докер, монолитният проект е преместен в moby / moby.

За проекта възникна известно объркване. Екипът на Docker информира проекта добре за участниците в конференцията и за повечето от поддръжниците. Въпреки това хората, които по-небрежно взаимодействат в общността, бяха изненадани и неясни относно нейната цел и въздействие, изразявайки разочарование от неразбирането как различните части се съчетават или какво правят новите функции (например LinuxKit).

Проектът @moby накратко: отвътре и отвън. pic.twitter.com/K8Rn9YYtVs

- Соломон Хайкс (@solomonstre) 22 април 2017 г.

Проектът Moby дава възможност на конструкторите на системи да създават други проекти върху същия инструмент. Системният конструктор може да поиска да изпълнява тези сглобки по различен начин, в зависимост от това дали работят на малко IoT устройство или ако работят на голяма система с графични процесори.

Има още много работа за разбиване на компоненти; целта обаче е да се създаде един голям нагоре по веригата за Docker - който е Moby. Docker Inc. иска инструментариумът да е по-отворен от Docker. Решенията за дизайн на продукти понякога са в противоречие с консенсусния проект с отворен код. Разделянето на опасенията позволява на Docker Inc. да компилира мнения за потребителския опит в своите предложения за общността и предприятията Docker. Моби е проектът. Docker е продуктът.

Проектът Moby може да бъде описан на четири слоя:

  1. Докрай компонентите нагоре по веригата
  2. Моби
  3. Докер CE
  4. Docker EE
Дейвид Чунг / Docker Inc.

Организацията на проекта на слоеве трябва да успокои естественото съдържание, което възниква, когато трябва да се вземат решения между това, което работи за проекта спрямо продукта. Docker като продукт ще добавя мнения, информирани от техните потребители (за да бъде по-лесно за техните потребители). Например, containerd няма регистър по подразбиране, докато Docker ще има Docker hub като подразбиране или Docker CLI, осигурявайки лесно търсене на отворени проблеми, които имате за вашия проект във форума / системата за поддръжка на Docker. Потребителите незасегнати. Потребителите пак ще взаимодействат с Docker по същия начин.

  • Разработчиците на приложения, които търсят лесен начин за стартиране на своите приложения в контейнери, могат да търсят Docker CE.
  • Корпоративните ИТ, които  търсят готова за употреба, комерсиално поддържана платформа за контейнери, може да търсят Docker EE.

За тези потребители нищо не се променя. Командният ред остава същият. Docker вече може да използва екосистемата, за да иновации по-бързо за тях.

  • Системните конструктори, които  искат да използват компонентите на проекта Moby, могат да правят иновации, без да са обвързани с Docker.

Управление на проекта

Проектът Moby е отворен и ще бъде проект, ръководен от общността. Docker Inc. има обща склонност да дарява отделни компоненти в този проект на други ръководни органи, където е уместно. Containerd трябва да стои сам от организацията Moby, защото е дарена на CNCF. Дългосрочните индивидуални проекти в крайна сметка трябва да се изнесат и да отидат в други хранилища.

Често задавани въпроси за проекта Moby

  • Сега, когато Moby разбива монолита, ще бъдат ли включени други езици освен Go?
    • За LinuxKit - има ангажимент към Ocaml и Rust. Няма генерален план за смяна на езиците.
  • Ще бъде ли заменен REST с gRPC?
    • Docker Inc обикновено иска да остави REST API като постоянна фасада, като същевременно премести вътрешната комуникация между проектите на Moby към gRPC. Компонентът може да променя езиците и да не влияе върху други компоненти (точно както микросервизите предоставят избор). Двигателят има HTTP REST API и всички компоненти от по-ниско ниво са приели gRPC. Соломон предлага приемането на gRPC като стандартен интерфейс. Предимствата включват по-автоматизирани инструменти.
  • Къде ще намерите Docker CE (проектът с отворен код)?
    • TBD — Docker / CLI засега ще има клиентски библиотеки и SDK. Опаковането и изграждането са специфични за изданието, като се има предвид, че има много Docker за XXX.