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

Deployment 如何自动部署web,但不中断生产服务器,deployment,web,production-environment,Deployment,Web,Production Environment,我想部署一个当前运行的Web站点PHP、python、ROR等等。 我的代码是用git托管的。 我读到 及 这很有用。但它有一个问题。它将中断生产服务器。 虽然时间很短。但是如果我们的服务器负载很重。它还会中断用户 因此,我的问题是如何在不中断的情况下将代码部署到生产服务器。 假设几种情况 只有一台生产服务器。 停止生产服务器并等待部署完成是唯一可行的方法吗 两台以上的生产服务器。 我知道我们可以停止一台生产服务器并部署到它,然后部署到下一台服务器,直到完成。 但是有什么方法可以做得更好吗 所有

我想部署一个当前运行的Web站点PHP、python、ROR等等。 我的代码是用git托管的。 我读到

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

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

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

两台以上的生产服务器。 我知道我们可以停止一台生产服务器并部署到它,然后部署到下一台服务器,直到完成。 但是有什么方法可以做得更好吗


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

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


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

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