持续集成(Continuous Integration, CI)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhiyuan411/article/details/89075616

什么是持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。(by Martin Fowler)

持续集成的要点

  1. 自动构建过程
  2. 每次代码递交后都会在持续集成服务器上触发一次构建
  3. 自动测试的手段,除了单元测试与集成测试之外,还有额外的静态与动态测试,性能测试与历史数据对比

持续集成有哪些优势

减少风险

一天中进行多次的集成(附带相应的测试),这样有利于检查缺陷,了解软件的健康状况。
小改动可以随时和其他代码进行集成,出现问题也可以第一时间被修复。
不采用持续集成的情况下,这些问题有可能到交付前的集成测试的时候才发现,有可能会导致延迟发布产品。而在急于修复这些缺陷的时候又有可能引入新的缺陷,最终可能导致项目失败。

减少重复过程

自动化的构建将编译,发布和自动化测试等阶段都编程自动化的,无需太多人工干预。

持续交付

对于客户来说,可以部署的软件产品是最实际的资产。
利用持续集成,您可以经常对源代码进行一些小改动,并将这些改动和其他的代码进行集成。接着完成部署和交付。
加快了交付的速度和频率。

增强项目的可见性

持续集成系统可以及时提供项目构建状态和产品质量的信息。有些持续集成系统可以报告功能完成度和缺陷率。

建立团队对开发产品的信心

持续集成让团队成员清楚的知道每一次构建的结果,让团队成员知道他们对软件的改动造成了哪些影响,结果怎么样。

相关概念

敏捷开发

敏捷开发是一种开发流程。和瀑布式开发相反,它以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
在敏捷开发中,整个开发工作被组织为一系列的短小的小项目,被称为一系列的迭代,在一次迭代中完成系统的一部分功能或业务逻辑的开发工作,在此过程中软件一直处于可使用状态。每一次迭代都包括了定义、需求分析、设计、实现、测试、发布与交付。
这种开发流程更适合互联网公司产品的快速迭代。

DevOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程序开发、测试、系统运维等所有环节,使得开发运维一体化,发布更加快捷、频繁和可靠。
DevOps的概念不仅涵盖技术和工具,也涵盖了流程和文化等多个方面。

猜你喜欢

转载自blog.csdn.net/zhiyuan411/article/details/89075616