我知道将更改推向生产的最佳做法是让服务器A和B的集合为A服务于客户端的网站,以推送B上的更新然后切换A <→B以确保服务的连续性。但是这种感觉有点难以与Capistrano(?)冲突Capistrano重新启动服务器之间的时间间隔以确保服务连续性
我目前在亚马逊云上有一个自动调节服务器池。使用capistrano,我的部署命令将在所有服务器上部署更新,并同时重新启动它们。在乘客自行重新启动期间,我的生产服务器出现停机时间(重新启动可能需要10秒钟,这是一个问题)。
为了避免这种情况,我希望一次重新启动一个服务器,并且在重新启动下一个服务器之前等待x秒钟(我不介意在线上有两个不同版本的代码,我想到的目标场景是部署一个小修补程序)
有没有办法覆盖Capistrano重启任务,以等待一段时间才能在下一台服务器上启动命令?
我想你几乎可以重用这样的: http://stackoverflow.com/questions/8810339/capistrano-sequential-restarts – Ivan