什么是CICD?它们与敏捷开发和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的区别可以粗暴的认为:持续交付=持续集成+测试策略。持续交付表⽰的是⼀种能⼒,⽽持续部署则是⼀种⽅式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论