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

时间:2011-09-15 13:03:01

标签: c# asp.net web-applications deployment process

查找人们为了将相同的webapp或流程部署到多个服务器所做的工作的示例。 现在,部署过程包括将同一文件多次复制到公司内的不同服务器。现在必须有一个更好的方法来做这个我正在研究ms build是否有人有其他想法?提前谢谢。

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我使用各种方法完成了这项工作。但是,我认为最好的就是我称之为“滚动”的部署。

以下假定仅代码部署:

将一个或多个Web服务器从负载平衡列表中删除,让它们“脱机”,让我们调用此组A.您应该保持足够的运行以跟上现有流量,我们将调用这些组B.推送代码离线服务器(A组)。

然后,将A组重新旋转并拉出B组。确保应用程序仍然可以使用新代码。如果一切正常,请更新B组并将其重新轮换。如果出现问题,只需将B组重新放入并再次取出A.

在数据库更新的情况下,还有其他因素需要考虑。如果您可以在整个站点停留一段时间,请执行此操作并执行所有必要的更新。这是迄今为止最简单的。

但是,如果您不能再进行需要多个数据库服务器的修改“滚动”部署。选择一个时间点并将生产数据库的副本移动到第二个。应用您的更改。然后拉出一组Web服务器,将其代码更新为生产和测试。如果一切正常,请将这些Web服务器重新轮换并取出组B.更新B上的代码,同时将它们指向第二个DB服务器。把它们放回旋转状态。

最后,将主要生产数据库上发生的所有数据更改应用于次要数据库。


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

答案 2 :(得分:-1)

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

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

答案 3 :(得分:-1)

看看kwateeSDCM。它的语言和平台无关(Windows,Linux,Solaris,MacOS)。有一个article致力于在多个tomcat服务器上部署webapp。