持续集成本身就是自动检测被测对象变更或者被测对象集成是否发生变化,一旦有变化就会触发一系列自动化(编译、构建、部署、反馈,从这些动作来看,持续还有许多基础设施要建设),但这些都是硬件;现实中我们持续集成难点在于发现集成中问题但是很少甚至没人去解决,得到反馈有很多说法,我们本身也比较多,比如问题定位不够精准化,管理上没有进行太多约束等等。这里不做太多累述;
本篇不会去讲很多软性的东西,为什么题目命名为“持续集成/质量数据度量中心”,上一篇已经讲过,持续集成会产生很多质量数据,这些质量数据就是衡量一个产品、项目数据质量情况,如果用好这些数据,那么持续集成的威力会更加强大,本篇详细说明;
先看一张架构图,如图:
从上面这张图可以看出,我们会拿到项目中或者产品中所有的数据(请见我写的质量模型)。数据的威力开始呈现;下面举几个场景:
1、老大想看线上一个故障是由于什么产品、什么项目、什么需求导致、有哪些bug的,是谁导致了这个问题。发现了问题,就可以有相应的action解决5、会告诉团队反馈本次集成失败是谁提交什么文件,或者失败的原因(比如说错误堆栈信息等),
由于内容太多,本篇只介绍持续集成CI服务器、sonar、部署、反馈相关性的东西,项目管理、缺陷、自动化我就不介绍了。本人最近才写文档,如有什么不对的地方,还请大家指正。
先说持续集成框架的搭建,一个持续集成技术框架离不开一个CI服务器,我们所有的一切都会围绕着CI来做文章,这里选择的是jenkins。因为jenkins相对比较成熟,有很多业内插件支持,而且可以扩展,怎么扩展请看我写的 blog《jenkins插件开发》,如果你的应用遵循maven管理,jenkins就非常适合了。jenkins的安装和介绍文档非常多,请看https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins;我这里主要介绍除了jenkins 插件之外的东西。
主要分为以下几个方面:
从jenkins下载war之后,可以通过各种方式部署,我这里就介绍通过tomcat部署后的目录介绍。hudson和jenkins部署都差不多,不过hudson部署后所有目录都是在
当前用户的根目录下一个隐藏的目录“.hudson”里,而jenkins是直接放在tomcat的webapps里,如:/home/admin/tomcat6/webapps/jenkins;
玩过jenkins或者hudson的同学都明白,我们有很多的配置。但是要知道一点,jenkins上数据存储是以xml方式存储的。比如说全局配置,会在/home/admin/tomcat6/webapps/jenkins下有个config.xml管理整个展现页面数据的存储。config.xml部分片段文件如下:
1.509.1
0
NORMAL
true
true
false
${JENKINS_HOME}/workspace/${ITEM_FULLNAME}
${ITEM_ROOTDIR}/builds
false
Java
/usr/alibaba/java
全局配置里很多都是以插件形式存在的,比如说jenkins对外提供的url,全局配置如图:
jenkins部署目录都会存在一个全局配置xml:jenkins.model.JenkinsLocationConfiguration.xml,详细xml内容如下;
address not configured yet
http://xxxxxx:8080/jenkins/
现在重点介绍几个文件和目录: