持续集成(CI)持续部署(CD) 简介

2023-11-07

定义:一天中多次的将所有工作者的工作合并到一个共享的主线的协作方式,具体来说是开发人员提交新代码后立即进行构建,测试。根据测试结果我们可以确定新代码和原代码是否能正确的集成到一起

CI / CD的意义和价值

  • 敏捷开发思想的体现。
  • 频繁、自动化、可重复。流程像管道,代码像水。
  • 快速发现问题,快速解决(从软件质量的角度讲,快是为了让有问题的代码快速的被发现,尽早解决,在CD的阶段发现问题比在正式环境发现问题好,在CI阶段发现问题比在CD阶段发现问题好)。
  • 不能保证Bug Free,所以提高发布频率,降低单次发布风险。
  • 快速交付用户价值,拥抱市场变化。
     

CI - 持续集成:高频的将个人开发的代码集成到主线中

关键点

1、高频 :高频能保证不会有巨大的变化而引发不可控制的问题发生

2、自动化 :自动化可以保证高频

3、主线 :不一定是master,只要是团队成员共享的工作分支就行

CD - 持续交付(Continuous Delivery)和 持续部署 (continuous Deployment)

持续交付

软件工程中的一种方法,团队在很短的迭代内交付代码,确保可以随时的可靠的发布新版本,发布的时候可以进行手动的发布。

在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」中。

它的优点是不用在每个大版本开发完成后上线,而是在每个小功能或模块开发完成后就可以上线。
 

关键点

1、可以尽快的交付给测试人员

2、测试成员在「类生产环境」中测试

3、保证有一个“随时可发布”的版本

4、部署可以是手动的
 

持续部署

也是软件工程中的一种方法,它通过自动的部署行为来快速的频繁的交付软件。

在持续交付的基础上,自动化的将项目部署到真实的生产环境。

它可以尽可能快的交付给用户,是敏捷开发思想的体现

CI 的实现

CI在工作流程中站在个人与团队交互的角度,关注点主要在以下两个

1、保证协作质量

  • 代码风格检查
  • 版本规范
  • Git 分支规范
  • 自动化单元测试、端到端测试
  • ...

2、保证失败后可追溯

  • 测试结果通知到责任人
  • 清晰的Changelog记录,有利于快速定位问题是那个版本引发的
  • Code Review机制
  • ...
     

CD 的实现

1、持续交付

  • 多种级别的测试环境(每一次的测试都应该在更接近真实环境的条件下进行)
  • QA团队对功能测试的快速响应
  • 自动化测试覆盖率的检查(覆盖率越大风险越小)
  • 发布流程的标准化(节省发布时间和防止在发布阶段产生新的风险)
     

2、持续部署

  • 完善的项目迭代机制
  • 渐进式的发布策略(保证发布过程的稳定)
  • 线上监控告警(及时发现线上的问题和通知责任人)
  • 快速回滚能力(快速恢复到某一稳定版本)
  • ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

持续集成(CI)持续部署(CD) 简介 的相关文章

  • 计算机毕业设计Node.js+Vue电影票网上订票系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • Unity 动态加载Prefab

    Unity动态记载Prefab 第一种方法 从Resources文件夹读取Prefab Assets Resources是Unity中的一个特殊文件夹 放在这个文件夹里的资源包括Prefab可以被代码动态加载 GameObject Pref
  • 软件测试_笔记(完整版)

    软件测试 概述 程序 文档 数据 软件 狭义的软件测试定义 为发现软件缺陷而执行程序或系统的过程 广义的软件测试定义 人工或自动地运行或测定某系统的过程 目的在于检验它是否满足规定的需求或弄清预期结果和实际结果间的差别 为什么要做软件测试

随机推荐

  • LTspice入门使用教程(导入元器件&电压电流波形&幅频特性曲线)

    LTspice使用教程 本文针对LTspice的基本操作进行简单讲解 包括 导入自定义参数的元器件模型 仿真查看电压 电流波形图 输出幅频特性曲线 导入自定义参数的模型 打开LTspice 新建原理图之后 选择工具栏里的component
  • html实现点击复制内容功能

    需要实现点击复制功能需要先下载个插件 vue中可以通过 npm install clipboard save dev 来安装该插件 也可以通过使用线上cdn 复制scirpt标签引入到页面即可 html td class t left 用户
  • MatConvNet中mnist源码解析

    本文的代码来自MatConvNet 下面是自己对代码的注释 cnn mnist init m function net cnn mnist init varargin CNN MNIST LENET Initialize a CNN sim
  • 经典的8个内部排序算法

    1 直插排序 思想 每一趟 对于待排序元素a i 该元素前面的子序列已有序 在有序序列中从后往前查找其插入位置 一边比较一边移动 直至找到插入位置 插入该元素 一共n 1趟 举例 待排序序列 5 8 4 12 9 第一趟 5 8 4 12
  • 测试dx12

    按照龙书上进行测试 更改几处后 正常
  • KEIL中怎样添加STC系列单片机

    我们有时在KEIL中新建工程时需要添加STC系列单片机 但就是找不到 这是因为你安转的Keil软件中没有STC的数据库 所以需要你手动添加 这就需要在STC ISP软件 这个软件可以在STC网http www stcisp com下载或者百
  • background-position-x和background-position-y的兼容性问题

    一 语法 background position x length left center right background position y length left center right 二 取值 length 百分数 由浮点数字
  • 软件测试行业有多卷,到底饱和了没,怎么样才不会被淘汰

    原视频链接 https www bilibili com video BV1GS4y127Jp 软件测试为什么越来越卷 还在躺平你就要被淘汰了
  • js -- 如何点击某个地方不失去焦点

    用mousedown ul on mousedown li function event preventDefault
  • 部署项目到阿里云服务器无法访问

    亲测 https blog csdn net GXL 1012 article details 82958031
  • stm32 IIC驱动BH1750光照强度传感器/GY302模块

    STM32f1系列单片机使用IIC驱动BH1750 转发此文请标明出处 首先说明下 GY302模块上面其实就是一个BH1750芯片 然后加了一小丢丢的外部驱动电路 实际上本质来说没什么区别 用起来一样 简单的来说下BH1750这款光照强度传
  • Nuxt.js学习(四) --- Nuxt.js过渡动效

    TOC 1 Nuxt js过渡动效 1 1 官方文档 Nuxt js 使用 Vue js 的
  • MySQL~多表查询

    一 多表查询 查询语法 select 列名列表 from 表名列表 where 1 准备sql 创建部门表 CREATE TABLE dept id INT PRIMARY KEY AUTO INCREMENT NAME VARCHAR 2
  • python保存所有变量值_如何在当前python会话中保存所有变量?

    繁星coding 这是使用spyderlib函数保存Spyder工作区变量的方法 Load data from spydata filefrom spyderlib utils iofuncs import load dictionaryg
  • Arduino接收串口发送的数据

    一 我们可以通过Arduino发送数据给电脑通过串口监视器进行观察 二 可以通过调用函数Serial available 来判断有没有数据发送过来 从而接收数据 三 函数Serial read 可以读取串口过来的数据
  • 学习笔记2(自用)

    一 emmet语法 1 简介 Emmet语法的前身是Zen coding 它使用缩写 来提高html css的编写速度 Vscode内部已经集成该语法 快速生成HTML结构语法 快速生成CSS样式语法 2 快速生成HTML结构语法 生成标签
  • 华为OD机试真题-路灯照明问题-2023年OD统一考试(B卷)

    题目描述 在一条笔直的公路上安装了N个路灯 从位置0开始安装 路灯之间间距固定为100米 每个路灯都有自己的照明半径 请计算第一个路灯和最后一个路灯之间 无法照明的区间的长度和 输入描述 第一行为一个数N 表示路灯个数 1 lt N lt
  • Apipost使用技巧

    前言 随着web技术的发展 特别是前后端分离的架构主键成为主流 我们后端程序员调试的时候不再依赖页面去操作 而是直接调试接口 对于没有权限控制的GET接口而言 这是一个非常轻松的工作 但是对于有权限的或者使用了其他方法 POST PUT D
  • 哈工大C语言程序设计精髓-数据区间判断

    题目内容 从键盘输入一个int型的正整数n 已知 0
  • 持续集成(CI)持续部署(CD) 简介

    定义 一天中多次的将所有工作者的工作合并到一个共享的主线的协作方式 具体来说是开发人员提交新代码后立即进行构建 测试 根据测试结果我们可以确定新代码和原代码是否能正确的集成到一起 CI CD的意义和价值 敏捷开发思想的体现 频繁 自动化 可