Рубрика кэпа: контейнеры и оркестраторы. Часть 1.

В общем, сейчас дофига разных систем оркестрации контейнеров. А зачем они вообще нужны?

Зачем вообще нужны контейнеры?

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

Оркестраторы

В статье It's The Future ребята остроумно хохмят на тему того, что необходимо использовать все современные технологии для решения обычной задачки. Типа вам к докеру надо и сервис дискавери, и кластеризацию, и перламутровые пуговицы. На самом деле это не новые проблемы: каждая система управления конфигурациями брала на себя задачи сервис дискавери вроде «сгенерить конфиг балансера и в нужном окружении подставить правильный ip в конфиг приложения». Другое дело, что если мы имеем дело с легковесными контейнерами, то ждать обновления шефа по пять минут не хочется. К тому же, если у нас приложения быстро поднимаются и быстро опускаются, то почему бы не поднимать их только тогда, когда они нужны?
То, что слабо взлетало с виртуализацией из-за медленного старта виртуальной машины, взлетело с контейнерами, и оркестраторы начали плодиться как грибы, подогреваемые жаждой нового и стройной идеологией.

Критика оркестраторов

Всё новое модно хаять, и естественно, со всех сторон на адептов докера сразу посыпались обвинения в смузисосательстве и хипстерстве. Если убрать неконструктивные комментарии типа «докер хуже SELINUX» (кто говорил, что лучше?) или «контейнеры глючат» (что?) и нападки от тех, кто просто не понял, какую проблему решают контейнеры, то останется здравая идея: зачем усложнять что-то, что уже работает?

Мне, например, непонятно, зачем использовать оркестраторы контейнеров в облаках, где мы и так за вполне сносное время можем получить отличную изоляцию и автоскейлинг. То есть кубернетис продаётся так: вы в любое время можете хотеть видеть работающими от 2 до 5 инстансов приложения, которым будет нужно 2 процессора и 2 гига оперативной памяти, и оркестратор сам решит, на каком хосте есть свободные ресурсы, и запустит приложения там. Но погодите! У нас и так есть возможность выделять ресурсы просто настроив автоскейлинг группу в амазоне! Так ли уж необходима дополнительная степень абстракции?

А ещё почти все оркестраторы предполагают изучение новых концептов и поддержку разнообразных и ранее не используемых технологий. Это сложно и не всегда оправданно.

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