Контроль и управление большим пулом веб-сервисов

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

* Сервис по выдаче фотографий
* Сервис по выдаче видео
* Сервис по конвертации видео
* Сервис по обслуживанию бизнес логики связанной с пользователями
* Сервис доступа к внутренней базе данных
* Сервис доступа к внешней БД
*…

Чтобы понять суть вопроса, немного преувеличим проблему и представим себе, что сервисов очень большое количество: 100, 200.

Каждый сервис имеет сетевой адрес и, для простоты, является JSON-Rpc сервисом. Также для простоты, будем считать, что все эти сервисы наследуют некоторую базовую функциональность, например они все умеют выдавать свою версию, выключаться по внешней команде (если такая функциональность нужна) и т.п.

Задача: контролировать запуск, выключение, мониторинг данных процессов. В частности, т.к. многие из этих сервисов зачастую физически расположены на одном сервере — то было бы удобно как минимум иметь скрипты для запуска всех процессов разом или выключения. Также, чтобы понять, вся ли конфигурация сервисов работает, полезно устраивать опрос сервисов после запуска данных скриптов, чтобы убедиться, что все запустились или все выключены.

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

Вопрос: Существуют ли какие-то известные решения, возможно полезные готовые утилиты для подобного рода задач, концепции и/или практики и какие здесь могут быть практические советы?

Примечание: При ответе на данный вопрос не нужно учитывать специфику каких-то конкретных серверов или служб хостинга сервисов. Можно в принципе условно считать, что веб-сервер, сервисы и все компоненты системы созданы с нуля и поэтому схемы конфигурации, поведение сервисов и/или сервиса, механизм деплоймента и другие аспекты можно изменять как угодно, чтобы добиться нужного удобства.
  • Вопрос задан
  • 2452 просмотра
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
во первых виртуализация, никаких 10 сервисов на одном сервере, каждый сервис в своем контейнере виртуализации. для управления всеми виртуальными серверами что нибудь вроде solus или второй proxmox.
деплоймент через хадсон
мониторинг zabbix
управление сервера через cf и puppet
если есть необходимость обновления софта то наверно стоит задуматься о загрузке по сети.
Ответ написан
Комментировать
@phasma
> Цели: удобство деплоймента, мониторинга, диагностики системы, состоящей из большого количества процессов, возможно расположенных на различных серверах.

ssh + авторизация по ключам. Готового решения под конкретно свою задачу не найдешь. Можешь еще посмотреть всякиех системы монторинга, cfengine. В зависимости от дистрибутива создать локальный репозиторий с rpm/deb и разворачивать нужны вещи через пакеты.
Ответ написан
Комментировать
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
именно разворачивание — можно посмотреть в сторону systemimager ва\\плюс обвязка конфигурации через свн
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы