DevOps笔记-06:什么是CI/CD?它们与敏捷开发和devops的关系?

           什么是CI/CD?它们与敏捷开发和devops的关系?

    现在某些大型公司中软件的开发和发布已经形成了一套标准流程,其中敏捷开发和DevOps是更好更快发布产品的常用的两种理念,而CI和CD是实现这两种理念的一种方法。他们之际的关系可以粗暴的用下图表示:

一、什么是CI?

1、定义

    CI是Continuous integration的简称,持续集成指频繁地(一天多次)将代码集成到主干,其实就是将编码、代码的编译、打包、单元测试执行、静态代码的分析,甚至包括自动化的功能性测试等,这一套动作将其自动化运行起来的过程叫持续集成。核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。CI的目得是让产品可以快速迭代,同时还能保持高质量。CI流程如下图:

2、好处

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

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

3、总结

持续集成并不能消除 Bug,而是尽早发现bug。

二、什么是CD?

1、定义

CD包括Continuous Delivery(持续交付)和Continuous Deployment(持续部署)

(1)Continuous Delivery(持续交付)

    持续交付可以看作持续集成的下一步,指频繁地将软件的新版本,交付给质量团队或者用户,以供评审,如果评审通过代码进入待生产部署状态,也就是说不管怎么更新,软件具备随时交付到生产环境的能力,但还没有真正部署到生产。

(2)Continuous Deployment(持续部署)

    持续部署是持续交付的下一步,指代码通过评审以后可自动部署到生产环境,也就是说代码具备随时部署到生产的能力。持续部署的前提是能自动化完成测试、构建、部署等步骤。持续部署是自动,持续部署是持续交付的最高阶段

三、持续集成、持续交付、持续部署三者关系

    持续交付不可以了解为流水线,持续集成CI与持续交付Continuous Delivery的区别可以粗暴的认为:持续交付=持续集成+测试策略。持续交付表示的是一种能力,而持续部署则是一种方式。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值