Я установил балансировщик нагрузки и группу автоматического масштабирования экземпляров EC2 на AWS для размещения сайта Rails. Все это прекрасно работает большую часть времени.Развертывание рельсов в кластере на AWS
Мой сценарий развертывания развертывает новые версии приложения для каждого экземпляра по одному за раз.
Во время развертывания может случиться, что страница обслуживается экземпляром с новой версией приложения, а некоторые активы обслуживаются экземпляром со старой версией (или наоборот), что приводит к страницам с отсутствующими изображениями, css или javascript.
У кого-нибудь есть хорошее решение этой проблемы?
Я думал о следующих вариантов, но ни один не идеальны:
- Масштаб вниз к одному серверу во время развертывания. Тогда я не могу развернуть в пиковые времена.
- Отключить отпечатки пальцев активов Rails. Возникают проблемы с кешированием.
- Развертывание для каждого экземпляра одновременно. Увеличивает риск, и я не знаю, как это сделать в любом случае.
- Включить липкие сеансы на балансировочном устройстве. Это не рекомендуется, но, кажется, лучший вариант, о котором я знаю.