在虚拟机中拥有构建服务器会更好吗?在 VM 中拥有构建服务器的好处是否超过成本?
5 回答
以下是在虚拟环境中运行构建服务器的一些优势:
在多个构建服务器上共享一个快速的盒子——假设你有六个构建服务器。将一台速度非常快(4-cpu、64-128gb 内存、非常快的硬盘驱动器等)的机器放在一起,并在其上运行管理程序。现在,所有构建服务器都可以访问这个更快的硬件,如果他们正在构建而其他构建服务器没有。建立一个构建计划,您应该能够进行更快的构建。如果您必须使用物理盒子,您可能无法在每台单独的构建服务器上负担那种质量级别的硬件——但是当它被共享时,这更容易证明是合理的。
机器出现故障时无需停机- 您的生产构建不会在出现硬件问题时崩溃停止,您只需在另一台虚拟化主机上启动构建服务器即可。(这仅在您使用共享存储时才有效。)
轻松的硬件升级- 当需要新的构建服务器时,您不必重新安装任何讨厌的操作系统。只需将来宾操作系统移至新的物理主机,您就可以开始比赛了。
构建服务器是需要以非常一致的方式构建的东西。您需要有一个有据可查且完全可复制的配方来制作您的构建服务器。
但是,构建服务器并不是对性能至关重要……或者至少,它们对生产系统的性能并不重要,因此您可以在 VM 中拥有一个。
如果您需要独立于硬件和软件的兼容性,那么使用虚拟机实际上是一个好主意。您首选的硬件供应商可能会停止在他们的新机器上支持您的构建服务器所需的操作系统版本,然后您的旧构建服务器的保修可能会到期。这使您可能无法在该操作系统中进行构建。
然后,您将面临在 ebay 上拖网进行第二手更换,购买供应商的过时套件库存,或者进行一些不可靠的不受支持的软件黑客攻击。(注意:这几乎发生在我们身上,我们做了一些)
与往常一样,这取决于...
假设您有其他 VM 在同一台服务器上运行,并且这些其他 VM 可以处理由正在运行的构建导致的偶尔减速,那么我会说是的。但是,如果您要在单个主机上托管单个构建服务器 VM,或者如果其他 VM 会受到偶尔运行的构建的负面影响,那么不会。
我可以告诉你,在我工作的地方,我们已经切换到在 VMWare 上托管我们的大部分构建服务器。由于我们每周运行多次构建,包含 5 条以上的产品线,因此我们将它们全部托管在一台快速机器上是有意义的。我们还将大部分测试机器托管在同一台服务器上,这使我们能够充分利用机器,并且由于没有生产服务器在其上运行,因此在构建期间发生的减速不是问题。
我没有看到任何好处,除非您的虚拟机位于某个虚拟服务器上。
将 VM 用于构建服务器的优缺点与将 VM 用于任何其他服务的优缺点相同。
这个问题同样适用于将 VM 用于邮件服务器/wiki 服务器等。
(我只是将其发布为评论,但还没有代表)