在软件工程中,CI/CD或CICD通常是指持续集成以及持续交付或持续部署的组合实践

持续集成

在软件工程中,持续集成(CI)是每天将所有开发人员的工作副本合并到共享主线中的一种做法。[1] Grady Booch在1991年的方法中首次提出了CI术语,[2]尽管他不主张每天进行多次积分。极限编程(XP)采纳了CI的概念,并提倡每天进行多次集成-每天可能进行多达数十次。

基本原理:

着手进行更改时,开发人员会获取当前代码库的副本以作为工作基础。随着其他开发人员向源代码存储库提交更改的代码,此副本逐渐停止反映存储库代码。不仅现有代码库可以更改,而且可以添加新代码,新库以及创建依赖关系和潜在冲突的其他资源。

在分支上继续开发而又没有重新合并到主线上的时间越长,则在最终合并到开发人员分支时,多重集成冲突和失败的风险就越大[4]。当开发人员向存储库提交代码时,他们必须先更新其代码以反映存储库中的更改,因为他们已复制了副本。存储库包含的更改越多,开发人员在提交自己的更改之前必须完成的工作越多。

最终,存储库可能与开发人员的基准变得非常不同,以至于他们输入了有时称为“合并地狱”或“集成地狱”的信息,[5]其中,集成所花费的时间超过了制作所花费的时间。他们原来的变化。

持续交付

连续交付(CD或CDE)是一种软件工程方法,团队可以在短周期内生产软件,以确保可以随时可靠地发布软件,并且在发布软件时可以手动进行。[1] [2]它旨在以更高的速度和频率来构建,测试和发布软件。通过允许对生产中的应用程序进行更多增量更新,该方法有助于降低成本,时间和交付变更的风险。一个简单且可重复的部署过程对于持续交付很重要。

CD与持续部署形成对比,持续部署是一种类似的方法,该软件也可以在短周期内通过自动部署而不是手动部署来生产软件。

最新文章

  1. hihoCoder 搜索一·24点
  2. Android Error:You must supply a layout_width attribute……
  3. 【tyvj】P1049 最长不下降子序列
  4. 动态创建按钮的JS
  5. 采用curl库
  6. MySQL 上手教程
  7. LindDotNetCore~添加路由前缀
  8. python点点滴滴
  9. git取别名配置
  10. spring mvc返回json格式和json字符串
  11. python使用SQLAlchemy模块连接MySQL
  12. 【转载】Java导入导出excel
  13. oralce表空间使用情况查询
  14. 使用 Koa + MongoDB + Redis 搭建论坛系统
  15. 转:线程Thread (1)
  16. Linux maven 下 jar包下载不下来的解决方法
  17. System Test GIS压力测试利器
  18. A Bug's Life(加权并查集)
  19. [bzoj] 1588 营业额统计 || Splay板子题
  20. Perl语言入门--3--文件读取与写入

热门文章

  1. Linux 文件搜索神器 find 实战详解,建议收藏!
  2. Think in Java 第三章操作符
  3. 1569: Wet Tiles
  4. Educational Codeforces Round 88 (Rated for Div. 2) E、Modular Stability 逆元+思维
  5. Codeforces Round #643 (Div. 2) C. Count Triangles (数学公式)
  6. 洛谷P1119-灾后重建-floyd算法
  7. kubernetes实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到k8s
  8. Leetcode(23)-合并K个排序链表
  9. 关于虚继承的sizeof问题
  10. Leetcode(106)-从中序与后序遍历序列构造二叉树