【发布时间】:2016-12-07 17:05:13
【问题描述】:
我已经在 AWS 上设置了负载均衡器和 EC2 实例的 Auto Scaling 组来托管 Rails 站点。这在大多数情况下都可以正常工作。
我的部署脚本一次将新版本的应用部署到每个实例。
在部署期间,可能会发生页面由具有新版本应用程序的实例提供服务,而某些资产由具有旧版本的实例提供服务(反之亦然)的情况,导致页面缺少图像、css 或javascript。
有没有人能很好的解决这个问题?
我想到了以下选项,但没有一个是理想的:
- 在部署期间缩减为一台服务器。然后我无法在高峰时间部署。
- 禁用 Rails 资产指纹。会导致缓存问题。
- 同时部署到每个实例。增加了风险,我不知道该怎么做。
- 在负载平衡器上启用粘性会话。不建议这样做,但似乎是我所知道的最佳选择。
【问题讨论】:
标签: ruby-on-rails amazon-web-services deployment load-balancing