如何将相同的应用程序部署到多个服务器

本文关键字:部署 服务器 应用程序 | 更新日期: 2023-09-27 18:08:45

寻找人们为了将相同的web应用程序或进程部署到多个服务器所做的事情的例子。目前的部署过程包括将相同的文件多次复制到我们公司的不同服务器上。必须有一个更好的方法来做到这一点,现在我正在寻找ms构建,有人有其他的想法吗?

如何将相同的应用程序部署到多个服务器

看一下msdeploy和Web Deploy。

我使用了各种方法来完成这个任务。然而,我认为最好的方法是我称之为"滚动"部署。

下面假设只有代码部署:

通过从负载平衡列表中删除一个或多个web服务器使其"脱机",我们称之为A组。你应该保持足够的运行以跟上现有的流量,我们称之为b组。

将代码推送到脱机服务器(A组)。

然后将A组重新旋转,将B组拉出。确保应用程序在新代码下仍然可以运行。如果一切顺利,更新B组并让它们重新轮换。如果出现问题,只需把B组放回去,再把a组拿出来。

在数据库更新的情况下,还有其他因素需要考虑。如果你可以把整个网站在一段时间内关闭,那么就这样做,并执行所有必要的更新。这是迄今为止最简单的。

然而,如果你不能做一个修改后的"滚动"部署,这需要多个数据库服务器。选择一个时间点,将生产数据库的副本移动到第二个时间点。应用您的更改。然后拿出一组web服务器,将它们的代码更新到生产和测试。如果一切顺利,将这些web服务器重新旋转并取出B组。更新B上的代码,同时将它们指向第二个DB服务器。让它们重新旋转。

最后,将主生产数据库上发生的所有数据更改应用到辅助生产数据库。


注意,我不使用Web部署或MS部署来推送到生产环境。坦率地说,我希望准备好将文件复制/粘贴到服务器上的正确目录中,以便推送可以尽可能快地运行。Web和MS Deploy选项都涉及通过网络连接传输这些文件;这通常比简单地从一个本地目录复制/粘贴到另一个要慢得多。

你可以构建一个简单的控制台应用程序,连接到一个固定的sftp下载,解压缩并运行固定目录下的所有文件。元XML文件可用于创建规则如每台机器将运行每一个应用程序,预要求等。

如果你没有一个集中的服务器来统一你的应用程序,你也可以使用dropbox api来下载你的文件。

看一下kwateeSDCM。它与语言和平台无关(Windows、Linux、Solaris、MacOS)。有一篇文章专门介绍在多个tomcat服务器上部署web应用程序。