什么是持续集成(持续交付、部署)

devtools/2024/9/24 14:39:01/

文章目录

1 持续集成

持续集成(Continuous integration,简称CI),简单来说持续集成就是频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。

**持续集成得过程:**先把代码放到git、Jenkins从git获取代码进行构建、测试、生成结果再返回给客户端。

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,可以确定新代码和原有代码能否正确地集成在一起。

1.1 持续集成的好处

  • 提高开发人员的工作效率。持续集成可将开发人员从手动任务中解放出来,并且鼓励有助于减少发布到客户环境中的错误和缺陷数量的行为,从而提高团队的工作效率。

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

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

  • 从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,减少人工干预。

  • 任何时间、任何地点生成可部署的软件,出现问题,项目成员会被马上通知到,问题第一时间修复。

  • 增强项目可见性,有效的控制台日志能帮助我们更好的解决存在的问题。

简单的来说为什么需要持续集成

过去,一个团队的开发人员可能会孤立地工作很长一段时间,只有在他们的工作完成后,才会将他们的更改合并到主分支中。这使得合并代码更改变得困难而耗时,而且还会导致错误积累很长时间而得不到纠正。这些因素导致更加难以迅速向客户交付更新。

1.2 持续集成的目的

让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

持续集成并不能消除 Bug,而是让它们非常容易的发现和改正。

1.3 没有持续集成的状况

在这里插入图片描述

2 持续交付

持续交付(Continuous Delivery,简称CD)指的是:频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续交付是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。

持续交付是经典的敏捷的软件开发方法的自然延伸,它强调产品在修改后到部署上线的流程要敏捷话、自动化。甚至一些较小的改变也要尽早的部署上线。通俗的讲可以有几个特点:

  • 代码越早交付出去,用户越早能用到,快就是商业价值。
  • 用户反馈能及时作出处理,能帮助产品市场人员调整测策略。
  • 降低修改成本。

3 持续部署

持续部署(Continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境

4 持续交付和持续部署的区别

CD是持续交付和持续部署,但是持续交付不等于持续部署。持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。具体区别参考下图:
在这里插入图片描述


http://www.ppmy.cn/devtools/98687.html

相关文章

人工智能赋能的认知营销:定制开发AI智能名片商城小程序的未来展望

摘要:随着人工智能技术的飞速发展,其在商业领域的应用日益广泛且深入,特别是在认知营销这一前沿领域。本文旨在探讨人工智能如何通过定制开发AI智能名片商城小程序,为认知营销注入新的活力与可能性。通过深入分析人工智能在数据处…

Pytest框架直接右键运行 testcase.py,不执行最外层conftest

随笔记录 目录 1. 背景介绍 2. workaround method 2.1 通过命令行执行 某个测试用例 1. 背景介绍 Pytest 框架结构如下: TestCases:conftest.pyInstanta: conftest.pytest_instanta_tcpdump_pack_len.py# 当直接右键直接 运行 test_instanta_tcpdump_pack_l…

File的常见成员方法(判断,获取)

一.方法: 二.查询路径的方法: 1.通过属性查询: 例如:右击一个软件(文件/文件夹)后,在属性中可以查看路径 2.右击后直接复制路径: 右击一个软件/文件/文件夹后,会有一个…

Linux:文件权限详解及修改方法

文章目录 1、Linux文件权限1.1、如何查看到文件权限1.2、ll命令介绍 2、权限分类2.1、文件权限2.2、文件夹权限 3、权限修改3.1、修改文件/文件夹权限1)chmod指令2)chmod指令符号 3.2、修改文件/文件夹所属用户3.3、修改文件/文件夹所属群组 4、参考 1、…

vue3 组合式API

<!-- 深度监听 deep 点击按钮控制台&#xff0c;才输出count变化了: 1, 老值: 0;否则控制台不输出 --> <script setup>import { ref,watch } from vueconst state ref({count:0})const setCount () > {state.count.value}watch(state, () > {console.log(…

《python》poetry install下载缓慢,网络问题断开连接--poetry换源镜像下载+国内镜像

在使用打包工具poetry进行打包的是出现了一个问题就是&#xff0c;在使用poetry进行打包的时候出现了&#xff0c;连接断开这样的问题&#xff0c;这个问题是可以通过换源&#xff0c;通过国内的镜像来解决这个问题就可以了。 找到项目中的pyoroject。toml文件这个文件中写了一…

国产版Sora复现——智谱AI开源CogVideoX-2b 本地部署复现实践教程

目录 一、CogVideoX简介二、CogVideoX部署实践流程2.1、创建丹摩实例2.2、配置环境和依赖2.3、上传模型与配置文件2.4、开始运行 最后 一、CogVideoX简介 智谱AI在8月6日宣布了一个令人兴奋的消息&#xff1a;他们将开源视频生成模型CogVideoX。目前&#xff0c;其提示词上限为…

用TensorFlow实现线性回归

说明 本文采用TensorFlow框架进行讲解&#xff0c;虽然之前的文章都采用mxnet&#xff0c;但是我发现tensorflow提供了免费的gpu可供使用&#xff0c;所以果断开始改为tensorflow&#xff0c;若要实现文章代码&#xff0c;可以使用colaboratory进行运行&#xff0c;当然&#…