【问题标题】:Deploying Rails to a cluster on AWS将 Rails 部署到 AWS 上的集群
【发布时间】:2016-12-07 17:05:13
【问题描述】:

我已经在 AWS 上设置了负载均衡器和 EC2 实例的 Auto Scaling 组来托管 Rails 站点。这在大多数情况下都可以正常工作。

我的部署脚本一次将新版本的应用部署到每个实例。

在部署期间,可能会发生页面由具有新版本应用程序的实例提供服务,而某些资产由具有旧版本的实例提供服务(反之亦然)的情况,导致页面缺少图像、css 或javascript。

有没有人能很好的解决这个问题?

我想到了以下选项,但没有一个是理想的:

  • 在部署期间缩减为一台服务器。然后我无法在高峰时间部署。
  • 禁用 Rails 资产指纹。会导致缓存问题。
  • 同时部署到每个实例。增加了风险,我不知道该怎么做。
  • 在负载平衡器上启用粘性会话。不建议这样做,但似乎是我所知道的最佳选择。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services deployment load-balancing


    【解决方案1】:

    您可能想要研究蓝/绿部署,在该部署中站起来部署到新集群,然后通过 DNS 将流量切换到该集群。这样做可以防止您描述的版本不匹配,并为您提供一个简单而直接的回滚选项。然而,它会更复杂、更慢并且(稍微)更贵。

    网络上有大量资源,并且有一个亚马逊特定页面here,尽管它使用 Elastic Beanstalk,因此不会立即适用于您。

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 2020-01-20
      • 2020-08-29
      • 2021-03-16
      • 2018-02-20
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多