前往顾页
以后地位: 主页 > 收集编程 > .Net实例教程 >

甚么是持续集成?

时候:2018-01-09 23:42来源:知行网www.zhixing123.cn 编辑:麦田守望者

互联网软件的开辟和公布,已构成了一套标准流程,最首要的构成部分就是持续集成(Continuous integration,简称 CI)。

本文扼要介绍持续集成的观点和做法。

图0:持续集成是什么?

 

 

一、观点

持续集成指的是,频繁地(一天多次)将代码集成到骨干。

它的好处首要有两个。

1、疾速发明错误。每完成一点更新,就集成到骨干,可以疾速发明错误,定位错误也比较容易。

2、避免分支年夜幅偏离骨干。如果不是是常常集成,骨干又在不竭更新,会导致今后集成的难度变年夜,乃至难以集成。

持续集成的目标,就是让产品可以疾速迭代,同时还能保持高质量。它的核心办法是,代码集成到骨干之前,必须经由过程主动化测试。只需有一个测试用例失败,就不克不及集成。

Martin Fowler 说过,”持续集成其实不克不及消弭 Bug,而是让它们非常容易发明和改正。”

与持续集成相关的,另有两个观点,别离是持续托付和持续摆设。

2、持续托付

持续托付(Continuous delivery)指的是,频繁地将软件的新版本,托付给质量团队或用户,以供评审。如果评审经由过程,代码就进入生产阶段。

持续托付可以看作持续集成的下一步。它夸大的是,不管怎样更新,软件是随时随地可以托付的。

3、持续摆设

持续摆设(continuous deployment)是持续托付的下一步,指的是代码经由过程评审今后,主动摆设到生产环境。

持续摆设的目标是,代码在任甚么时候刻都是可摆设的,可以进入生产阶段。

持续摆设的前提是能主动化完成测试、构建、摆设等步调。它与持续托付的辨别,可以参考下图。

图1:持续集成是什么?

 

 

(图片来源)

4、流程

按照持续集成的设想,代码从提交到生产,全部过程有以下几步。

4. 1 提交

流程的第一步,是开辟者向代码堆栈提交代码。所有前面的步调都始于本地代码的一次提交(commit)。

4. 2 测试(第一轮)

代码堆栈对 commit 操纵建设了钩子(hook),只需提交代码或归并进骨干,就会跑主动化测试。

测试有好几种。

  • 单位测试:针对函数或模块的测试
  • 集成测试:针对团体产品的某个服从的测试,又称服从测试
  • 端对端测试:从用户界面中转数据库的全链路测试

第一轮起码要跑单位测试。

4. 3 构建

经由过程第一轮测试,代码便可以归并进骨干,就算可以托付了。

托付后,就先进行构建(build),再进入第二轮测试。所谓构建,指的是将源码转换为可以运行的实际代码,比如装置依靠,建设各种资本(款式表、JS 脚本、图片)等等。

常常利用的构建东西以下。

  • Jenkins
  • Travis
  • Codeship
  • Strider

Jenkins 和 Strider 是开源软件,Travis 和 Codeship 对开源项目可以避免费利用。它们都会将构建和测试,在一次运行中履行完成。

4. 4 测试(第二轮)

构建完成,就要进行第二轮测试。如果第一轮已涵盖了所有测试内容,第二轮可以省略,当然,这时候构建步调也要移到第一轮测试前面。

第二轮是全面测试,单位测试和集成测试都会跑,有前提的话,也要做端对端测试。所有测试以主动化为主,多数无法主动化的测试用例,就要人工跑。

需求夸大的是,新版本的每个更新点都必须测试到。如果测试的覆盖率不高,进入前面的摆设阶段后,很可能会呈现严峻的问题。

4. 5 摆设

经由过程了第二轮测试,以后代码就是一个可以直接摆设的版本(artifact)。将这个版本的所有文件打包( tar filename.tar * )存档,发到生产办事器。

生产办事器将打包文件,解包成本地的一个目次,再将运行途径的标记链接(symlink)指向这个目次,然后从头启动利用。这方面的摆设东西有 Ansible,Chef,Puppet等。

4. 6 回滚

一旦以后版本产生问题,就要回滚到上一个版本的构建成果。最简朴的做法就是点窜一下标记链接,指向上一个版本的目次

顶一下
(0)
0%
踩一下
(0)
0%
------分开线----------------------------
标签(Tag):持续集成
------分开线----------------------------
颁发评论
请自发遵循互联网相关的政策法规,严禁公布色情、暴力、革命的谈吐。
评价:
神色:
考证码:点击我更换图片
猜你感兴趣