CICD学习笔记(一):CICD介绍

一、CICD

CICD实现了从代码开发、代码编译、部署、测试、发布上线自动化的一套自动化构建的流程

CI即持续集成(Continuous Integration),它实现代码合并、构建、部署、测试都在一起,不断地执行这个过程,并对结果进行反馈。

CD包含两个含义:

  • 持续交付(Continuous Delivery),它实现部署到生产环境,给用户进行使用

  • 持续部署(Continuous Deployment),它实现部署到生产环境

二、项目发布流程

1、传统项目发布流程

首先我们来了解一下传统的项目发布流程

  • 开发者开发代码,开发完毕后将代码打包,提交给运维人员Ops
  • 运维人员获取包,手工将包部署到对应的环境Env当中
  • 运维人员部署完毕后,通知测试人员环境部署完毕
  • 测试人员开始进行测试,测试对应功能是否正确,进行缺陷管理
  • 测试完毕后若有Bug,开发进行修复,修复后则重新开始进行步骤1的操作
  • 所以缺陷修复并测试通过后,项目发布上线

在这个过程当中,部门与部门、人与人之间要不断进行沟通协调,增加了沟通成本,效率低下

2、CICD项目发布流程

下面我们来简单了解一下CICD项目发布的流程

  • 开发人员提交代码到Git/Svn上
  • 通过Jenkins进行触发响应的操作,例如拉取代码、编译代码、代码打包等
  • 进行自动构建环境以及发布,即自动部署
  • 环境部署完毕后进行自动化测试
  • 发送通知或者邮件告知相关人员本次发布以及测试结果

在这个过程当中,全流程的每个节点都是自动化进行处理,以规范的流程模式进行操作,无需人工干预,减少了沟通成本,提升了效率,能够响应项目快速迭代的需求

三、Devops

网易云认为,DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件

CICD学习笔记(一):CICD介绍_第1张图片

从定义来看,其实devops就是为了让开发、运维和QA可以高效协作的流程,可以把DevOps看作开发、技术运营和质量保障(QA)三者的交集

DevOps对应用程序发布的影响

在很多企业中,应用程序发布是一项涉及多个团队、压力很大、风险很高的活动。然而在具备DevOps能力的组织中,应用程序发布的风险很低,原因如下:

1、减少变更范围

与传统的瀑布模式模型相比,采用敏捷或迭代式开发意味着更频繁的发布、每次发布包含的变化更少。由于部署经常进行,因此每次部署不会对生产系统造成巨大影响,应用程序会以平滑的速率逐渐生长。

2、加强发布协调

靠强有力的发布协调人来弥合开发与运营之间的技能鸿沟和沟通鸿沟;采用电子数据表、电话会议和企业门户(wiki、sharepoint)等协作工具来确保所有相关人员理解变更的内容并全力合作。

3、自动化

强大的部署自动化手段确保部署任务的可重复性、减少部署出错的可能性。

与传统开发方法那种大规模的、不频繁的发布(通常以“季度”或“年”为单位)相比,敏捷方法大大提升了发布频率(通常以“天”或“周”为单位)。

感兴趣的同学可以加入QQ群交流:945362137

你可能感兴趣的:(CICD,ci/cd,测试开发)