什么是CI/CD?它们与敏捷开发和devops的关系?

           什么是CI/CD?它们与敏捷开发和devops的关系?

    现在某些大型公司中软件的开发和发布已经形成了一套标准流程,其中敏捷开发和DevOps是更好更快发布产品的常用的两种理念,而CI和CD是实现这两种理念的一种方法。他们之际的关系可以粗暴的用下图表示:

一、什么是CI?

1、定义

    CI是Continuous integration的简称,持续集成指频繁地(一天多次)将代码集成到主干,其实就是将编码、代码的编译、打包、单元测试执行、静态代码的分析,甚至包括自动化的功能性测试等,这一套动作将其自动化运行起来的过程叫持续集成。核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。CI的目得是让产品可以快速迭代,同时还能保持高质量。CI流程如下图:

2、好处

(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

3、总结

持续集成并不能消除 Bug,而是尽早发现bug。

 

二、什么是CD?

1、定义

CD包括Continuous Delivery(持续交付)和Continuous Deployment(持续部署)

(1)Continuous Delivery(持续交付)

    持续交付可以看作持续集成的下一步,指频繁地将软件的新版本,交付给质量团队或者用户,以供评审,如果评审通过代码进入待生产部署状态,也就是说不管怎么更新,软件具备随时交付到生产环境的能力,但还没有真正部署到生产。

(2)Continuous Deployment(持续部署)

    持续部署是持续交付的下一步,指代码通过评审以后可自动部署到生产环境,也就是说代码具备随时部署到生产的能力。持续部署的前提是能自动化完成测试、构建、部署等步骤。持续部署是自动,持续部署是持续交付的最高阶段

三、持续集成、持续交付、持续部署三者关系

    持续交付不可以了解为流水线,持续集成CI与持续交付Continuous Delivery的区别可以粗暴的认为:持续交付=持续集成+测试策略。持续交付表示的是一种能力,而持续部署则是一种方式。

 

已标记关键词 清除标记
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页