专访Thoughtworks公司Cruise产品经理 Jez Humble
编者按:CruiseControl:简称CC,持续集成工具,主要提供了基 于版本管理工具(如CVS)感知变化或每天定时的持续集成,并提供持续集成报告、Email、Jabber等等方式通知相关负责人,其要求是需要进行日构建的专桉已编写好全自动的专桉编译脚本(可基 于Maven或Ant)。
记者: CruiseControl是一个开源的持续集成工具。那么开源的CruiseControl,与企业版本的Cruise, 有什么区别呢?
Jez:主要有几个区别,但是最重要的是,Cruise新增了一个“构建管道 ”(“pipeline”)的概念。我们之后会再深入的谈,概括来说这个“pipeline”不仅可以运行构建,还可以帮助你把软件部署到产品环境里,这是很多公司在部署软件时都会遇到问题。所以说Cruise不只改进了传统持续集成工具的不足,而且还能帮助你解决部署到产品环境中时遇到的问题。
另外,CruiseControl和CruiseControl.NET都比较难用、难设定,所以我们把Cruise设计得更容易使用。Cruise还有另外一些先进的功能,如构建网格(build grid)等,它可以让你无需太多配置就可以灵活括展,且并行你的持续集成系统。
记者: Cruise最大的优点是什么呢?
Jez:Cruise最大的优点包括我上面所说的先进功能:软件部署、容易使用和build grid,还有迎合企业用户需要的验证与授权(authentication & authorization),和fail-over。当一个agent停止响应时 ,server会自动把工作分配到其他的agent上面去。
记者:你可以多谈一谈构建网格(build grid)这个概念吗?
Jez:你的软件产品可能要在不同的platform上(e.g. Windows, Linux, and Solaris)运行,那么你就需要在几台不同的电脑上执行你的构建(build)。
如果你的build里面的自动测试会花很长时间,你也可以把这些测试分别放在几台电脑上同时运行。
还有,对较大的公司来讲,利用 build grid 来分工的话,几个部门就可以共用一个中央管理的server。
记者:当你们作产品计划时,你们首先考虑的是什么?
Jez:作为一个商业软件,我们首先考虑的当然是如何吸引客户。所以我们必须要开发出一些有吸引力的功能。Cruise一定要容易用,同时也要满足客户的需求。Cruise要做到替客户降低成本,帮助他们顺利地部署软件、把持续集成变成一件简单的事情。那么人们就自然会觉得购买Cruise是一个好的投资。
记者:业界目前已有不少的持续集成工具,怎样能使Cruise变成持续集成工具中的第一?
Jez:当然Cruise现在还不是,但这的确是我们的目标。现在CruiseControl是被下载最多的持续集成工具,所以Cruise试图吸取CruiseControl的优点,再加以改良和创新。
记者:还有另外的持续集成工具,例如 Atlassian的Bamboo。你可以比较一下Bamboo和Cruise的异同吗?
Jez:除了Bamboo,还有不少其他的持续集成工具。我不打算在Cruise 发布之前去看其他的持续集成工具。比起其他工具开发公司, Thoughtworks的特质就是它是一间咨询服务公司。在持续集成技术方面,我们有为很多不同的客户解决问题的经验。所以Cruise这个产品的理念,就是去解决我们见过的、实际的问题,而不是去抄袭或模仿其他产品的特性。
Cruise有一些和Bamboo类似的特性(如build grid),但是最大的区别是,我们的咨询服务经验是特有的。
记者:当自动测试越来越多,持续集成的build也会越来越花时间,Cruise怎样解决这个问题?
Jez:Cruise的build grid就能缩短build的时间。只要把测试分开,就可以放在几台电脑上并行。设定Cruise的agent非常容易;安装了agent之后,输入server的IP,agent就会自动加入grid里面,无须任何配置。
记者: Cruise是为企业而设计的软件,但是敏捷开发(Agile)在一些大公司里不大能接受。他们觉得如要应用敏捷,要很大、很难的改变。那么你会怎样说服他们去改用敏捷开发呢?
Jez:Thoughtworks很多年以来都在面对这个问题。我们运用敏捷开发,也体验到敏捷给我们的客户带来的好处。但是要改变一个公司的制度是一件非常复杂的事情。Thoughtworks通常从一个小团队、一个项目开始,利用敏捷手段,解决它所遇到的问题。由上层把敏捷强加到团队身上是行不通的 。
Cruise就是这样的一个工具:它可以帮助你从一个项目开始,逐步地采用敏捷的手段。相比其他敏捷的实践(如TDD,结对编程),持续集成能让你看到即时的效果:更快的找到bug,更快的获得反馈,和更容易地部署软件。不单是敏捷的团队,任何团队都可以从中获益。
原文转自:http://www.uml.org.cn/Test/200805231.asp