0

Я установил балансировщик нагрузки и группу автоматического масштабирования экземпляров EC2 на AWS для размещения сайта Rails. Все это прекрасно работает большую часть времени.Развертывание рельсов в кластере на AWS

Мой сценарий развертывания развертывает новые версии приложения для каждого экземпляра по одному за раз.

Во время развертывания может случиться, что страница обслуживается экземпляром с новой версией приложения, а некоторые активы обслуживаются экземпляром со старой версией (или наоборот), что приводит к страницам с отсутствующими изображениями, css или javascript.

У кого-нибудь есть хорошее решение этой проблемы?

Я думал о следующих вариантов, но ни один не идеальны:

  • Масштаб вниз к одному серверу во время развертывания. Тогда я не могу развернуть в пиковые времена.
  • Отключить отпечатки пальцев активов Rails. Возникают проблемы с кешированием.
  • Развертывание для каждого экземпляра одновременно. Увеличивает риск, и я не знаю, как это сделать в любом случае.
  • Включить липкие сеансы на балансировочном устройстве. Это не рекомендуется, но, кажется, лучший вариант, о котором я знаю.

ответ

0

Возможно, вам захочется взглянуть на развертывание синего/зеленого, где вы встаете и развертываете новый кластер, а затем переключаете трафик на него через DNS. Это позволит предотвратить несоответствие версий, которые вы описываете, а также дать вам простой и немедленный вариант отката. Однако было бы сложнее, медленнее и (чуть) дороже.

В Интернете есть много ресурсов, и есть специальная страница Amazon here, хотя она использует эластичный бобовый шток и поэтому не будет немедленно применима для вас.

Смежные вопросы