Как правильно организовать архитектуру микросервисов docker?

Есть web приложение (CMS). Стандартный LAMP. Сейчас под каждого юзера создается каталог на сервере, DB, но код у всех един, общие скрипты прилинкованы в каталог юзера, разные только персональные данные, типа изображений. Есть желание перевести все на микросервисы и в докер. Нужна помощь архитектора. Изначально думал создать имидж все-в-одном,: nginx+php+код. DB движок общий но сама база у каждого своя. И на каждого пользователя создавать контейнер. Но задумался над правильностью решения. Имеет ли смысл вынести так же php в отдельный контейнер для всех пользователей?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Правильно задумались. Добавьте в ваши таблицы Userid и храните все в одной базе. Бэкапить 100500 баз то ещё удовольствие
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Ну можно начать с анализа и прикинуть - что и где надо будет менять, если вдруг серьёзно вырастет нагрузка.
Напрашивается нечто типа некий балансировщик, который раскидывает запросы на множество web-серверов, ну а те соответственно стучатся в так или иначе горизонтально размасштабированную базу.
Вот и выходит что N контейнеров-клонов с nginx+php + M контейнеров с базой и перед ними - контейнер(ы) с балансировщиком.

Вот примерно такие абстрактные "линии разреза" в первом приближении.
Дальше уже можно смотреть в сторону полного перфекционизма когда 1 функция = 1[xN]контейнер
Ответ написан
Комментировать
@Drno
lxc котейнер... и под каждого юзера. сделать общий шаблон, и после разворачивание контейнера только менять внутри "необходимое" под каждого юзера
да и бэкапить удобно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы