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

Viv*_*ndi 4 .net git bamboo

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

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

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

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

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

是否有可能Local Agent将我们的代码发布到远程机器?或者是必须使用远程代理的地方?

nwi*_*ler 7

正如在解释这个环节,本地和远程代理之间的主要区别是它们在何处运行:

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

为了帮助决定你需要哪一个,试着考虑一下你将拥有多少代理商 - 最初,但也要考虑更长期的代理商.

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

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

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

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

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

  • 此外,如果您仅使用本地代理,您可能会减慢 Bamboo 实例本身的速度,从而导致在构建运行时无法使用,因为构建占用了所有系统资源。 (2认同)