【问题标题】:Increase reliability of capistrano deploys提高 capistrano 部署的可靠性
【发布时间】:2010-07-25 13:10:55
【问题描述】:
我已经使用 capistrano 很长时间了,但总是用于不重要的网站。如果出现问题,几分钟的停机时间不是什么大问题。
现在我正在开发一项更关键的服务,需要涵盖我的边缘情况。其中之一是如果我与服务器的本地连接在部署过程中中断。
我能想到的一个解决方案是直接从服务器进行部署,在屏幕会话内。这似乎是一个合理且明显的解决方案,但令我惊讶的是,我从未在其他地方读过它,甚至从未在 capistrano 文档中看到过它的推荐。
欢迎任何指针/提示。谢谢!
【问题讨论】:
标签:
ruby-on-rails
deployment
screen
capistrano
【解决方案1】:
在典型的 Capistrano 部署过程中,只有非常短的时间窗口会导致连接中断。此窗口是当前版本链接到新版本并通知服务器重新启动的时间。如果您的连接在此之前或之后断开,那没关系。
如果您确实需要 100% 避免断开连接,您可以登录服务器,打开屏幕会话并从最新版本文件夹进行 cap 部署。
【讨论】:
-
re “在典型的 Capistrano 部署过程中,只有一个非常小的时间窗口会导致连接中断”:情况并非如此。由于 ssh 超时,长时间运行的部署(例如 lhm migrations)会失败。