Visitors have accessed this post 269 times.

Зачем нужны системы оркестрации?

3
0
269
16 октября 2020 9:04
Автор: Rebrain Me
Kubernetes

Visitors have accessed this post 269 times.

Автор — Андрей Трошин

Понятие оркестрации

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

Оркестрация контейнеров

Технология контейнеризации в IT на сегодняшний день скорее правило, чем исключение. Контейнеры используются как в инфраструктуре, так и в процессах разработки ПО. Плюсы их очевидны, а минусы незначительны (пока не используются в продакшене — шутка :). И когда в компании число контейнеров или микросервисов переваливает за > много тысяч, встает вопрос, как исполнить грандиозное произведение со всем этим добром. В таком случае и появляется необходимость в системах оркестрации.

Вспомним типичный кейс. Есть некая компания, которая занимается разработкой ПО и у нее имеется процесс CI/CD, например, на Docker + GitLab. Разработчики пишут код, упаковывают его в образы Docker, дальше сохраняют в локальном registry, на этом этап CI (Continuous Integration) обычно заканчивается.

Далее — этап CD (Continuous Deployment). Для него необходима некая среда запуска контейнеров для тестирования. Пока компания маленькая, число релизов и их частота небольшие, процесс работает. Выделяется виртуальная машина, на ней Docker и все ОК. Но компания, а с ней и частота релизов увеличивается. Число виртуальных машин растет, и если это хозяйство не привести в порядок, будет бардачок (не тот, что в автомобиле, а от слова бардак). Этот бардак и приводят в порядок системами оркестрации контейнеров.

Основные игроки на рынке

Задачи оркестрации решают такие продукты, как Kubernetes, Docker Swarm, Apache Mesos — это не единственные продукты на рынке. Также есть системы оркестрации контейнеров Nomad, Amazon EC2 Container Service, Microsoft Azure Container Service, однако они менее популярны. Каждый продукт имеет свои особенности. По большому счету, они все решают две основные задачи:

  • Динамическое распределение контейнеров по узлам кластера
  • Стандарт описания приложения, например, yaml, docker compose и другое

По остальным критериям — дело вкуса и ресурсов на обслуживание.

Система оркестрации Kubernetes

Универсальный солдат, появился в результате наработок Google. В 2014 г. Google открыла код Kubernetes и стала распространять систему под лицензией Apache 2.0. В результате началось быстрое развитие системы сообществом. На данный момент — это стабильный продукт, который одинаково хорошо чувствует себя как в небольших проектах, так и в великом и ужасном Enterprise сегменте.

Система орекстрации Docker Swarm

Компания Docker одна из первых предложила реализацию контейнеров и управление ими. Собственно Kubernetes внутри себя обычно использует Docker как среду исполнения контейнеров (container runtimes). Docker swarm позволяет объединять Docker хосты в общий виртуальный хост. Обычно его используют в небольших проектах. Продукт на данный момент активно развивается.

Apache Mesos

Apache Mesos — это централизованная отказоустойчивая система для управления кластером. Объединяет в группы отдельные узлы, согласно требованиям, а также обеспечивает их изоляцию от остальных IT-ресурсов.

Это разработка университета Беркли, как продукт вышла на рынок в 2009г. Apache Mesos имеет нестандартный подход к своей архитектуре. Он объединяет существующие объекты в единый виртуальный ресурс, формируя крупные кластеры и эффективную систему управления серверной инфраструктурой, где каждому кластеру выделяется свой индивидуальный пул ресурсов. Хорошо подходит для очень больших систем и масштабных проектов.

Оркестрации на примере Kubernetes

Как же Kubernetes наводит порядок в нашей инфраструктуре? Возьмем кейс, описанный выше, и посмотрим, чем нам поможет эта чудо-система:

  • С помощью своего планировщика (kube-scheduler) в режиме реального времени распределяет контейнеры по рабочим нодам. Если ресурсы ноды заканчиваются — выполняет миграцию на доступные по ресурсам узлы.
  • Позволяет запускать сразу несколько реплик приложения и следить за их доступностью. Тем самым обеспечивает отказоустойчивость приложения внутри кластера.
  • Стандартизирует инфраструктуру (Infrastructure as a Code).
  • Удобный мониторинг.

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

Итог

Системы оркестрации контейнеров- это логическое продолжение контейнеризации в сфере IT. Все больше компаний идут в эту сторону и подогревают спрос на инструменты управления.

От редакции

Если вам интересно посещать открытые онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN. *Анонсы мероприятий каждую неделю

Практикумы для специалистов по инфраструктуре и разработчиков — https://rebrainme.com.

Наш Youtube-канал — https://www.youtube.com/channel/UC6uIx64IFKMVmj12gKtSgBQ.

Агентство Fevlake, проектируем и поддерживаем IT-инфраструктуры с 2012 года — https://fevlake.com.

Комментарии (3)
Введено символов из возможных
Не отвечать

Вам также может понравится

Команда chmod — Linux

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

У каждого объекта в вашей системе Linux есть режим выдачи прав, который описывает, какие действия пользователь может выполнять в системе. Существует три типа разрешений: на чтение (chmod r),...

0
0
27 мая 2020
Резервное копирование и восстановление ОС Linux

Автор - Максим Рязанов
Предисловие
Резервное копирование и восстановление ОС - базовый навык, которым должен обладать любой системный администратор. Поэтому давайте на примере практической задачи разберем, как это сделать в ОС Linux.

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

2
0
28 августа 2020
ТОП-8 книг по Docker

Docker появился в 2013 году и до сих пор остается самым популярным инструментом контейнеризации. Так, например, он входит в ТОП-5 технологий, необходимых DevOps-инженеру, по мнению работодателей с hh. Для тех, кто предпочитает академический подход к изучению технологий, мы подготовили список книг, посвященных Docker.
Использование Docker. Моуэт...

4
0
23 октября 2020