Docker представила новую версию движка Docker Engine 1.12, главное новшество которого — встроенная оркестровка контейнеров, а также варианты Docker Engine для облаков Microsoft Azure и Amazon AWS, систем MacOS и Windows.
Docker Engine 1.12 еще находится на этапе релиз-кандидата, но уже доступен для разработчиков. Выпуск готового продукта намечен на июль. Остальные новинки вышли в виде бета-версий.
Представители Docker объясняют добавление средств оркестровки в движок желанием упростить создание и развертывание контейнеров. Сейчас для оркестровки предусмотрен отдельный инструмент Docker Swarm. Но не у всех разработчиков есть время и возможность его изучать. Встраивая в Docker Engine базовые средства оркестровки из Docker Swarm, компания хочет демократизировать технологию контейнеризации, чтобы выполнять оркестровку могло большинство разработчиков, а не только те, кто изучил отдельный инструмент.
Сейчас оркестровка является головной болью для разработчиков. «Это сложный процесс, трудный для понимания и реализации, — сказал Скотт Джонстон, главный операционный директор Docker. — Поэтому мы решили встроить базовые элементы оркестровки в Docker Engine».
В версию 1.12 входят основные функции из инструментов Docker Swarm и Compose, предназначенных для оркестровки и кластеризации. В результате разработчики смогут перейти в режим swarm чтобы создавать из движков Docker самовосстанавливающиеся кластеры, которые способны обнаруживать друг друга. Это позволяет автоматизировать горизонтальное масштабирование кластеров и расширять пулы ресурсов. «Мы значительно снижаем накладные расходы, необходимые для развертывания Swarm и расширяем возможности для разработчиков», — сказал Джонстон.
Кроме того, в Docker Engine 1.12 имеются средства балансировки нагрузки внутри swarm-кластера и новый API-интерфейс Service Deployment, позволяющий разработчикам задавать, какие сервисы, образы и порты они хотят использовать.
По словам Джонстона, инструменты Swarm и Compose будут по-прежнему продвигаться как отдельные продукты и останутся без изменений, так как компания не хочет создавать проблемы для существующих внедрений и выполняет свое обещание давать разработчикам возможность использовать инструменты других компаний.
В Docker считают, что расширение функционала Docker Engine пригодится и партнерам, которые строят вокруг платформы контейнеризации свои продукты, так как позволяет воспользоваться нативными функциями оркестровки.
К тому же разработчики и сисадмины, которые хотят применить новый функционал, могут с одной стороны работать с хорошо им знакомыми инструментами на базе командной строки, а с другой — быстрее, чем раньше, готовить инфраструктуру для тестирования или создавать приложения.
Но не исключено, что этот шаг Docker связан с усилением конкуренции в области оркестровки контейнеров. Так, помимо Docker Swarm на рынке есть и другие системы для кластеризации и оркестровки, включая CoreOS Tectonic, Pivotal Cloud Foundry, Rancher Labs, Mesosphere Data Center Operating System и Kubernetes — Open Source-проект на базе технологий Google. Судя по результатам недавнего опроса, большинство приверженцев контейнеризации хотя и предпочитают платформу Docker, для оркестровки применяют Kubernetes. Видимо компания хочет исправить это положение.
Не забыты и вопросы безопасности. Docker утверждает, что система не имеет единой точки отказа и не зависит ни от какой внешней инфраструктуры. Компания продолжает работать над укреплением защиты. Так, в режиме swarm все узлы общаются по TLS, а функция Cryptographic Node позволяет сисадминам направлять приложения на определенные проверенные узлы.
Что касается Docker для AWS и Azure, то эти продукты тесно интегрированы с соответствующей облачной инфраструктурой. Так, Docker для AWS интегрирован с AWS Autoscaling Elastic Load Balancing и Elastic Block Store, а Docker для Azure — с аналогичными облачными сервисами Microsoft.
Docker объясняет отсутствие поддержки для Google Cloud Platform тем, что большинство предприятий пока еще предпочитают AWS и Azure, но собирается со временем охватить также облачные платформы Google, Rackspace и др.