Рубрика:
Администрирование /
Виртуализация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ДЕНИС СИЛАКОВ, к.ф.-м.н., старший системный архитектор Virtuozzo, dsilakov@virtuozzo.com
Open Containers Initiative Стандартизация в мире контейнеров
Контейнеры – один из главных трендов последних лет в области виртуализации, и на рынке уже есть несколько альтернативных решений, претендующих на готовность к промышленному использованию. В такой ситуации важно не только качество продукта, но и простота миграции с одного решения на другое
Немного истории
Контейнерная виртуализация как таковая существует уже достаточно давно, однако появление открытых механизмов для работы с контейнерами непосредственно в ядре Linux вкупе с активными маркетинговыми кампаниями создателей Docker и CoreOS привлекли широкое внимание публики и существенно расширили круг компаний, интересующихся этими технологиями.
Вместе с таким расширением изменилось и общепринятое понимание термина «контейнер». Долгое время этим термином обозначали легковесный вариант виртуального окружения, реализуемый посредством ядра ОС и позволяющий нескольким ОС одновременно работать на одной машине с тем ограничением, что внутри этих систем должно работать ядро основной ОС [1]. Типичными примерами таких реализаций являются Solaris Zones и FreeBSD Jail, а в Linux – OpenVZ/Virtuozzo и относительно молодой LXC.
Основным направлением развития таких инструментов было уменьшение накладных расходов с целью уместить как можно большее количество виртуальных окружений на одном физическом сервере. Docker же несколько сместил акцент, сделав ставку не просто на запуск изолированного экземпляра «голой» ОС, но на развертывание внутри контейнера некоторой программы или стека приложений [2].
Своей целевой аудиторией разработчики Docker объявили уже не системных администраторов, желающих уместить побольше систем на одном сервере, а разработчиков и распространителей приложений. Вместо подготовки и тестирования продукта под разными ОС им достаточно запаковать его в контейнер и не беспокоиться о процессе развертывания, об установке зависимостей и прочих трудностях. Такой подход быстро набрал немалое количество сторонников, и, какрезультат, сейчас под словом «контейнер» понимают скорее не легковесной виртуальное окружение, а приложение, готовое к запуску в изолированной (прежде всего от других приложений) среде.
Проблемы и решения
Хотя Docker можно смело назвать первопроходцем в новой области, он недолго оставался единственным игроком на этом поле. Почувствовав перспективу данного направления, многие компании поспешили так или иначе выразить поддержку Docker, в то время как другие пошли альтернативным путем и стали предлагать свои решения.
Одним из наиболее заметных игроков стал проект CoreOS – легковесная система на основе ядра Linux, в которой каждое приложение запускается внутри отдельного контейнера. Изначально для управления контейнерами в CoreOS использовался Docker, однако вскоре разработчики представили свою альтернативу под названием Rocket (или сокращенно rkt). Причина создания Rocket – недовольство путем, которым пошло развитие Docker. По мнению создателей CoreOS [3], Docker вышел далеко за рамки начальной идеи разработки контейнера для запуска приложений, и инструментарий проекта обрастает все новым и новым функционалом.
Как известно, отличное от единицы количество поставщиков порождает конкуренцию и в целом приводит к положительным последствиям для конечного пользователя, не давая технологиям застыть в стагнации. С другой стороны, если альтернативные решения не совместимы друг с другом и переход с одного на другое по стоимости сравним с запуском нового проекта, то пользователи оказываются перед непростой дилеммой и риском оказаться привязанным к одному конкретному инструментарию.
Статью целиком читайте в журнале «Системный администратор», №07-08 за 2016 г. на страницах 06-08.
PDF-версию данного номера можно приобрести в нашем магазине.
- Силаков Д. Виртуализация на платформе x86. // «Системный администратор», №10, 2013 г. – С. 80-84 (http://samag.ru/archive/article/2547).
- Силаков Д. Проект Docker. Управляем виртуальными окружениями. // «Системный администратор», №3, 2015 г. – С. 10-14 (http://samag.ru/archive/article/2887).
- Alex Polvi. CoreOS is building a container runtime, rkt. // CoreOS Blog – https://coreos.com/blog/rocket.
- Ben Golub. Docker and Broad Industry Coalition Unite to Create Open Container Project. // Docker Blog – https://blog.docker.com/2015/06/open-container-project-foundation.
- Официальный сайт The Open Containers Initiative – https://www.opencontainers.org.
- OCI Image Format – https://github.com/opencontainers/image-spec.
- OCI Runtime Specification – https://github.com/opencontainers/runtime-spec.
- App Container Specification and Tooling – https://github.com/appc/spec.
- Docker 1.11: The first runtime built on containerd and based on OCI technology. // Docker Blog – https://blog.docker.com/2016/04/docker-engine-1-11-runc.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|