CI, CD AND CD

CI很容易理解,就是持续集成。但是CD既可以指代码持续交付,也可理解为代码持续部署。CI和CD之间有很多相似的部分,但是也有很大的区别。

持续集成(CONTINUOUS INTEGRATION)

在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警。

持续交付(CONTINUOUS DELIVERY)

持续交付就是讲我们的应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。

通过持续交付,您可以决定每天,每周,每两周发布一次,这完全可以根据自己的业务进行设置。

但是,如果您真的希望体验持续交付的优势,就需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方便进行故障排除。

持续部署(CONTINUOUS DEPLOYMENT)

如果我们想更加深入一步的话,就是持续部署了。通过这个方式,任何修改通过了所有已有的工作流就会直接和客户见面。没有人为干预(没有一键部署按钮),只有当一个修改在工作流中构建失败才能阻止它部署到产品线。

持续部署是一个很优秀的方式,可以加速与客户的反馈循环,但是会给团队带来压力,因为不再有“发布日”了。开发人员可以专注于构建软件,他们看到他们的修改在他们完成工作后几分钟就上线了。基本上,当开发人员在主分支中合并一个提交时,这个分支将被构建、测试,如果一切顺利,则部署到生产环境中。

合并CI CD and CD?

当然,正如我所说,他们每部分都更加接近生产环境。你可以构建自己的持续集成环境,然后,一旦团队适应,你可以添加持续交付流,最后,可以添加持续部署流到整个工作流中。

举例CI, CD and CD 流水线

到底值不值这样做呢?

持续集成:

你需要具备哪些条件:

你的团队需要为每个新功能,代码改进,或者问题修复创建自动化测试用例。

你需要一个持续集成服务器,它可以监控代码提交情况,对每个新的提交进行自动化测试。

研发团队需要尽可能快的提交代码,至少每天一次提交。

你能获得什么呢?

通过自动化测试可以提早拿到回归测试的结果,避免将一些问题提交到交付生产中

发布编译将会更加容易,因为合并之初已经将所有问题都规避了

减少工作问题切换,研发可以很快获得构建失败的消息,在开始下一个任务之前就可以很快解决。

测试成本大幅降低-你的CI服务器可以在几秒钟之内运行上百条测试。

你的QA团队花费在测试上面的时间会大幅缩短,将会更加侧重于质量文化的提升上面。

持续交付

需要具备什么条件?

你需要有强大的持续集成组件和足够多的测试项可以满足你代码的需求

部署需要自动化。触发是手动的,但是部署一旦开始,就不能人为干预。

你的团队可能需要接受特性开关,没有完成的功能模块不会影响到线上产品。

你能收获什么?

繁琐的部署工作没有了。你的团队不在需要花费几天的时间去准备一个发布。

你可以更快的进行交付,这样就加快了与客户之间的反馈环。

轻松应对小变更,加速迭代

持续部署

需要具备的条件:

研发团队测试理念比较完善。测试单元的健壮性直接决定你的交付质量。

你的文档和部署频率要保持一致。

特征标志成为发布重大变化过程的固有部分,以确保您可以与其他部门(支持,市场营销,公关…)协调。

可以获得什么?

发布频率更快,因为你不需要停下来等待发布。每一处提交都会自动触发发布流。

在小批量发布的时候,风险降低了,发现问题也可以很轻松的修复。

客户每天都可以看到我们的持续改进和提升,而不是每个月或者每季度,或者每年。

如前所述,您可以采用持续集成,持续交付和持续部署。你怎么做取决于你的需求和你的业务情况。如果你刚刚开始一个项目,并且还没有客户,那么你就可以去创建这些工作流,最好是将这三个方面都实现,并且在你的项目迭代和需求增长中同时迭代它们。如果您已经有一个生产项目,那么您可以一步一步地分阶段去实现他们。

CI 与 CD 有什么区别相关推荐

  1. 理解 CI 和 CD 之间的区别(翻译)

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...

  2. 软件开发中的CI、CD、CD概念

    在软件的编译发布的过程中,经常能够看到CI.CD这样的词语.其实他们是专业的缩写短语,这里介绍下他们的概念和区别. 敏捷软件开发 英文全称:Agile software development,是从1 ...

  3. DevOps系列文章-Kubernetes实现CI与CD配置

    Kubernetes实现CI与CD配置 一.基本介绍 基于 Kubernetes 实现 CI/CD 配置,其实和往常那些 CI/CD 配置并没有太大区别.都是通过 提交代码,拉取代码,构建代码,发布代 ...

  4. Docker最全教程之使用TeamCity来完成内部CI、CD流程(十七)

    本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...

  5. 38.DevOps之基于Jenkins实现的CI与CD

    文章目录 一 DevOps 简介 1.1 什么是 DevOps 1.2 为什么要推广 DevOps? 1.3 传统技术团队 1.4 DevOps 技术团队 1.5 什么是持续集成(CI-Continu ...

  6. 测试开发必会:正确理解持续集成和持续交付 CI/CD

    正确理解并掌握持续集成和持续交付(CI/CD)是当下测试和质量保障相关同学的必备技能.本文作者为霍格沃兹测试学院特邀嘉宾,资深技术专家蒋刚毅,原文首发 TesterHome 社区,标题为<持续交 ...

  7. Jenkins 与 Kubernetes 的 CI 与 CD Git + Maven + Docker+Kubectl

    目录[-] . 一.Kubernetes 部署 Jenkins . 1.NFS 存储卷创建 Jenkins 目录 . 2.创建 Jenkins 用于存储的 PV.PVC . 3.创建 ServiceA ...

  8. 龙芯平台上的容器和CI/CD实现方案

    http://www.loongson.cn/news/company/505.html 一:简介         Windocker是云宏公司基于龙芯平台开发的容器管理web平台.主要功能包括:系统 ...

  9. [转载]什么是CI 、CD?

    文章目录 快速摘要 "连续"是什么意思? 什么是"持续交付管道"? 连续交付管道如何运作? 什么是"快速失败"? 连续交付管道的所有部分都必 ...

  10. 持续集成 ci/cd_CI / CD即服务:在云中进行持续集成和交付的10种工具

    持续集成 ci/cd 云和持续集成 (CI)是天生的匹配. 尽管云使我们摆脱了安装和维护物理服务器的痛苦,但持续集成可以自动消除构建,测试和部署代码的痛苦. 如果两家公司都希望把工作从开发团队的肩膀上 ...

最新文章

  1. nlohmann/json使用笔记
  2. java jar log4j_使用Log4j
  3. 判断字符串中的括号是否匹配——c和c++实现
  4. linux下使用C++操作mysql
  5. yii 2.0 代码阅读 小记
  6. 学术英语:关于such as, for example, etc., and so on, i.e., 和e.g.的使用
  7. armbian docker Chrome_一起学docker06-docker网络
  8. 关于keystore 文件生成PK8+PEM文件
  9. Vue+Vant的组件自定义使用阿里图标库图标
  10. 服务实例是否宕机的后台检查线程任务
  11. html页面大于号,css中大于号()是什么意思?
  12. 深度解密Go语言之map
  13. Egret 利用ImageLoader加载服务器图片
  14. 微信图文编辑器如何添加超链接?
  15. try 和 catch 用法
  16. Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)
  17. I2C调试遇到的问题以及解决办法---“busy死锁状态”以及“从设备地址无应答”问题
  18. 数据中台(01)- 全面了解数据中台
  19. 简单对比创建对象的三种方式
  20. 帝国CMS后台更新出现“Table '*.phome_ecms_news_data_' doesn't exist”

热门文章

  1. 基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控
  2. systemctl开机启动设置
  3. 如何快速搭建自己的github.io博客
  4. 【易错】Python中for循环删除元素,有个坑,请勿入坑!!
  5. 2016 新学++ , 回顾过去展望未来
  6. iphone科学计算器使用
  7. 微软bi报表服务器,升级 Power BI 报表服务器
  8. 开机后黑屏看不到桌面_开机不显示桌面黑屏怎么办_win10开机黑屏啥也没有的解决办法...
  9. 2021中国科技大学计算机博士招生,中国科学技术大学2021年拟录取博士研究生名单公示,2661人!...
  10. java集合根据条件筛选数据