将代码部署到负载平衡环境中的服务器

将代码部署到负载平衡环境中的服务器

我们开始考虑在多台虚拟服务器(CloudServers @ Rackspace)上托管我们的网站。当我仔细考虑这些因素时,我想到的是如何将 Subversion 存储库中的代码部署到这些服务器上?

可能性:A)通过 SSH 进入每一个并运行“svn update”B)为我执行(A)的脚本c)还有别的吗?

还有什么其他方法可以将代码部署到 n 台服务器。如果服务器有 2 台,我认为 (A) 或 (B) 都很容易,但对于拥有 1,000 台服务器的网站怎么办?他们如何管理代码部署?

更新:这是我在这个主题上找到的一个很好的链接。 HighScalability.com:代码部署工具

答案1

我所熟悉的最常见的有三种:

  • 自定义软件包(rpm、.deb 等)和自定义存储库(yum、apt 等)。设置好后,您就可以构建软件包并直接从 svn 将其推送到存储库中。
  • 木偶、Chef、cfengine 等等……
  • 卡皮斯特拉诺

实际上使用这三个工具并不不合理。包用于保存代码,puppet 用于配置代码,capistrano 用于管理推送更新。

答案2

在之前的工作中,我们没有 1000 台服务器,但有 20 或 30 台。我们有一个跳转服务器,代码被推送到该服务器,它每三分钟运行一次 rsync 以将代码推送到所有其他服务器。

另一种方法是安装一个 NFS,所有代码都从该 NFS 上运行,这也是我目前的工作所采用的方法。

答案3

如果代码是“集群安全的” - 就像您在每个系统上部署完全相同的代码一样 - 那么将代码合并到 NFS 服务器上(或两个用于 HA 的服务器)。

只需将您的存储库检出到 NFS 服务器上一次,然后在每个应用程序服务器上安装包含相同代码的共享。

现在您只需一个位置即可保持更新。

答案4

那么共享存储后端怎么样?将代码加载到单个位置,然后所有服务器都会使用更新后的副本。

相关内容