В быстро меняющейся контейнерной среде оркестровка является важным компонентом платформы для разработки, доставки и запуска распределенных приложений как для разработчиков, так и для администраторов.
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 определяет желаемое состояние службы, используя декларативный подход. Например, в службе обмена сообщениями с системой базы данных вы можете описать приложение, состоящее, например, из интерфейсных служб.
Масштабирование: Вы можете объявить количество задач, которые будут выполняться каждой определенной службой. При увеличении или уменьшении масштаба узел управления автоматически настраивается путем удаления или добавления задач в ожидаемое состояние.