апи было написано на несте + ангуляр апка, а потом появился реквайрмент ССР запилить
мы разделяем - переди есть nginx, один контейнер api, другой контейнер ssr, третий контейнер статика из assets (фолбек на ssr сервер идет только если нет статики). И крутрим 3 севрера ssr в roundrobin. Причины такого разделения:
1. Время ответа SSR - рендеринг происходит фактически синхронно, поэтому без кеширования он очень долго отдает страницы. Поэтому в ssr вбит кеш, и метод для вармапа при старте.
2. Все выше перечисленное на самом деле важно, потому что сервер SSR периодически падает. Причем не всегда по обьяснимой причиене. К примеру оборачиванеи его в bugsnug приводит к падению в некоторых сценариях (идентифицировать которые у меня не получилось).
3. АПИ живет в отдельном контейнере со своим состоянием, если вдруг апи нужно что-то обновить в ssr - есть метод сбросить кеш ssr (опять таки просто рассылаем на все инстансы ssr)
Такая схема в целом не плохо себя зарекомендовала, хотя имеет внутри местами очевидные костыли - к примеру nginx не умеет обновлять список апстимов динамически в бесплатной весрии, поэтому это сделанно через dns resolve с временем жизни 4 секунды и автоповторением запросов на следующий бекенд, если получен неожиданный ответ.