远程代理与本地代理进行持续集成和部署

时间:2015-07-01 07:40:34

标签: .net git bamboo

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

我们还希望拥有一个良好的连续集成和部署服务器。因此,我们也在考虑Bamboo

所有功能似乎都很好。我唯一不理解的是 Agents 部分。有两种口味,Local AgentsRemote Agents

我了解Local Agents安装在与安装Bamboo的机器相同的机器上。 Remote Agents安装在其他计算机上。但我真正理解的是它的重点。为什么不在本地安装5个左右的代理?为什么要在远程计算机上执行此操作?

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

使用Local Agent将代码发布到远程计算机是否可行?或者是必须使用远程代理的地方?

1 个答案:

答案 0 :(得分:7)

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

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

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

如果您只有一个代理商,那么您可以使用本地代理商执行此操作。如果您希望随着时间的推移不断增加代理数量,您可能需要计划使用远程代理。

使用远程代理的几个参数是:

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

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

通常,您可以使用远程代理获得更多自由和灵活性。缺点是安装/配置稍微复杂一些。如果您打算超越一两个构建代理,那么通常值得付出努力。