Правильно ли под каждый микросервис запускать сервер базы данных?

Философия докера о том что "один процесс = один контейнер". Так как микросервисы могут иметь базу данных и балансировщик нагрузки то это уже больше чем один контейнер. Правильно запускать под каждый микросервис свой контейнер с сервером базы данных и свой балансировщик или один контейнер сервера базы данных для всех микросервисов ?
  • Вопрос задан
  • 1128 просмотров
Пригласить эксперта
Ответы на вопрос 3
2ord
@2ord
Имеется в виду одна БД не для каждого отдельного экземпляра микросервиса, а для всех экземпляров некоторого микросервиса. Скажем, 10 контейнеров микросервиса с одним DB connection string. Соответственно, 1 балансировщик на эту группу.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
База - сама по себе, микросервис - сам по себе.
У базы может быть свой кластер с репликацией базы по своим нодам. У микросервиса - свой кластер, со своими контейнерами. В результате и база и сервис можно горизонтально масштабировать, в зависимости от того, что работает недостаточно быстро.

Основной смысл контейнеров - быстрое развертывание чего-либо в его окружении, без долгой подготовки этого окружения и с минимальными затратами ресурсов на это окружение.

А непосредственно балансировщик - это вообще часть функционала кластера или сетевой подсистемы, а не непосредственно контейнера.
Ответ написан
Комментировать
past
@past
Системный администратор
Как уже написали, база это отдельный сервис. Если нужна база, пишется сервис для общения с ней и остальные сервисы общаются через него.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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