什么是cicd

转自:https://ecloud.10086.cn/api/query/developer/user/home.html?ticket=ST-118209-JyOs6xynJVxEZhRnOV3w#L2FwaS9xdWVyeS9kZXZlbG9wZXIvZm9ydW0vZmxvb3JsaXN0Lmh0bWw/aWQ9MDNmMDQ1YzBjZWM4NDQzZGFiNTYyY2U5YTdiMmE4ZTEmc291cmNlPXVzZXI=

CI(continuous integration 持续集成),CD(continuous delivery 持续交付),CI/CD改变了开发和测试人员发布新版本的方式。
版本迭代经历了:瀑布模型,敏捷开发,到现在的Devops,敏捷开发的时候,每月每季度甚至每年发布一个新版本,而现在,每周每天都可能发布。产品上云后,可动态的更新应用程序,大部分时候客户感受不到正在发生变化,开发团队通过交付流水线实现自动化部署。
那么什么是持续集成呢,持续集成希望团队中的成员能频繁的提交代码到仓库里,每次的提交都能通过自动化测试进行校验,从而尽早的暴露问题并解决问题,这会降低解决问题的周期和难度。
持续交付是持续集成的扩展,目的是最小化部署或释放过程中固有的摩擦,它的实现通常能将构建部署的每个步骤自动化,从而更安全的完成代码部署。本质是把构建成功的应用迭代更新交付给用户使用。好处是快速获取用户反馈,适应市场变化。CD 依赖于部署流水线,团队通过流水线实现自动化测试和部署过程,流水线是一个自动化系统,可以针对构建执行一组渐进的测试套件,在流水线的每个阶段,如果构建无法通过关键测试会向团队发出警报。否则,将继续进入下一个测试,并在连续通过测试后自动进入下一个阶段。流水线的最后一个部分会将构建部署到和生产环境等效的环境中。这是一个整体的过程,因为构建、部署和环境都是一起执行和测试的,它能让构建在实际的生产环境可部署和可验证。
如何实现持续交付:
1.保证每次提交的修改都是可上线的修改。
2.完善的测试以测试新功能和进行回归测试。
3.持续交付的前提条件是自动化的集成和部署。
持续部署:是一种更高程度的自动化,无论何时对代码进行重大更改,都会自动进行构建/部署。持续部署扩展了持续交付,以便软件构建,在通过所有测试时自动部署。在这样的流程中,不需要人为决定何时及如何投入生产环境。CI/CD 系统的最后一步将在构建后的组件/包退出流水线时自动部署。此类自动部署可以配置为快速向客户分发组件、功能模块或修复补丁,并准确说明当前提供的内容。采用持续部署可以快速的将新功能传递给客户,可迅速处理明显的缺陷,并获得用户对新版本的反馈,次反馈有助于团队规划投入避免无效消耗,随着devops的发展,各种实现cicd流水线的工具应运而生,例如bug跟踪工具jira,自动化工具jenkins,除了这些开源的还有付费的比如codeship等。使用的过程,可以让我们更好的了解这些工具是如何与云平台,容器系统协同运作的。

原文地址:https://www.cnblogs.com/Janejxt/p/15587912.html