Как правильно организовать архитектуру микросервисов docker?
Есть web приложение (CMS). Стандартный LAMP. Сейчас под каждого юзера создается каталог на сервере, DB, но код у всех един, общие скрипты прилинкованы в каталог юзера, разные только персональные данные, типа изображений. Есть желание перевести все на микросервисы и в докер. Нужна помощь архитектора. Изначально думал создать имидж все-в-одном,: nginx+php+код. DB движок общий но сама база у каждого своя. И на каждого пользователя создавать контейнер. Но задумался над правильностью решения. Имеет ли смысл вынести так же php в отдельный контейнер для всех пользователей?
Владимир, спасибо за комментарий. Но, к сожалению, не получится такой вариант базы. Слишком большой рефакторинг придется делать. Продукт писался несколько лет под конкретную задачу и заказчика. Но стал востребован :-) в данный момент интересует целесообразность выноса php в отдельный контейнер.
Ну можно начать с анализа и прикинуть - что и где надо будет менять, если вдруг серьёзно вырастет нагрузка.
Напрашивается нечто типа некий балансировщик, который раскидывает запросы на множество web-серверов, ну а те соответственно стучатся в так или иначе горизонтально размасштабированную базу.
Вот и выходит что N контейнеров-клонов с nginx+php + M контейнеров с базой и перед ними - контейнер(ы) с балансировщиком.
Вот примерно такие абстрактные "линии разреза" в первом приближении.
Дальше уже можно смотреть в сторону полного перфекционизма когда 1 функция = 1[xN]контейнер
lxc котейнер... и под каждого юзера. сделать общий шаблон, и после разворачивание контейнера только менять внутри "необходимое" под каждого юзера
да и бэкапить удобно