我们目前正在考虑使用 Jira 和 Stash 将我们的 .NET 代码从 TFS 源代码管理转移到 Git。
我们也希望有一个好的持续集成和部署服务器。因此,出于这个原因,我们也在寻找 Bamboo .
所有功能似乎都很好。我唯一不明白的是 Agents 部分。有两种风格,Local Agents
和 Remote 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/