Comments 15
Supervisord — тянет за собой питон (ничего против не имею, но как бы место жалко, особенно учитывая количество сервисов)
Куда тянет? Это на каком дистрибутиве нету питона из коробки?
Zabbix'ы и иже с ним — вроде хорошо, но либо тяжелые агенты, либо большая задержка.
И не тянет php?
Куда тянет? Это на каком дистрибутиве нету питона из коробки?
В образах для докера. Т.к. далеко не всем приложениям нужен питон для запуска, то большинство образов его в себя не включают. Например alpine.
И не тянет php?
Тут я вопроса не понял. Чутка деталей было бы отлично.
Предполагаю, что речь шла про какой-то web UI, но зачем в мелкие контейнеры тянуть еще N утилит общего назначения?
А что насчет docker swarm? Вроде не такой тяжелый.
Спасибо, интересная статья. А вот можно прояснить следующий момент:
Далее, мы хотим передать это администраторам для дальнейшего использования. Километровую строку запуска отправлять как-то не комильфо.
Не очень ясна роль администратора в вашем воркфлоу, я так понимаю, что все происходит автоматически, без вмешательства человека, сервисы, если падают, поднимаются сами. Или все равно кто-то должен настаивать супервизор в запускаемых контейнерах… можете чуть подробнее этот момент описать?
Имелось ввиду, что мы хотим передать другим людям (например админам) для дальнейшей эксплуатации готовый набор параметров и настроек.
Грубый пример: перенос между стендами разработки и тестирования.
А чем хуже вариант использовать существующие приложения?
- в качестве надёжного супервизора взять что-то из семейства daemontools (напр. runit или s6)
- аргументы запуска прописать в явном виде sh-скрипта, запускающего сервис
- для регистрации в консуле тупо отправлять HTTP-запрос в консул любой тулзой из скрипта стартующего сервис
- для репорта крешей опять же запускать что-то аналогичное (репорт по HTTP в какой-нить сервис вроде pushgateway для prometheus) из скрипта запускаемого супервизором при креше сервиса
По сути, всё это разные задачи, которые нужны в разных комбинациях под разные ситуации. Тулзы, которые всё это делают — занимают ещё меньше, чем бинарник Go-приложения (супервизор из runit — runsv — занимает 30KB и не тянет никаких нестандартных динамических библиотек).
Если у вас сотни контейнеров, то имхо кубернетис или мезос — никакая не пушка для воробьев. К тому же кастомное решение — это Касторное решение со всеми вытекающими.
Вы завелосипедили nomad (ну и, если что, есть такая штука, как consul registrator).
Очень легкая система мониторинга с Телеграмом и Консулом