В быстро меняющейся контейнерной среде оркестровка является важным компонентом платформы для разработки, доставки и запуска распределенных приложений как для разработчиков, так и для администраторов.

Docker Swarm является частью набора инструментов оркестрации, который включает:

Docker Swarm — распределяет запуск контейнеров и связывает Docker Engine в кластеры Docker Machine — автоматизирует установку Docker на хост-систему Docker Compose — создает многоконтейнерные приложения

До недавнего времени кластеры были отдельными приложениями, создавая так называемые swarm — рой, отсюда и название Docker Swarm. Это изменилось с недавним обновлением Docker Engine (Docker Engine 1.12), которое объединяет Docker Swarm и Docker Engine, тем самым повышая надежность и масштабируемость кластеров.

Что такое Swarm?

Swarm — это коллекция (кластер) узлов, на которых работает Docker Engine в децентрализованной среде, для последующего развертывания службы. Режим роения включает масштабирование, обнаружение служб, состояние ожидания и другие функции:

Интеграция с управлением кластером Docker Engine: использование командной строки Docker Engine позволяет создавать «ферму» Docker и развертывать службы приложений.

Для управления фермой Docker Swarm больше не требуется дополнительное программное обеспечение для оркестровки.

Децентрализованная структура: роль, которую данный узел играет в запуске службы, не важна, поскольку Docker Engine может обрабатывать любой тип узла. Это означает, что вы можете запустить узел управления или обработки и построить всю ферму Docker Swarm, используя только один образ диска.

Декларативная модель службы: Docker Engine определяет желаемое состояние службы, используя декларативный подход. Например, в службе обмена сообщениями с системой базы данных вы можете описать приложение, состоящее, например, из интерфейсных служб.

Масштабирование: Вы можете объявить количество задач, которые будут выполняться каждой определенной службой. При увеличении или уменьшении масштаба узел управления автоматически настраивается путем удаления или добавления задач в ожидаемое состояние.