- PVSM.RU - https://www.pvsm.ru -
Месяц назад компания Docker на конференции DockerCon 2017 официально представила [1] свой новый Open Source-проект — Moby [2]. Если это просто ещё один дополнительный проект, нужный кому-то, кто работает с Docker… то почему, как заметили внимательные пользователи, основной репозиторий компании в GitHub — docker/docker — стал пересылать на moby/moby [3]?

Чтобы комплексно разобраться в данном вопросе, начнём с краткого экскурса в новейшую историю развития Docker…
Docker как платформа для запуска контейнеров использует множество вспомогательных компонентов, которые компания-разработчик называет «сантехникой» (plumbing). Уже не первый год инженеры Docker стараются сделать свою платформу более модульной, выделив отдельные её части в самостоятельные Open Source-проекты.
Когда в 2015 году было анонсировано [4] первое такое крупное «отделение» — утилиты runC для запуска контейнеров, — компания опубликовала свой «Манифест инфраструктурной сантехники» (Infrastructure Plumbing Manifesto), в котором зафиксировала главные принципы:
Отделённая тогда утилита runC выполняла одну функцию платформы Docker — запуск контейнеров. Она требовала для этого корневую файловую систему и конфигурацию, предоставляя решение всех сопутствующих задач (получение образа, его распаковку…) другим инструментам.
Весной этого года схожая участь постигла containerd — компонент, выделенный из Docker и реализующий исполняемую среду для контейнеров. Подробно о нём мы рассказывали в этой статье [5]. Оба эти проекта (runC и containerd) не только получили свои отдельные Git-репозитории, но и независимый «дом» в виде организации CNCF (Cloud Native Computing Foundation).
И вот с недавним анонсом Moby компания пошла ещё дальше, обобщив и систематизировав свой подход к модульной архитектуре Docker.
Изначальный анонс Moby сравнивал [6] его с набором для конструкторов Лего из десятков компонентов и фреймворка для их сборки в комплекты (assemblies). Поясняя свои намерения, авторы говорили о стремлении «развить движение контейнеризации программного обеспечения и способствовать тому, чтобы экосистема приняла контейнеры как мейнстрим».
В более прагматичном смысле Moby оказался фреймворком, который предоставляет:
Как и в случае с самим Docker, проект Moby задаётся целью предоставить гибкое решение, при разработке которого следуют строгим руководящим принципам. Заключаются же они в следующем:
С появлением Moby платформа Docker окончательно перестаёт быть «монолитом», превращаясь в продукт сборки компонентов из Moby:
Проект Moby предоставляет консольную утилиту
moby, которая собирает компоненты. На данный момент она собирает загружаемые образы операционной системы, но в скором временем будет использоваться в Docker для его сборки из компонентов, многие из которых станут независимыми проектами.
Это объясняет и причину исчезновения Git-репозитория docker/docker как такового (и его пересылки на moby/moby [3]): разработчикам теперь предлагают не единый продукт (уже собранную систему), а фреймворк для сборки такого продукта в соответствии со своими потребностями (т.е. тот самый конструктор). Одним из таких продуктов будет Docker CE (и Docker EE), а другим — может стать ваша разработка.

С помощью Moby собирается платформа Docker… и ваша контейнерная система
Поскольку появление Moby (и перенос основного репозитория) спровоцировало понятные вопросы у большого числа конечных пользователей Docker, основатель компании Соломон Хайкс (Solomon Hykes) был вынужден публично пояснить [8], что «пользователей [появление Moby] не затронет; бинарные файлы останутся прежними».
На сайте Moby предлагается следующий список потенциальных пользователей проекта:
Отдельным перечнем идёт список, кому Moby не нужен: разработчикам приложений (индивидуальным и компаниям), которые ищут простой способ запуска приложений в контейнерах (для них советуют Docker CE и Docker EE соответственно), а также любопытствующим узнать о контейнерах и найти лёгкий путь освоить их (для этого, по мнению авторов, достаточно сайта docker.com [9], с чем трудно спорить).
В самой компании Docker используют Moby «как научно-исследовательскую лабораторию для экспериментов, разработки новых компонентов и совместной работы над экосистемой для будущего контейнерных технологий».
В ближайшее время благодаря Moby можно ожидать появления дополнительных отделённых от Docker компонентов, как это произошло с runC и containerd, а также вспомогательных инструментов, альтернативных реализаций тех или иных функций от энтузиастов и компаний, новых Docker-подобных платформ, ориентированных на особые случаи применения контейнеров.
Первым проектом, условно связанным с Moby, стал анонсированный [10] одновременно с ним LinuxKit [11] — набор утилит для сборки своих компактных, безопасных, портируемых Linux-дистрибутивов для контейнеров. Он использует Moby для сборки образов дистрибутива. Простую практическую демонстрацию того, как Moby и LinuxKit работают в связке, можно найти в этой статье [12] (англ. яз.).
С момента анонса Moby прошёл всего месяц, а ещё через месяц (19 июня 2017 г.) состоится первое посвящённое ему и ориентированное на «продвинутых пользователей контейнеров» мероприятие — Moby Summit [14], — которое должно стать ежегодным.
P.S. Читайте также «Зачем нужен containerd и почему его отделили от Docker? [5]» и подписывайтесь на наш хаб для обновлений!
Автор: Флант
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/sistemnoe-administrirovanie/255818
Ссылки в тексте:
[1] представила: https://blog.docker.com/2017/04/introducing-the-moby-project/
[2] Moby: https://mobyproject.org/
[3] moby/moby: https://github.com/moby/moby
[4] было анонсировано: https://blog.docker.com/2015/06/runc/
[5] этой статье: https://habrahabr.ru/company/flant/blog/325358/
[6] сравнивал: https://www.nixp.ru/news/14002.html
[7] проект rkt: https://coreos.com/rkt
[8] публично пояснить: https://twitter.com/solomonstre/status/855056118757961728
[9] docker.com: https://docker.com/
[10] анонсированный: https://blog.docker.com/2017/04/introducing-linuxkit-container-os-toolkit/
[11] LinuxKit: https://github.com/linuxkit/linuxkit
[12] этой статье: https://medium.com/aishik/getting-started-with-linuxkit-and-moby-project-ff7121c4e321
[13] Image: https://github.com/linuxkit/
[14] Moby Summit: https://www.eventbrite.com/e/moby-summit-tickets-34483396768
[15] Источник: https://habrahabr.ru/post/329136/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.