.net - 远程代理与本地代理的持续集成和部署

标签 .net git bamboo

我们目前正在考虑使用 Jira 和 Stash 将我们的 .NET 代码从 TFS 源代码管理转移到 Git。

我们也希望有一个好的持续集成和部署服务器。因此,出于这个原因,我们也在寻找 Bamboo .

所有功能似乎都很好。我唯一不明白的是 Agents 部分。有两种风格,Local AgentsRemote Agents

我知道 Local Agents 安装在将要安装 Bamboo 的机器上。并且 Remote Agent 安装在其他机器上。但我真正不明白的是它的意义所在。你为什么不简单地在本地安装 5 个左右的代理?为什么要在远程计算机上执行此操作?

因此我也在质疑 Local Agent 是否可以将我的 .NET 代码发布到任何其他远程服务器?

Local Agent 可以将我们的代码发布到远程机器吗?还是必须使用 Remote Agent?

最佳答案

this link 中所述,本地代理和远程代理之间的主要区别在于它们运行的​​位置:

  • 本地代理与 Bamboo 服务器在同一台机器上运行。它们甚至作为同一进程/JVM 的一部分运行。
  • 远程代理几乎可以在任何地方运行。您网络中甚至云中的专用服务器或 VM。远程代理使用消息队列 (JMS) 与中央 Bamboo 服务器通信。

为了帮助决定您需要哪一个,请尝试考虑您将拥有多少个代理 - 最初,但也要考虑更长远的问题。

如果您只打算聘请一名代理人,您或许可以选择本地代理人。如果您希望随着时间的推移不断增加代理的数量,您可能需要计划使用远程代理。

使用远程代理的几个论点是:

  • 灵 active :随着您的成长,您可以根据需要轻松添加更多远程代理。如果您需要快速启动更多座席,弹性云部署确实可以提供帮助。
  • 可扩展性:如果您只使用本地代理,它们都将在同一个 Java 虚拟机 (JVM) 中运行。每个本地代理都会消耗 CPU 和内存,这意味着您无法无限扩展。使用远程代理,每个代理都有自己的进程,这将允许更好地扩展代理,而不会在进程大小/内存使用方面达到操作系统限制。
  • 位置:您可以拥有一个中央 Bamboo 服务器,然后用它支持多个单独的团队,例如如果您是一家全局性公司。每个团队都可以使用专用远程代理和专用配置运行自己的构建服务器。
  • 故障转移:拥有多个远程代理,并将它们与中央 Bamboo 服务器分开将使您能够以更轻松的方式重新启动代理。如果一切都在中央 Bamboo 进程中运行,如果您重新启动它,您的所有代理也将重新启动。

关于您的网络问题:当然,您可以从远程代理或本地代理部署到任何其他服务器。您需要在服务器之间建立网络访问,只要您拥有它,您就可以非常自由地进行部署。在大多数情况下,我们使用 SSH/SCP/SFTP,但也使用 HTTPS 来使用 Web 服务(例如 Tomcat 或 JBoss)进行部署。

一般来说,远程代理会给您带来更大的自由度和灵 active 。缺点是安装/配置稍微复杂一些。如果您打算超越一两个构建代理,通常值得付出努力。

关于.net - 远程代理与本地代理的持续集成和部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155328/

相关文章:

git - 列出我已推送到远程 Git 存储库的所有文件

git - 如何一次查看所有 stash ?

git - 当我执行 git Branch -a 时,分支下的分支会是什么样子?

azure - 如何从 Bamboo 执行 SonarQube Runner?

grails - 正确指定在Bamboo上构建的Grails 3的测试报告位置

.net - 温莎城堡 : How to specify a constructor parameter from code?

c# - 允许连接到完整性级别不匹配的 .NET COM 服务器

Java在本地读取测试源文件,但在Bamboo服务器上读取失败

c# - 配置 IIS 7.0 元数据库问题

c# - 如何使用省略了 lambda 的非常短的 linq 将方法应用于所有列表成员?