Tfs2010 Build - 用于多个TeamProjectCollection的BuildConrtoller

时间:2012-02-05 17:48:15

标签: tfs tfs2010 tfsbuild

我们将TFS作为具有多个TeamCollections的单服务器安装。如果我配置构建,我必须分配1个BuildController(只允许一个!)到一个TeamProjectCollection。

有可能(以及如何)拥有多个BuildControler,因为我们需要几个BuildConrtoller - 每个TeamProjectCollection一个。

是每个TeamProjectCollection都有自己的BuildServer的唯一解决方案!?

1 个答案:

答案 0 :(得分:5)

我将对您的环境做一些假设,如果您更新问题,我会更新我的答案。此外,有关团队规模的一些信息也会有所帮助

假设编号1:您有一台服务器充当您的TFS应用服务器以及构建控制器和构建代理。

假设编号2:此单个服务器有4个处理器核心。

如果是这种情况,我会建议您至少使用另外一台机器作为控制器/代理(它可以是VM)。首先是性能,其次是安全性。构建服务以管理员身份运行,如果有人创建格式化驱动器或删除注册表的构建,那么您刚刚丢失了TFS服务器!

构建控制器只能与1个团队项目集合相关联。您可以拥有与集合关联的任意数量的控制器/构建代理,但不能跨集合共享它们。

您可以拥有与核心一样多的构建代理,因此4核心机器最多可以托管4个构建代理(当您在服务器上安装团队构建时,您应该看到此选项)当然这会对性能产生影响因为每个控制器将共享相同的RAM和磁盘。

您还可以在同一台计算机上设置多个构建控制器,但Microsoft不支持此操作,这被视为黑客攻击。 Jim Lamb blogged about thisMark Nichols wrote a nice guide

总结一下。如果您使用单个4核服务器,则可能最多可容纳4个构建代理,并使用类似数量的控制器。这可能适合您的需求。这有点像黑客,但它应该解决你的问题。

正确(但更昂贵)的方法是为每个控制器创建一个VM,然后为构建代理本身分离机器。例如,我们有2个团队项目集合。 2个用于构建控制器的VM(每个集合一个)这些机器不需要那么强大,因为控制器没有做太多工作。我们为构建代理本身配备了16个四核机器。目前我们每台机器只托管2个代理,因此实际上每个Controller / Team Project Collection都有16个构建代理。虽然我们偶尔会在需要时在控制器之间移动代理。

相关问题