我知道将更改推送到生产环境的最佳实践是拥有一组服务器 A 和 B,让 A 为客户端服务网站,在 B 上推送更新,然后切换 A<->B 以确保服务的连续性. 但这感觉有点难以用 Capistrano 实现(?)
我目前在亚马逊云上有一个自动缩放的服务器池。使用 capistrano,我的部署命令将在所有服务器上部署更新,并同时重新启动它们。在乘客重新启动期间,我的生产服务器出现停机时间(重新启动可能需要 10 秒,所以这是一个问题)。
为了避免这种情况,我想一次重新启动我的服务器,并在重新启动下一个服务器之前等待 x 秒(我不介意在线是否有 2 个不同版本的代码,目标场景我请记住,正在部署一个小修补程序)
有没有办法覆盖 Capistrano 重新启动任务,以便在下一个服务器上启动命令之前等待一段时间?