SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3931|回复: 1

[赏析] 全程自动化

[复制链接]
发表于 2012-6-18 23:16:31 | 显示全部楼层 |阅读模式
(赏析注:这一节是在讲持续集成工具的基本原理。要实现持续集成,工具的支持是很重要的,但不是越贵越好。)

5 P: M9 E  k& N4 z* F
6.3  全程自动化
/ i* Y* P6 `5 V: F8 e
沿着上一节的思路走下去。不论是广义的集成还是狭义的集成,在集成过程中,都是有很多重复性的工作的。当集成的频率提高后,这些重复性的工作就变得更多。如果这些重复性的工作由人来完成,那么就会显著提高项目的人力资源成本,甚至延长项目时间。这是我们不愿意看到的。因此,当我们向持续集成迈进的时候,自动化就变得特别重要。7 u! c! H% s8 U+ b' q
- J! [8 T/ \+ I7 y  [1 H
其实上一节就是在谈自动化。一行命令,实现自动化编译;一行命令,实现自动化链接;一行命令,自动生成安装包;一行命令,准备好测试环境;一行命令,部署程序;一行命令,进行自动化测试;等等。然而,这些是不够的。

* J% }1 I2 R5 g+ ?它们之间不是自动化的,需要有一个人盯着。集成工程师敲一行编译命令,然后喝茶看报纸;等编译结束了,再敲一行链接命令,然后挖地雷;在集成工作结束前,他还吃了些小点心,网聊了一会儿,起来散了散步,发现相邻部门新来的女同事很迷人。但是,另一方面,他不得不工作到晚上12点,因为大部分时间,都在等待中度过了。
4 ^4 f5 \: j' |1 N
. Q6 j0 ?8 L1 E# `6 f
如果集成的各个步骤之间,也能够自动化,那就完全不同:只需要做好设置,后面的事情就都不用管了。持续集成工具就是以这样的思路来帮助集成工程师完成狭义集成工作:持续集成工具一直盯着公共版本库,一旦检测到版本库里有新的提交,就自动调用源代码版本控制系统的相关命令,在最新源代码上打标签或者记录下自然版本号;然后依此自动创建或更新工作区;再自动调用编译命令、链接命令、打包命令;然后自动建立测试环境、自动部署、自动测试;最后自动发邮件报告集成是否成功完成,并确保安装包已经放到公共存储区里让大家都能访问到。

1 h/ h% N3 {% T. Y7 N' j当然,如果这个过程中,遇到了问题,那自然就需要人来干预了。但机器至少能做的是,记录下发生了什么样的错误,然后报告给你,通过电子邮件,通过MSNQQ,甚至通过短信。嗯,这比枯坐在电脑前等待要强多了!/ N( u, ~5 {0 n  e' A9 d6 ^

1 f5 V) D; c' X# o8 ?! z
那集成工程师不就失业了?才不会。当集成出现错误、出现问题的时候,需要集成工程师来解决问题,或者由他来组织协调其他人来解决问题。这个工作有的时候相当不容易。另外,搭建和维护这一套持续集成解决方案,并且在每个项目中配置相应的参数和脚本,让它转起来,也需要人来完成。这些活儿才是真正值得用人类智慧来完成的。
* L+ c3 S# H! A+ Q; T

! v! r. c- m7 H1 {
[CruiseControl] 开源世界里的老牌持续集成工具。提供了一个持续集成的框架。一般来说,稍作设置和补充,就能够实现上文所提到的自动化的持续集成。缩写CC,有时候指的是它,有时候指的是ClearCase。
[Jenkins/Hudson] 持续集成工具,新秀,开源。前些年叫Hudson,最近因为Oracle跳出来索要商标权,所以只好改名叫Jenkins。Jenkins/Hudson和CruiseControl相比,操作界面更友好,配置更容易,运行更稳定。越来越多的项目开始使用Jenkins/Hudson。
* [1 M! n; h: M, \" A3 t9 ^
谈到持续集成工具,就不能不谈到构建管理工具。千万不要把构建管理工具误解成单纯的编译链接工具。构建管理工具和持续集成工具类似,是提供了一个框架性的东西,这个框架适时去调用版本控制工具的命令,适时去调用编译链接工具的命令,适时去调用自动测试工具的命令,等等。这个框架掌控全局,发号施令,并收集各个工具的反馈和工作成果。
' ^: C. Z# E* H% F4 r6 K0 h: ~
那么,构建管理工具和持续集成工具有啥区别呢?区别不大。它们的功能相近,只不过一个是从持续集成的角度去看待这摊事儿,所以给自己起名叫持续集成工具。一个是从构建相关的管理的角度看待这摊事儿,所以给自己起名叫构建管理工具。
  z, @2 t) j- h2 i
- ^# I- V" M: H. @4 @$ [
另外,现在市面上的持续集成工具多是开源免费的;构建管理工具多是收费的,而且费用不菲。当然,在功能上,构建管理工具的功能更丰富些,对并行构建等方面的支持更强。

5 _. g% U- J) j$ c( C" N[ElectricCommander] ElectricCloud公司出品。就是出产神奇的构建加速器ElectricAccelerator的那个公司。
7 ?, L6 {( R; L
[BuildForge] IBM Rational出品。

  s7 v, b4 @$ S" U; F' g
那么,该选用构建管理工具还是持续集成工具呢?问题的关键是,你所在的企业,你所在的项目,对集成与构建相关的管理的实际需求是什么?持续集成工具在经过配置和少量定制后,是否已经能够基本满足你的关键需求?如果答案是肯定的,那么你很幸运,能省下一大笔银子,而且很有可能很快就能把工具用起来了。
$ n( ~! w3 [* E8 W

* O5 s* {, E6 o- t1 K: F: Y$ y
发表于 2014-6-20 14:56:42 | 显示全部楼层
有敏捷需求的公司才会要求这么高的持续集成,一般的公司密度没有这么大。持续集成还有很多需要学习,加油
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-4-22 19:35 , Processed in 0.069899 second(s), 15 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表