Как правильно деплоить приложение на несколько серверов?
Подскажите, пожалуйста, как правильно организовать выкладку релизов на несколько серверов?
Планируется масштабировать проект: поставить 3 сервера вместо одного и балансировщик, например HAProxy или Nginx, который будет распределять запросы между ними.
Сейчас процесс деплоя у меня такой:
1. на ПК git push
2. на сервере git pull
3. на сервере npm run build
В случае увеличения количества серверов нужно как-то синхронизировать данные между ними. Я еще не изучал CI/CD инструменты, возможно это то что мне нужно. Но пока я их не посмотрел у меня вопрос, почему бы не настроить сервера так, чтобы один из них был "главный", а остальные два просто тянули с него все изменения через rsync?
почему бы не настроить сервера так, чтобы один из них был "главный", а остальные два просто тянули с него все изменения через rsync?
Потому что не принято полагаться на статичность серверов.
Можно сделать или standalone скрипт, или на основе Jenkins (CircleCI или десяток остальных) который будет:
git pull
npm build
rsync на список серверов