【名词解释】CI(持续集成) 和 CD(持续交付)
持续集成 CI(Continuous integration)
定义
是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。
每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
措施
1、减少风险 (多次集成有利于尽快发现集成缺陷)
2、减少重复过程 (节省时间、费用和工作量)
3、任何时间、任何地点生成可部署的软件
4、增强项目的可见性 (有效决策、构建趋势)
5、建立团队对开发产品的信心 (构建结果成功率)
要素
1.统一的代码库 2.自动构建 3.自动测试 4.每个人每天都要向代码库主干提交代码 5.每次代码递交后都会在持续集成服务器上触发一次构建 6.保证快速构建 7.模拟生产环境的自动测试 8.每个人都可以很容易的获取最新可执行的应用程序 9.每个人都清楚正在发生的状况 10.自动化的部署原则
1. 所有的开发人员需要在本地机器上做本地构建,然后再提交的版本控制库中,从而确保他们的变更不会导致持续集成失败。 2. 开发人员每天至少向版本控制库中提交一次代码。 3. 开发人员每天至少需要从版本控制库中更新一次代码到本地机器。 4. 需要有专门的集成服务器来执行集成构建,每天要执行多次构建。 5. 每次构建都要100%通过。 6. 每次构建都可以生成可发布的产品。 7. 修复失败的构建是优先级最高的事情。 8. 测试是未来,未来是测试持续交付 CD (Continuous Delivery)
定义
让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况
目标
目标在于让软件的构建、测试与发布变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。