下载全书

持续集成

0
3
8880
贡献人:

定义
编辑

持续集成是一种软件开发实践,它促使开发团队经常将他们的更改多次集成到共享存储库。每次合并都会触发一个自动化的代码构建测试序列
image

实践出处
编辑

持续集成”一词最早是由 Grady Booch 于 1994 年创造的,出现在 Booch 的《面向对象的分析和设计与应用程序》一书中:“微过程的需求决定了开发团队将完成更多的内部发布,只有少数可执行版本移交给外部方。这些内部版本代表了一种系统的持续集成,并迫使微过程的关闭。”在1996年Kent Beck提出的极限编程(ExtremeProgramming,简称XP)中被定义,是其最初的十二种实践之一。

为什么
编辑

使用持续集成好处:
一、在处理软件部署业务方面的优势:
1.消除手动 FTP 部署
2.预防和减少生产和测试的问题
3.生成代码库健康状况的分析和报告
二、在业务方面, 持续集成的价值在于:
1.降低风险
2.减少整个开发和部署过程的开销
3.通过提供质量保证来提高公司的声誉
三、具体优势如下:
1. CI减少风险
更频繁地集成代码可以降低任何项目的风险水平。只要有衡量应用程序健康状况的指标,就可以尽早检测到代码缺陷并更快地修复、尽早估量软件的质量、尽早排除假设。
(1)尽早发现缺陷并修复缺陷 。软件开发中每天持续集成,并进行测试和评审,这些过程有许多的机会发现缺陷。
(2)尽早估量软件质量。通过在持续集成中实施持续测试和评审的活动,软件产品的健康属性,例如复杂性,将被全程跟踪。
(3)尽早排除假设。通过在一个纯净的环境中,用同样的脚本和过程构建和测试软件,开发人员可以减少假设:是否使用了不正确的第三方的库,是否使用了不同的环境参数等。
2.CI减少开销
减少重复的过程可以节省时间、费用和工作量。说起来简单,做起来难。这些浪费时间的重复劳动可能在我们的项目活动的任何一个环节发生,包括代码编译、数据库集成、测试、审查、部署及反馈。通过自动化的持续集成可以将这些重复的动作都变成自动化的,无需太多人工干预,让人们的时间更多的投入到动脑筋的、更高价值的事情上。
3.CI是质量保证
持续集成可以让项目组在任一点上及时提交可以安装的软件包。这是持续集成最可看见的一个益处。我们可以无休止地讨论改善软件质量和减少风险,但是对用户或者客户来说,可以安装的软件包是最切实可行的。
4.CI增强项目的可见性
持续集成让我们能够注意到趋势并进行有效的决策。如果没有真实或最新的数据提供支持,项目就会遇到麻烦,每个人都会提出他最好的猜测。通常,项目成员通过手工收集这些信息,增加了负担,也很耗时。持续集成可以带来两点积极效果:
(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。
(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。
(3)文档:持续集成提供了为所有提交的代码生成类似 API 的文档的能力,使新开发人员和其他团队成员可以立即看到软件架构。
5.CI 增强了对软件的信心
持续集成可以建立开发团队对开发产品的信心,因为他们清楚的知道每一次构建的结果,他们知道他们对软件的改动造成了哪些影响,结果怎么样。因此开发人员和其他团队成员对进行更改更有信心。

何时使用
编辑

如果项目开发的规模较小,软件集成不是问题。
如果项目很大,需要不断添加新功能,或不断的升级产品,则需要进行反复集成,因此必须使用持续集成来简化工作。

如何使用
编辑

一、使用CI需要遵循如下原则:
1.所有的开发人员需要在本地机器上做本地构建,然后再提交到版本控制库中,从而确保他们的变更不会导致持续集成失败。
2.开发人员每天至少向版本控制库中提交一次代码。
3.开发人员每天至少需要从版本控制库中更新一次代码到本地机器。
4.需要有专门的集成服务器来执行集成构建,每天要执行多次构建。
5.每次构建都要 100% 通过。
6.每次构建都可以生成可发布的产品。
7.修复失败的构建是优先级最高的事情。
8.测试是未来,未来是测试
二、CI是一种理念,要落实离不开好的工具。构成有效 CI 的关键实践如下:
1.统一的代码库
2.自动构建
3.自动测试
4.每个人每天都要向代码库主干提交代码
5.每次代码递交后都会在持续集成服务器上触发一次构建
6.保证快速构建
7.模拟生产环境的自动测试
8.每个人都可以很容易的获取最新可执行的应用程序
9.每个人都清楚正在发生的状况
10.自动化的部署
三、怎么做
1.开发人员将代码检出到他们的个人工作空间
2.完成后,将更改提交到存储库
3.CI 服务器监视存储库并在更改发生时检出更改
4.CI 服务器构建系统并运行单元测试和集成测试
5.CI 服务器发布可部署的工件进行测试
6.CI 服务器将构建标签分配给它刚刚构建的代码版本
7.CI 服务器通知团队构建成功
8.如果构建或测试失败,CI 服务器将向团队发出警报
9.团队尽早解决问题
10.继续在整个项目中不断集成和测试
四、团队的责任:
1.尽可能频繁的提交代码
2.不要提交不能运行的代码
3.不要提交未经测试的代码
4.不要在构建失败时提交代码
5.提交代码后不要回家,直到系统构建完成

参考资料
编辑

  1. Continuous Integration by Martin Fowler.https://martinfowler.com/articles/continuousIntegration.html

  2. The Benefits of Continuous Integration Written by: Manuel Weiss April 11, 2013. https://www.cloudbees.com/blog/benefits-of-continuous-integration

  3. 《Continuous Integration-Improving Software Quality and Reducing Risk》by Paul Duvall, Steve Matyas, and Andrew Glover 2007

我们非常重视知识产权,我们在非常努力地寻找最初的出处来源并注明出处。但因为互联网信息浩瀚,难免会有疏漏。如果您觉得有侵犯您的权益,请联系我们。

更新时间:
2023-10-08
版本号: 22
持续集成 19 更新时间:2023-03-08
持续集成 18 更新时间:2023-03-08
持续集成 17 更新时间:2023-03-08
持续集成 16 更新时间:2023-03-08
持续集成 15 更新时间:2023-03-08
请提出您的意见
通过审核后显示您的意见

文章导航

定义
实践出处
为什么
何时使用
如何使用
参考资料

主要贡献人

王岩

实践被点赞 3

实践被收藏 0

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线