Visitors have accessed this post 21192 times.

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

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

Visitors have accessed this post 21192 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)
Введено символов из возможных
Не отвечать

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

Как и для чего я автоматизировал проверку количества shapshot’ов
array(1) { [0]=> object(WP_Term)#11543 (16) { ["term_id"]=> int(7) ["name"]=> string(6) "DevOps" ["slug"]=> string(6) "devops" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(7) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(19) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(7) ["category_count"]=> int(19) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "DevOps" ["category_nicename"]=> string(6) "devops" ["category_parent"]=> int(0) } } DevOps

Автор - Максим Куприенко
Ищем корень зла
Как-то я столкнулся с интересной задачей. А именно - при работе с системой виртуализации VMware vSphere иногда возникала следующая проблема: для некоторых виртуальных машин выполнение штатных операций (старт/стоп/перезапуск) стало занимать гораздо больше времени, а также падала производительность самой...

4
0
28 августа 2020
Кто такой DevOps-инженер, чем он занимается и как им стать
array(1) { [0]=> object(WP_Term)#976 (16) { ["term_id"]=> int(7) ["name"]=> string(6) "DevOps" ["slug"]=> string(6) "devops" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(7) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(19) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(7) ["category_count"]=> int(19) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "DevOps" ["category_nicename"]=> string(6) "devops" ["category_parent"]=> int(0) } } DevOps

Хайповая профессия с неоправданно высокой зарплатой – такое мнение про DevOps-инженеров можно часто встретить в сети. Давайте попробуем разобраться, что это за зверь такой высокооплачиваемый и можно ли им стать без участия в рискованных генетических экспериментах и вживления в голову суперкомпьютера.

Что такое DevOps?
Методология DevOps...

0
0
27 мая 2020
Лучшие книги по DevOps
array(1) { [0]=> object(WP_Term)#11543 (16) { ["term_id"]=> int(7) ["name"]=> string(6) "DevOps" ["slug"]=> string(6) "devops" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(7) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(19) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(7) ["category_count"]=> int(19) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "DevOps" ["category_nicename"]=> string(6) "devops" ["category_parent"]=> int(0) } } DevOps

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

4
0
25 мая 2020