Все статьи

Краткий обзор систем оркестрации контейнеров и микросервисов

23 ноя 20218253

Музыкальный термин «оркестрация» не спроста принят в ИТ-среде. Что такое оркестр? Множество музыкантов, играющих свои партии под управлением дирижера.

А теперь представьте себе компанию, в которой разработка цифровых продуктов играет одну из ключевых ролей в жизни бизнеса. При этом не имеет значения, кто является потребителем результата разработки — сотрудники этой компании или же ее клиенты.

Чтобы сократить time-to-market цифровых продуктов, снизить расходы и постоянно повышать конкурентоспособность, необходимо внедрять современные методики и решения для организации процесса разработки — контейнеры, микросервисный подход, DevOps-практики.

В этой статье мы поговорим о том, что такое оркестраторы, кому могут пригодиться эти системы, а кому, наоборот, стоит отказаться от них в пользу ручных инструментов.

Зачем оркестраторы контейнеров

Наверняка по нашей аналогии с миром музыки вы уже догадались, что задача оркестратора — организовать управление микросервисными приложениями. Каждый отдельный микросервис имеет собственные модель и набор данных. С точки зрения разработки и деплоймента микросервисы обладают автономностью и поэтому в большинстве случаев помещаются в собственные контейнеры.

Таким образом, чем крупнее микросервисное приложение, тем больше в нем контейнеров. И в ряде случаев управлять ими в ручном режиме — занятие трудное и непродуктивное.

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

Задачи оркестраторов

Приведем ниже список задач, которые ставятся перед оркестраторами:

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

  • Планирование и конфигурация
  • Здесь имеется в виду настройка процессов, происходящих на сервере, при помощи планировщиков. Подход справедлив как для монолитов, так и для микросервисов. Удобство заключается в том, что системы оркестрации заранее включают в себя необходимый набор программ-планировщиков, поэтому надобность в их ручной инсталляции отпадает.

  • Распределение ресурсов
  • Деплой сервиса или приложения предусматривает выделение серверных ресурсов, таких как RAM и процессорное время. Оркестратор позволяет установить пороговые и нормальные параметры работы и поддерживать приложения «в строю» с минимальными «накладными» затратами ресурсов.

  • Масштабирование контейнеров сообразно рабочим нагрузкам
  • Здесь дополнительные комментарии излишни: слишком большое выделение ресурсов невыгодно, слишком малое способно вызвать задержки и сбои в работе приложения. «Умное» масштабирование на основе реальной нагрузки позволяет свести неэффективные траты к минимуму, сохранив работоспособность приложения на должном уровне.

  • Балансировка нагрузки
  • Балансировщики позволяют распределить нагрузку на серверную часть и находящиеся на ней контейнеры. Это сокращает потребление мощностей, нормализует пропускную способность на канале и повышает скорость отклика.

  • Маршрутизация
  • Под маршрутизацией понимается настройка распределения трафика из глобального интернета по внутренним ресурсам приложения.

  • Отслеживание состояния контейнеров
  • С помощью мониторинга можно в реальном времени отслеживать контейнеры и их параметры: когда, где и какие их образы были запущены, какие внутри контейнеров используются команды, где завышено потребление ресурсов и т.п.

  • Обеспечение безопасности
  • Система выдает администратору предупреждения, основанные на наблюдениях за кластерами: данные о найденных уязвимостях и проблемах конфигурации, а также советы по устранению обнаруженных проблем.

Различия между популярными системами оркестрации контейнеров

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

Приведем несколько примеров и рассмотрим наиболее принципиальные отличия систем оркестрации разных производителей.

Kubernetes

Без сомнения, Kubernetes на данный момент является бесспорным лидером отрасли, и многие решения, принятые в компании, в скорости становятся отраслевым стандартом. Фирменный оркестратор контейнеров поддерживает и декларативный подход к настройке объектов, и автоматизированный. Пользователям доступен функционал для масштабирования, деплоймента из готовых шаблонов, управление рабочими нагрузками и сервисами контейнеров.

Список поддерживаемых ОС весьма широк: Linux и ее дистрибутивы, Windows и macOS.

OpenShift Container Platform

Решение от OpenShift — это серьезная платформа Enterprise-уровня (предоставляется как PaaS), предназначенная для разработки, деплоймента и тонкой конфигурации как контейнерных, так и монолитных приложений. Функционал платформы доступен как в on-premise, так и в виртуальных (включая гибридные) средах. Единственная поддерживаемая операционная система — Linux.

Docker Swarm

Самое стандартное решение от Docker. В ней применяется исключительно декларативная модель управления объектами. Работа с кластерами осуществляется путем ввода команд Docker, а непосредственное управление действиями — через пакет Swarm. Как и в случае с решением от Kubernetes, поддерживаются все популярные ОС: Linux, Windows и macOS.

Нужен ли вам оркестратор?

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

Преимущества оркестраторов:

  • автоматизированный центр разработки и администрирования приложений, основанных на микросервисах;
  • большой набор вспомогательных утилит, призванных сэкономить время;
  • способны решать задачи, которые нецелесообразно вести вручную.

Недостатки оркестраторов:

  • есть вероятность, что использование оркестратора чрезмерно усложнит весьма простую инфраструктуру, управлять которой можно и вручную;
  • понадобится дополнительный ресурс мощностей, на которых будет располагаться система-оркестратор.
  • На сегодняшний день системы оркестрации доступны компаниям в формате SaaS и PaaS: провайдер возьмет все административный функции на себя.