TF Build 2010与TF Build 2008 有着很大的区别,在部署方式上就有所体现。TF Build 2010 有着生成控制器(The Build Controller)与生成代理(The Build Agent)的概念。他们的功能分别为
生成控制器(The Build Controller)
每一个生成控制器为一个collection提供服务
Each build controller is dedicated to a single team project collection. The controller accepts build requests from any team project in a specified team project collection.
生成代理(The Build Agent)
每个生成代理都会被一个生成控制器控制。它的功能是从版本控制服务器取得和签入文件,准备工作区(getting files from and checking files into version control, provisioning the workspace),编译代码,运行测试。
实际上,我认为TF Build 2008中的Build 服务器实际上就是2010里面的生成代理。08里面没有控制器的这个概念。
他们的关系实际上是
关于微软的部署例子介绍。
单机部署(安装在TFS应用层上)
优点:节省服务器、易于配置
缺点:构建服务会耗费大量资源,会影响到TFS服务器的使用
如图,TFB的控制器和代理全部安装在了TFS的数据层机器上。这种部署方式是建议用在非常小的团队项目上的,主要是因为生成是十分耗费资源的(控制器会耗费大量的内存,代理由于要进行程序编译,于是会耗费大量CPU资源)。这种模式可以用在那种夜晚构建上。就算占资源也不会对开发人员使用TFS服务器有影响。
单机部署(代理安装单独服务器上)
优点:构建工作不影响TFS;可进行并行构建
缺点:控制器可能会影响到TFS,尤其是在有很多代理的工作的情况下;配置上稍为复杂
如图,控制器安装在了TFS应用层服务器上,代理则安装在了另一台服务器上,叫做构建服务器。这种方式是十分适合小团队进行开发的。构建服务和TFS应用层的分离,使得团队在进行构建的同时不会影响到TFS的工作。而且多代理也可以达到并行的构建工作,减少了构建的时间。
多机部署
优点:与应用层完全分离,不会影响TFS;构建区分比较细,能进行快速持续集成
缺点:使用服务器较多;似乎"专用于大量计算的构建服务器"应用率不高
如图,服务器为3个,构建服务器与TFS应用层完全分离,构建服务器也分为了两个,一个为控制器和代理,另一台为纯代理功能。这种部署方式可为大中型项目适用。
微软提到了使用这种部署方式的使用例子。一台构建服务器可以用来做持续集成的构建,一些项目组需要这样的快速构建(特别是gated check-in,一种保证签入的代码都可成功编译的签入方式),使得他们在构建上不用等很长时间。加入构建参数可以确保构建的速度,例如不清除工作区,只运行最重要的测试,设置一个低的最大运行时间。
另一台构建服务器用来专用于那些需要大量计算的构建,例如,那些需要清除工作区的,运行所有测试的,进行代码分析的。
总之,这种部署方式就是两台构建服务器,一台用来做日常的快速集成构建,仅仅验证编译等。另一台用来跑较大计算的构建。两者几乎互不干扰。
多机多控制器部署
实际上就是多即部署,只是分了collection
本文参考了微软的MSDN
http://msdn.microsoft.com/en-us/library/dd793166.aspx