2 июня 2021

Системы оркестрации: есть ли альтернатива Kubernetes?

Микросервисная архитектура становится стандартом для разработки приложений. Растет спрос на системы оркестрации, которые позволяют управлять множеством контейнеров. Чем отличаются наиболее популярные решения, для каких задач они подходят и почему Kubernetes называют наиболее перспективной технологией, рассказывает Дмитрий Лазаренко, директор по продукту Mail.ru Cloud Solutions.

Мировой рынок коммерческих контейнеров будет ежегодно увеличиваться в среднем на 30% до 2023 года, прогнозирует IHS Markit. К этому времени его объем превысит $1,6 млрд. В Gartner считают, что выручка от продаж программного обеспечения и услуг по управлению контейнерами в 2020-2024 годах увеличится с $465,8 млн до $944 млн.

 

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

 

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

 

Приложения могут состоять из тысяч микросервисов. Для управления ими нужны оркестраторы. Они представляют собой программное обеспечение, при помощи которого пользователь может распределять контейнеры по узлам кластера (балансировать нагрузку) и координировать их взаимодействие.

 

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

 

Наиболее распространенные оркестраторы — Kubernetes, Apache Mesos, Docker Swarm, Nomad. Разберемся, чем они отличаются и для каких задач подходят.

 

Docker Swarm

 

Одни из самых распространенных софтверных решений для управления приложениями в контейнерах — инструменты Docker. Среди них есть стандартный оркестратор для микросервисов Docker Swarm, доступный “из коробки”. Вместо прямого использования контейнеров в Docker Swarm используют сервисы (Docker Swarm Service).

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

 

Например, если по какой-то причине один из контейнеров “отвалится”, то Docker Swarm создаст новую реплику (контейнер) на другом хосте. Ноды в Docker складываются в кластеры (Docker Swarm Cluster), которые состоят из нод двух типов.

 

Управляющая нода (Manager) принимает запросы и распределяет задачи между всеми нодами в кластере. Таких нод в каждом отдельном кластере всегда несколько, с обязательным выделением “ноды-лидера”, которая управляет всем кластером. Остальные ноды - рабочие (Worker) или подчиненные, используемые только для выполнения поставленных задач.

 

Решение отличается оперативностью развертывания контейнеров: создать кластер в Docker Swarm можно буквально за минуту. Также Docker Swarm обладает достаточной производительностью и отказоустойчивостью. Но его функционал ограничен Docker API. Ему доступно только то, что позволяют делать возможности Docker.

 

Для управления оркестратор использует REST API, совместимый с Docker API, в результате чего абсолютно все инструменты, совместимые с Docker API, могут работать с кластером Docker Swarm, как с обычным хостом. Это удобно. Однако если API не поддерживает какую-либо возможность, решить проблему непросто, т.к. Docker Swarm не предусматривает какие-либо возможности расширения простому разработчику, не связанному с компанией Docker Inc.

 

Kubernetes

Несмотря на свою молодость (первая версия появилась в 2015 году), Kubernetes (K8s) обладает широкой функциональностью и позволяет строить сложные распределенные системы. С помощью этого оркестратора компании автоматизируют разработку и обновление приложений, существенно сокращая время вывода продуктов на рынок.

 

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

 

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

 

При этом Kubernetes — довольно “дорогая”, с точки зрения временных инвестиций, и сложная технология. Нужны специалисты, которые разбираются в ней, следят за ее развитием и новыми возможностями. Облачное развертывание Kubernetes-as-a-Service значительно упрощает настройку и использование инструмента.

Например, такое решение есть в Mail.Ru Cloud Solutions. Kubernetes-as-a-Service от MCS единственный в России имеет сертификацию CNCF. Она подтверждает, что оркестратор отвечает всем функциональным требованиям сообщества Cloud Native Computing Foundation и совместим со стандартным Kubernetes API.

 

Решение “из коробки” включает в себя автоматическое масштабирование кластера до сотен нод с использованием Kubernetes Cluster Autoscaler. Инструмент также позволяет задействовать выделенные балансировщики нагрузки для распределения трафика внутри системы, поддерживает интегрированные Persistent Volumes на базе блочного хранилища CEPH, виртуального файлового хранилища или SSD/NVME-дисков, подключенных по iSCSI к каждому вычислительному серверу. Предусмотрен собственный Terraform-провайдер для работы с инфраструктурой как кодом.

 

Apache Mesos

Оркестратор Apache Mesos чуть проще в развертывании, чем K8s, но сложнее в администрировании. Он имеет высокие показатели по производительности и отказоустойчивости.

По своей сути Apache Mesos является диспетчером, менеджером кластера. Его архитектура состоит из мастера (Mesos Master) и агентов (Mesos Agent). Фреймворки  (Mesos Frameworks) запускают на агентах конкретные рабочие задачи. Фреймворк состоит из планировщика (Scheduler) и исполнителя (Executor), который запускается на нодах агентов. В одном кластере Mesos может работать несколько фреймворков для разных типов задач.

Изначально Mesos создавался для работы с задачами по работе с большими данными, отсюда его высокая производительность, которая опережает Kubernetes. 

 

Чемпион по масштабируемости: поддерживает развертывание и управление десятками тысяч нод (у K8s “потолок” - 5 000 нод). В тестовой платформе с использованием Mesosphere DC/OS удалось зафиксировать показатель 50 000 активных нод.

 

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

 

Nomad

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

 

Эта простота позволяет поддерживать производительность на более высоком, чем у того же K8s уровне, а также масштабируемость до 10 000 нод. Рабочую нагрузку в Nomad определяет работа (Job), описывающая желаемое состояние кластера и состоящая из одной или нескольких групп задач (Task). Nomad должен поддерживать соответствие между желаемым и фактическим состоянием кластера.

 

Оркестратор очень прост в развертывании, однако настроить кластер в Nomad под нужные требования уже сложнее. Это делается с помощью внешних инструментов, таких как Consul, Vault и др.

При этом у этого оркестратора нет Autodiscovery-инструментов для обнаружения новых сервисов на основе DNS,  отсутствует шаблонизация и скромнее сетевые возможности.

 

Облака упрощают использование технологий

Аналитики Gartner прогнозируют, что к 2022 году 75% организаций перейдут на Kubernetes. Столь высокий спрос на него объясняется наиболее развитым функционалом, а также наличием более простой и удобной сервисной модели использования технологии — Managed Kubernetes.

 

K8s сложно самостоятельно настраивать, развертывать и поддерживать. Но Kubernetes как облачный сервис (KaaS) решает эти проблемы при сохранении всех преимуществ оркестратора. K8s можно развернуть из облака и настроить за 10 минут. Компаниям не нужно администрировать кластер — этим занимается облачный провайдер. С помощью автомасштабирования можно увеличивать мощности или "отдавать" их обратно в облако. Пользователь оплачивает только те ресурсы, которые фактически использовал.

 

Для небольших команд или единичных проектов использование Kubernetes экономически нецелесообразно: лучше выбрать более простой оркестратор. K8s больше подходит для компаний, которые ведут постоянную разработку ИТ-продуктов. Например, компания "Кометрика", которая разрабатывает ИТ-решения для умного города и цифрового бизнеса, ускорила запуск новых продуктов примерно в семь раз. В таких кейсах использование Kubernetes не только оправданно, но и необходимо.

 

Источник: GlobalCIO

Исследование iTrend: зарплата для ИТ-специалистов — не решающий фактор при выборе работодателя

23 апреля 2024

Эксперты коммуникационного агентства iTrend провели исследование, в рамках которого проанализировали критерии выбора работы, а также медиапредпочтения более 300 высокоуровневых специалистов из крупных российских ИТ-компаний.

 

Команда iTrend начала работу с Институтом iSpring

19 апреля 2024

Институт iSpring — частный ИТ-вуз нового поколения. Он был основан в 2021 году в Йошкар-Оле российским предпринимателем и основателем международной ИТ-компании iSpring Юрием Усковым.

 

Вебинар РУССОФТ, iTrend и BiToBe: «Работодатель-as-a-Service: новая реальность привлечения ИТ-специалистов»

15 апреля 2024

23 апреля в 15:00 пройдет открытый вебинар «Работодатель-as-a-Service: Новая реальность привлечения ИТ-специалистов»

 

iTrend: освоить маркировку интернет-рекламы можно только на собственном опыте

25 марта 2024

В феврале 2024 года в Москве прошла Конференция «Digital-коммуникации России». Организатор мероприятия – Ассоциация директоров по коммуникациям и корпоративным медиа России (АКМР). Эксперты конференции обсудили острые вопросы рынка digital, в том числе маркировку интернет-рекламы. Об опыте коммуникационного агентства в рамках перехода на работу по новым правилам рассказала Екатерина Саранцева, директор по развитию iTrend.

 

Медиалогия: iTrend – в ТОП-4 коммуникационных агентств по медиаиндексу за январь 2024 года

20 марта 2024

Коммуникационное агентство iTrend вошло в пятерку агентств, получивших наиболее высокий медиаиндекс по данным рейтинга «Медиалогии» за январь 2024 года. Компания заняла четвёртую строчку ранкинга, набрав 433,2 пункта МИ. Медиаактивность участников рынка оценивалась на основе анализа базы российских СМИ, включающей в себя более 88 тыс. источников — ТВ, радио, газеты, журналы, информационные агентства и Интернет-СМИ.

 
Все новости iTrend