2

我们在 Rackspace 上有一个站点,有 2 台服务器和一个负载均衡器,使用 Capistrano(实际上是 Capifony)部署。我想:

  1. 在负载均衡器上禁用服务器 1
  2. 将服务器 1 升级到新代码
  3. 暂停,让我通过登录到它的 IP 地址来测试服务器 1
  4. 重新启用服务器 1;在负载均衡器上禁用服务器 2(用户现在将获得新版本的站点)
  5. 将服务器 2 升级到新代码
  6. 暂停,让我测试服务器 2
  7. 在负载平衡器上重新启用服务器 2。

该数据库托管在其他地方,不受此升级的影响。

Capistrano 似乎非常擅长一次部署到多台服务器(尽管我希望看到这个问题的答案),但不清楚如何执行上述操作。在非常常见的情况下,这似乎是一种安全的升级方式。

我想如果我添加规则来做负载均衡器,我也许可以使用这个答案来使部署连续运行,而不是一次全部运行。

一个不错的选择是 capistrano 可以完成所有部署,但不更改两台服务器上的当前符号链接。然后我可以手动进行负载平衡并自己更新符号链接。

这个问题类似,但给出的答案不适用于 PHP,因为不需要重新启动服务器 - 新代码将在您上传后立即开始执行。

4

0 回答 0