我打算向我的(非常小的)公司建议我们购买一台计算机来运行持续集成。如果他们说是,那么实际购买机器的任务可能会落在我身上,所以我的问题是:
我在一台用于为一个非常小的(3 人)php 团队进行持续集成的计算机中寻找什么?
哪些“东西”(内存、处理器等)很重要,哪些不重要?
我打算向我的(非常小的)公司建议我们购买一台计算机来运行持续集成。如果他们说是,那么实际购买机器的任务可能会落在我身上,所以我的问题是:
我在一台用于为一个非常小的(3 人)php 团队进行持续集成的计算机中寻找什么?
哪些“东西”(内存、处理器等)很重要,哪些不重要?
你真的不需要那么强大的机器。如果您正在运行测试或其他指标,处理能力可能是您最关心的问题,但实际上您可以在旧的 pentium 1 上运行它,它可能会工作。
您的约束将成为您的操作环境。如果您正在运行 LAMP,您希望使用可以很好地处理 LAMP 设置的机器,这几乎是任何相当现代的 *nix 机器。
我在我们放置的旧 Pentium4 工作站上为 .NET 设置了一个持续集成设置,它处理得很好。
如果您在构建中归档代码,要记住的一件事是存储空间。
当我们使用Maven、Continuum和Clearcase并按小时构建时,存储成为我们的问题。每次构建后都会留下快照视图。
我们有一个足够强大的盒子(Sun Fire V490)并将它用于我们的开发集成环境和Archiva存储库。所以我们从来没有真正遇到过性能和内存问题。事实上,我们唯一一次遇到 PermGen 内存问题的是构建 Maven 站点目标,这意味着使用 -XX:MaxPermSize=128m。
根据我的经验,这不一定是强大的机器。您用于开发的任何机器都会非常令人满意。显然,如果您在代码提交上运行单元测试,机器越快,响应就越快。我们的 CI 服务器正在运行 XP SP2、3G 处理器、3G RAM,它现在已经无法满足我们的需求。也就是说,最好在提交后 6 分钟内收到一封电子邮件,让您知道构建是否干净并且所有测试是否通过。对于每晚构建,规格可能会下降更多,因为您可能有更多时间来完成这些工作。硬盘空间(现在 300G 是合理的)非常适合存储报告和构建回归,但如果你有一个 NAS,你可能会在构建工件后推掉它们。
您今天可以购买的几乎任何新机器都可以处理在不太大的源代码树上进行持续集成的任务。一些要寻找的东西:
RAM:足以运行您的 CI 工具(phpUnderControl?)以及您想要用于构建和测试的任何支持软件。
存储:决定要在机器上保留多少旧版本。以我的经验,保留很多是没有用的,尤其是。如果您的小团队没有很多正式的流程来回滚到旧版本。
CPU:无问题。您可以购买的任何机器都可以使用。
因此,在两者之间,我倾向于使用 RAM 而不是存储空间。
除非应用程序很大,否则我只会得到一个带有大约 4 GB 内存的双核盒子,可能还有 2 个相当快的 SATA 磁盘设置在 RAID 0 中。500 Gigs 可能吗?
如果您想真正安全地使用它,请在 RAID 0 中为 OS 分区获取两个 70 多个 gig 驱动器,然后在 RAID 5 中为数据获取 3 140+ gig 驱动器。
机器性能无关紧要,但请注意可用性,因为一旦您开始使用它并且有一天神奇的烟雾会消失,您需要尽快更换它才能继续工作。定义合理的备份策略,并确保您知道如何在必要时设置新的相同系统。例如,您可以让它从一个可以映像到另一台机器的小分区运行,然后如果数据的主要部分位于 RAID1 上并且至少有一个驱动器正常工作(尽管在其他地方有可用的备份),则可以物理移动数据的主要部分网络上也是如此)。
我认为这里很多人都明白的一件事是机器不如 CI 软件重要。唯一重要的是机器是否需要不同的架构。否则,请获得与您的目标环境匹配的机器。如果您正在构建一个服务器应用程序,那么获得 64 位处理器可能是明智之举,因为您的应用程序可能会在 64 位服务器上运行。
我会更关心我为 CI 使用的工具。您需要运行速度快的东西,正如这里的人们所指出的那样,除非您需要它们可用,否则它不应该保留旧版本。如果是这样,我会寻找允许将构建和结果上传到单独服务器的东西。