Где можно почитать про правильную организацию сервера и распределения нагрузки (EN/RUS)?
Есть такой стек. Docker ( Swarm)+ PHP + Redis (Кэш + Сессии) + Postgres (Работают на одном сервере) + Очереди (БД + Redis)
Для распределения нагрузки по ПХП сделаны свои реплики контейнером PHP-FPM
Но хочется почитать более правильную архитектуру проекта на 200-800 юзеров ( Вынос БД на отдельный сервер, советы и тд) Без микросервисной архитектуры ибо проект грубо говоря монолит
FanatPHP, Работа с огромной бизнес-логикой. Прям куча её. Даже Эластик прикручен дабы ускорить работу с гридами, фильтрами и тд , а обновление эластика происходит в очереди. Поэтому и стал вопрос переделать архитектуру проекта. Думаем БД вынести на отдельный сервер
Евгений, "огромная бизнес-логика" - это ни о чем. Пустые слова.
Слово "огромный" является субъективной оценкой, не не несущей никакой смысловой нагрузки. Тут встречаются клиенты, которые рассказывают об "огромной" базе данных в 10 тысяч строк.
"огромная бизнес-логика" тоже непонятно. Если она минимально структурирована, и, условно говоря, не выполняется ВСЯ при любом запросе, то и проблемы нет.
В общем надо как-то конкретнее. Зачем БД выносить на отдельный сервер, если проблемы с эластиком? Не то чтобы её не стоило вынести, но я просто логики не вижу.
Памяти БД хватает? В Innodb_buffer_pool влезают все таблицы с индексами? Если нет - то тогда это и есть причина вынести БД на отдельный сервак. А не "огромная бизнес-логика"
Да читать особо не надо
0) с вашей нагрузкой можно это всё дело на ноутбуке дома запустить, и он справится
1) обвешиваете приложение метриками (grafana итп)
2) время от времени смотрите, где боттлнеки
3) рефакторите этот код или выносите его в отдельный сервис