Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Docker – не единственный вариант контейнера в 2015 году

Оригинал: Docker Not the Only Container Option in 2015
Автор: Forrest Stroud
Дата публикации: January 12, 2015
Перевод: Н.Ромоданов
Дата перевода: март 2015 г.

В мире контейнеров все происходит с невероятной скоростью.

Еще недавно, в октябре 2014 года, казалось, что всем нравился какой-то Docker. Можно было также решить, что Docker — это единственный контейнер.

Действительно, Docker стал на себя обращать внимание только во второй половине 2014 года после дебюта версии Docker 1.0 в июне 2014 года. Но за короткий период с июня по октябрь Docker расцвел благодаря таким компаниям, как Red Hat, которая добавила его поддержку в своем новом релизе RHEL 7. Компания IBM публично разрекламировала Docker и контейнеры, Amazon запустила контейнерный сервис EC2, и даже предполагаемый конкурент Vmware объявил в августе о том, что будет поддерживать Docker.

И хотя Docker контейнеризация, возможно, еще не выступает в качестве полноценной замены виртуализации серверов, и особенно того, что относится к инфраструктуре управления, такие варианты с открытым исходным кодом, как пакет Kubernetes, предназначенный для управления контейнерами Docker, дают проблеск надежды, что в будущем контейнеризация сможет предложить для предприятий более важные решения.

Соревнование в области контейнеризации набирает обороты

И хотя вся вторая половина 2014 года прошла под знаменем поддержки Docker и контейнеризации, теперь оказывается, что все, кто расточал любовь к Docker-у, не совсем единодушны. И в скором времени появится много конкурентов, которые бросят вызов контейнерной гегемонии Docker и ему потребуется еще побороться за свою долю пирога.

Так о ком мы говорим? Во-первых, есть CoreOS, легковесная операционная система с открытым исходным кодом, основанная на ядре Linux и предназначенная для реализации инфраструктуры, в которой развертываются кластерные структуры. Кажется, что Алекс Полви (Alex Polvi), босс проекта CoreOS, совсем не рад тому, что это технологическое направление возглавляет проект Docker.

"Когда нам в начале 2013 года был впервые представлен Docker, идея стандартного контейнера была яркой и сразу же привлекательной", рассказывает он в своем блоге.

"К сожалению, простого повторного использования компонент недостаточно", - продолжает Полви. "Docker сейчас является сборочным инструментом, предназначенным для запуска облачных серверов и систем кластеризации, а также для реализации широкого набора функций: сборки образов, запуска образов, выгрузки образов в репозиторий, загрузки их из репозитория и даже для объединения сетей, причем все собрано в одну монолитную исполняемую программу, работающую на вашем сервере с правами root".

Полви добавляет, что с точки зрения безопасности (и компонуемости) модель процесса Docker, как он считает, является в корне ошибочной, поскольку вся работа ведется через центральный демон.

Затем Полви переходит к сути вопроса. "Мы должны перестать говорить о контейнерах Docker, и начать говорить о платформе Docker. Она, как мы полагаем, не должна быть просто новым композитным строительный блоком. Мы по-прежнему верим в те исходные посылки, которые были привнесены Docker, поэтому мы пытаемся что-нибудь сделать в этом направлении".

Rocket как альтернатива Docker-у этапа времени выполнения

В этом направлении делается следующее — создается новый контейнер времени выполнения под названием Rocket, который является альтернативой этапа времени выполнения Docker. Этот контейнер, по словам Полви, предназначен для лучшей компонуемости, повышения безопасности и улучшения скорости работы. Прототип был размещен на Github.

Бен Голуб (Ben Golub), генеральный директор Docker, почти сразу отреагировал на анонс проекта Rocket. Надеясь указать на некоторые технические аспекты, которые могут в будущем возникнуть в проекте Rocket, он довольно дипломатично заявил:

"Пока мы не приветствуем некоторые из аргументов и сомнительную риторику и сроки объявления выхода проекта Rocket [как раз перед конференцией DockerCon, состоявшейся в Амстердаме], но мы надеемся, что сможем продолжать руководствоваться тем, что станет лучшим для пользователей и для разработчиков".

Но проект Rocket — это не единственная альтернатива контейнеру от Docker. Их больше. Гораздо больше.

Microsoft вводит в бой Drawbridge

Microsoft объявила, что она будет поддерживать контейнеры Docker в своей системе Azure IaaS, но, вероятно, она будет также поддерживать Docker на своей платформе PaaS точно также, как она поддерживает Linux. Microsoft работает над своей собственной контейнерной технологией, которая сейчас называется Drawbridge. И она, вероятно, в какой-то момент не слишком отдаленного будущего появится в Windows Server и в Azure. Действительно, Марк Руссинович (Mark Russinovich), технический директор Azure, подтвердил, что внутри компании проект Drawbridge уже используется.

Есть еще одна возможность, представленная Windows в проекте Spoon. "Проект Spoon позволяет упаковать приложения и их зависимости в виде легковесной изолированной виртуальной среды, которая называется контейнером", - объясняют в компании. "После этого контейнеризированные приложения могут быть запущены на любом компьютере Windows, на котором установлен проект Spoon, причем независимо от того, какая используется базовая инфраструктура. В результате не потребуется устанавливать программы, разрешать конфликты, искать отсутствующие или неожиданно пропавшие зависимости".

Контейнеры Spoon строятся поверх виртуальной машины Spoon, движка виртуализации приложений, с помощью которой реализуется легковесная изоляция пространства имен объектов ядра операционной системы, таких как файловая система, реестр, процесс, сети и подсистемы потоков.

Canonical запускает свою собственную контейнерную систему

Затем компания Canonical для того, чтобы не отстать, объявила о своей собственной контейнерной системе для своего дистрибутива Ubuntu Linux, которая называется LXD. Как сообщает компания, LXD также будет интегрирован с OpenStack. (Docker был построен на основе контейнеров Linux Containers, или LXC; отсюда и название LXD).

Canonical поясняет новую инициативу: "LXC будет клиентом, LXD — это сервер. Разработчикам сегодня в LXC нравится то, что они почти мгновенно получают легковесный контейнер, с которым они могут работать в широком спектре рабочих сред Linux. В будущем разработчики смогут запустить LXD на любой машине, на которой они хотят создавать или уничтожать подобные среды, а также смогут пользоваться LXC для управления процессом из любой точки сети".

И давайте не будем забывать о команде разработчиков Flockport, которая отстаивает использование LXC для контейнеризации. "LXC является контейнерной технологией, в которой нам предлагаются легковесные контейнеры Linux, а Docker является единственным движком виртуализации приложений на основе контейнеров. Может казаться, что это похожие вещи, но они абсолютно разные", - объясняют в Flockport.

В целом ситуация с контейнерами напоминает ситуацию с виртуализацией серверов пяти- или шестилетней давности. Интерес к Docker-у в 2014 носил взрывной характер, и, как кажется, он будет еще больше рости и укрепляться в 2015 году, но Docker, конечно, не будет в будущем единственным игроком в этой области.

Когда появляется что-нибудь стоящее, то в этом рано или поздно хочет поучаствовать каждый, в том числе и Microsoft. И если есть выбор или даже конкуренция, то это хорошо.