【问题标题】:How to deploy the same application to multiple servers如何将相同的应用程序部署到多个服务器
【发布时间】:2011-09-15 13:03:00
【问题描述】:

寻找人们为将相同的 web 应用程序或进程部署到多台服务器所做的工作的示例。 现在的部署过程包括将同一个文件多次复制到我们公司内的不同服务器上。现在必须有更好的方法来做到这一点我正在研究 ms build 有人有其他想法吗?提前致谢。

【问题讨论】:

  • 这是仅代码,没有来自开发人员的 SQL 推送,只有 dba 执行此操作。我们只需要一次将相同的应用程序发布到多个服务器上与我们做 SaaS 的产品一样,一内一外。

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


【解决方案1】:

【讨论】:

    【解决方案2】:

    我已经使用多种方法完成了这项工作。不过,我认为最好的部署是我所说的“滚动”部署。

    以下假设只部署代码:

    通过从负载平衡列表中删除一台或多台网络服务器“离线”,我们称之为 A 组。您应该保持足够的运行以跟上现有流量,我们称之为 B 组。推送代码到离线服务器(A组)。

    然后,将 A 组放回轮换状态,将 B 组拉出。确保应用程序仍然可以使用新代码运行。如果一切都好,更新 B 组并让他们轮换。如果出现问题,只需将 B 组放回原处,然后再将 A 组取出。

    在数据库更新的情况下,还需要考虑其他因素。如果您可以在有限的时间内关闭整个站点,那么请执行所有必要的更新。这是迄今为止最简单的。

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

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


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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        看看kwateeSDCM。它与语言和平台无关(Windows、Linux、Solaris、MacOS)。有一个article 专门用于在多个 tomcat 服务器上部署 webapp。

        【讨论】:

          猜你喜欢
          • 2023-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-13
          • 1970-01-01
          • 2020-01-05
          相关资源
          最近更新 更多