什么是持续集成?

持续集成CI,在一般软件开发中,每个人在完成项目工作后开始完成整合工作。整合一般需要数周或数月时间,整合过程是非常痛苦的。持续集成是一种在早期开发阶段,每天数次的合并代码到主干,持续的进行构建、测试和集成代码。

image.png

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续集成的目的,可以更高效率的快速迭代软件产品,同时还能保证高质量。它可以保障,我们把代码合并到主干之前,能够充分的自动化测试,单元测试,只要有一个单元测试未通过,则无法集成到主干。

举例,GitHub中开源的项目,都是由全球开发者一起开发完成的,这些开发人员遍布全球,相互都是通过网络沟通,通过制定规范,每天上百次提交代码,如果没有CI服务器来自动化测试他们几百人提交的代码,做一些基础性的检查,估计做这个工作的人得累吐血了,程序员最不喜欢重复劳动,都有极客精神,有些无法忍受这样的情况,发明了一些CI新的软件解决问题。CI服务器可以很好的帮助把集成代码做统一的单元测试,语法、编程规范检测,程序完整性等等前置条件。

code review时,代码已经可用,常规性的检测CI已经完成,并且会自动给开发人员反馈CI测试报告。review的人专注在代码实现逻辑检测,是否符合产品功能需求。

通过一个中心源代码仓库,大家共同协作,每次提交之后,自动触发持续集成平台,拉取最新的代码进行测试,让整个平台联动起来,通过每天持续的迭代测试,提高整体的交付产品周期。

好处有三个:

 (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

 (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

 (3) 缩短产品研发周期。每天迭代测试,统一目标,更快的发现问题,解决问题,提高整体效率。

一个完整的持续集成系统必须包括:

  • 一个自动构建过程,包括自动编译、分发、部署和测试等。
  • 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
  • 一个持续集成服务器。

持续交付

image.png

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的预生产环境中更多的测试。如果代码质量管理以及评审通过,具备随时替换线上版本的能力。

持续交付,可以看作是持续集成的下一步,不管你软件怎么更新,必须保证随时可交付能力。

预生产环境,代码通过预生产环境的测试和检验,更加能够保证产品的质量,如果出现问题,更快的反馈问题,可以更容易理解问题出现的位置,并在代码进入生产环境之前将其解决。

持续部署

持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。

image.png

通常需要具备持续部署,出现问题,紧急回滚上一个版本的能力。曾经实现这个目标通常需要使用软连接解决,而现在我们拥有先进的容器技术,可以保障快速版本回滚修复问题。

DevOps

高质量的测试和自动化发布系统(一个高度自动化可持续的流水线式的交付系统)

image.png

持续 (Continuous):不断的获取反馈,响应反馈。

集成 (Integration):编译、测试、打包;

部署 (Deployment):应用组件或基本设施的代码或配置变更在产品环境生效称为“部署”;

发布 (Release):具有业务影响的功能变化对最终用户可见称为“发布”。

交付 (Delivery):可以理解为Deployment到Release之间的阶段,更多的强调一种能力。开发有能力的持续部署,业务有能力随时发布。

为了高质量的软件交付,组织必须转向自动化流程,手动流程太容易出错,效率低下。对于执行CD和devops的团队来说,自动化变得越来越重要,大家只需要专注在code和review中,其它过程都尽可能的自动化。

代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个release的复杂度和风险越高;代码库存越多,workflow的包袱越重,管理成本越大;

越早通过用户和DevOps建立可持续反馈机制,可以帮助软件产品更好的迭代和修复缺陷,建立完善的反馈机制能够更早的发现问题,让我们更多的时间找到完美的解决问题方案。

参考:

[1] https://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/

欢迎关注微信公众号[whoami],阅读更多内容。


image.png

原创文章,转载请注明: 转载自Itweet的博客
本博客的文章集合: http://www.itweet.cn/blog/archive/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 在前一篇文章持续集成入门篇中我大概介绍了下持续集成的概念及工具(抱歉,在前一篇文章中我查的资料不够与时俱进,工具介...
    craneyuan阅读 1,752评论 0 7
  • <<互联网敏捷DevOps和自动化之5.持续集成>>持续集成的价值是什么?对于开发和测试人员又意味着什么呢?1.1...
    燕京博士阅读 2,757评论 0 5
  • 前言 DevOps方案实施在互联网行业中已经相对成熟了,而在游戏行业中还处在起步的初级阶段(据个人了解的身边游戏公...
    云时代构架杨彪阅读 2,521评论 0 8
  • 也许你不想听我说谢谢,但却是我唯一能讲的心意。与你相遇,好幸运。 今天才在网上看完我的少女时代这部电影,这让我想起...
    二念阅读 1,967评论 6 7
  • 柳哲 陈漱渝先生,我素所敬仰,有过数面之交,留下深刻印象。他是一位儒者,为人坦荡,平易近人,治学严谨,有君子之风!...
    柳志儒阅读 312评论 0 0