如何自动部署Web,但不中断生产服务器

时间:2012-04-24 06:00:32

标签: deployment web production-environment

我想部署一个当前正在运行的网站(php,python,ROR等等) 我的代码是用git托管的 我读到了'deploy your website changes using git

stackoverflow answer

它很有用。但它有一个问题。它会中断生产服务器 虽然时间很短。但如果我们的服务器负载很重。它还会中断用户。

所以我的问题是如何在不中断的情况下将代码部署到生产服务器 假设有几种情况。

  1. 只有一台生产服务器 唯一可行的方法是停止生产服务器并等待部署完成吗?

  2. 两台以上的生产服务器 我知道我们可以停止一个生产服务器并部署到它,然后部署到下一个服务器直到完成 但有没有更好的方法呢?

  3. 所有方法都应该是自动的。谢谢!

2 个答案:

答案 0 :(得分:0)

您无法直接部署到实时生产服务器,而不会在重新加载时中断某些连接。它实际上取决于网站的类型。如果它服务的服务器说php页面,替换页面将允许下一个客户端接收它们。但是,如果部署意味着重新启动进程,那么它将会中断。最终,除非是静态页面,否则你肯定会与我确定的东西冲突。

也许您可以做的是在代理后面有两个生产服务器。让一个人活着。部署到另一个并在部署完成时切换ip / host,然后开始向新更新的服务器发送新流量。原始服务器现在没有接收流量。您可以在下次部署到该服务器并在主机上重新切换主机。然后你总是有一个实时服务器。

答案 1 :(得分:0)

我找到了一个几乎可以解决我问题的工具 它由PHP作者Rasmus Lerdorf开发,名为WePloy 但它只能部署PHP网站。