Как это верно все сделать?
нанять девопса с опытом работы с докером?
И чтобы если нагрузка на один повысится не падали другие
Так все ж в разных контейнерах, вы можете через cgroups каждому контейнеру ресурсов выделить так что бы хоть чуть чуть другим оставалось. Ну и опять же в случае чего ничего не мешает вам перекинуть контейнеры на другие серваки.
у вас будет:
- 1 nginx контейнер
- 2 node.js контейнера (по одному на каждое приложение)
- 1 php контейнер (если есть cron и т.д. имеет смысл завести еще один контейнер для оного)
- 1 контейнер для базы данных (или 3 если каждому нужно по базе)