软件工程中的CI&CD
在软件工程中,CI/CD或CICD通常是指持续集成以及持续交付或持续部署的组合实践
持续集成
在软件工程中,持续集成(CI)是每天将所有开发人员的工作副本合并到共享主线中的一种做法。[1] Grady Booch在1991年的方法中首次提出了CI术语,[2]尽管他不主张每天进行多次积分。极限编程(XP)采纳了CI的概念,并提倡每天进行多次集成-每天可能进行多达数十次。
基本原理:
着手进行更改时,开发人员会获取当前代码库的副本以作为工作基础。随着其他开发人员向源代码存储库提交更改的代码,此副本逐渐停止反映存储库代码。不仅现有代码库可以更改,而且可以添加新代码,新库以及创建依赖关系和潜在冲突的其他资源。
在分支上继续开发而又没有重新合并到主线上的时间越长,则在最终合并到开发人员分支时,多重集成冲突和失败的风险就越大[4]。当开发人员向存储库提交代码时,他们必须先更新其代码以反映存储库中的更改,因为他们已复制了副本。存储库包含的更改越多,开发人员在提交自己的更改之前必须完成的工作越多。
最终,存储库可能与开发人员的基准变得非常不同,以至于他们输入了有时称为“合并地狱”或“集成地狱”的信息,[5]其中,集成所花费的时间超过了制作所花费的时间。他们原来的变化。
持续交付
连续交付(CD或CDE)是一种软件工程方法,团队可以在短周期内生产软件,以确保可以随时可靠地发布软件,并且在发布软件时可以手动进行。[1] [2]它旨在以更高的速度和频率来构建,测试和发布软件。通过允许对生产中的应用程序进行更多增量更新,该方法有助于降低成本,时间和交付变更的风险。一个简单且可重复的部署过程对于持续交付很重要。
CD与持续部署形成对比,持续部署是一种类似的方法,该软件也可以在短周期内通过自动部署而不是手动部署来生产软件。
最新文章
- hihoCoder 搜索一·24点
- Android Error:You must supply a layout_width attribute……
- 【tyvj】P1049 最长不下降子序列
- 动态创建按钮的JS
- 采用curl库
- MySQL 上手教程
- LindDotNetCore~添加路由前缀
- python点点滴滴
- git取别名配置
- spring mvc返回json格式和json字符串
- python使用SQLAlchemy模块连接MySQL
- 【转载】Java导入导出excel
- oralce表空间使用情况查询
- 使用 Koa + MongoDB + Redis 搭建论坛系统
- 转:线程Thread (1)
- Linux maven 下 jar包下载不下来的解决方法
- System Test GIS压力测试利器
- A Bug's Life(加权并查集)
- [bzoj] 1588 营业额统计 || Splay板子题
- Perl语言入门--3--文件读取与写入
热门文章
- Linux 文件搜索神器 find 实战详解,建议收藏!
- Think in Java 第三章操作符
- 1569: Wet Tiles
- Educational Codeforces Round 88 (Rated for Div. 2) E、Modular Stability 逆元+思维
- Codeforces Round #643 (Div. 2) C. Count Triangles (数学公式)
- 洛谷P1119-灾后重建-floyd算法
- kubernetes实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到k8s
- Leetcode(23)-合并K个排序链表
- 关于虚继承的sizeof问题
- Leetcode(106)-从中序与后序遍历序列构造二叉树