持续交付与持续部署相关概念(CD)

news2025/1/16 15:40:06

目录

一、概述

二、持续交付基本概念

2.1 持续交付的含义

2.1.1 项目管理的视角

2.1.2 产品研发的视角

2.1.3 总结

2.2 持续交付涉及的运作环境

2.2.1 开发环境

2.2.2 测试环境

2.2.3 UAT环境

2.2.4 准生产环境

2.2.5 生产环境

2.3 总结

三、持续部署基本概念

3.1 持续部署的含义

3.2 持续部署包含的内容

3.2.1 部署升级

3.2.2 部署验证

3.2.3 部署监控

3.3 持续部署过程中不同角色的操作内容

3.3.1 持续部署不同角色操作示意图

3.3.2 持续部署不同角色操作内容说明

四、其他相关概念

4.1 概述

4.2 配置管理

4.3 镜像管理


一、概述

前面的文章为大家介绍了持续集成流水线的技术实现,本文将继续带领大家了解持续交付与持续部署的相关知识,打通产品版本发布到线上持续运营的流程,逐步完成从产品规划到产品线上运营的全流程覆盖。

本文以持续交付、持续部署为主线,继续讲述DevSecOps平台里黄金管道子系统中持续交付与持续部署两个流程涉及的相关概念、系统及平台,帮助大家完善DevSecOps平台里黄金管道子系统相关领域知识。

二、持续交付基本概念

2.1 持续交付的含义

持续交付的含义在业界有多种不同的理解,根据岗位角色的不同,大体可分为两种。

2.1.1 项目管理的视角

站在项目管理的视角看,从项目的生命周期去理解持续交付,这种视角下持续交付的含义更多地偏向于产品研发到项目目标的达成,满足客户需求,达到项目验收完成项目回款的过程

2.1.2 产品研发的视角

站在产品研发的视角看,表示产品通过测试验证,达到可交付给客户状态下的持续可交付性

2.1.3 总结

本文中主要是指产品研发的视角下的持续交付,它早于持续部署流程,从需求规划到持续集成后,完成测试环境部署、验证,通过内部评审验收,达到用户可交付状态的这一段流程。其含义如下图所示:

如果用一句话来总结持续交付流程的含义,则是重点保障产品需求的持续实现,把最新版本的应用程序部署到UAT环境的持续性流程

2.2 持续交付涉及的运作环境

为了帮助大家更好地理解持续交付及后续章节持续部署的流程,大家先要了解这一段流程中与运作环境相关的内容。

在软件产品研发的过程中,通常会涉及多套运行环境,这些环境在不同的场景下通常有不同的特定称谓,这是需要读者理解和掌握的。这些环境主要有:

2.2.1 开发环境

开发环境比较好理解,顾名思义是指软件开发人员在编码开发过程中所用的运行环境。这套环境对服务器配置要求不高,只要能方便开发人员进行代码调试,分析错误日志即可,不会与用户直接交互。通常来说,只有开发人员才会使用这套环境,因为需要不停地修改或上传代码、调整配置等,这套环境上的应用程序很不稳定。

2.2.2 测试环境

测试环境主要是用来进行软件产品测试验证的运行环境,通常是由测试人员和开发人员共同维护。大多数情况下,以测试人员维护为主。为了保障测试工作的持续开展,对环境的启停和修改不如开发环境那样频繁,且这套环境上部署的软件产品相对开发环境来说版本要更稳定,以便于测试人员开展功能测试和集成测试。

2.2.3 UAT环境

名词UAT是英文User Acceptance Test的缩写,意思是用于进行用户接受度测试的运行环境,是来提高客户使用体验的。和我们通常说的客户演示环境或用户验收环境类似,这套环境对系统的稳定性、版本的稳定性、需求满足程度均有一定的要求,主要使用对象为客户。

2.2.4 准生产环境

又称仿真环境,是指已完成部署但未正式开始生产使用的运行环境,一般来说系统架构、关键参数基本与生产环境一致,仅仅是没有真实的业务流量

2.2.5 生产环境

直接面向最终用户提供的正式、对外服务的真实业务环境,这套环境的管理有严格的要求,同时系统稳定性也有很高的要求,如果对这套环境进行修改或调整,需要严格审批发布流程。

2.3 总结

在DevSecOps平台的黄金管道中,大多数场景下主要与开发环境、测试环境、准生产环境、生产环境相关。软件产品的研发过程中,很多情况下UAT环境与准生产环境使用的是同一套环境,没有严格的区分,小的企业或项目甚至都没有UAT环境和准生产环境。而一个软件产品的开发通常经历开发、测试、上线三个阶段后,才开始进入线上运维与运营,所以,开发环境、测试环境、生产环境通常都会具备。理解了这些运行环境之间的差异,持续交付流程在整个产品研发过程中的意义也就容易理解了。

从持续集成到持续交付的流程推进,背后是自动化集成测试、自动化配置管理、自动化基础设施管理三方面能力的极大提升。安全作为集成测试、配置管理、基础设施管理其中的一个部分,也贯穿着持续交付流程的始终。

三、持续部署基本概念

3.1 持续部署的含义

持续部署的含义是在持续交付的基础上,将已通过客户验收确认产品版本发布到生产环境的过程,如下图所示:

从上图来看,持续部署的流程比较简单,仅仅是从UAT环境向生产环境推进了一步。

3.2 持续部署包含的内容

因为生产环境的稳定性要求,持续部署的过程至少应该包含以下三个部分:

3.2.1 部署升级

制品仓库中通过用户验收确认的产品版本,通过技术评审、流程审批、自动更新等一系列操作部署到生产环境中,完成制品的替换升级。在真实的升级过程中,部署升级并非替换一个制品文件那样简单。常常是同一个制品文件同时部署在多台服务器上,升级时每个文件都需要更新。除了制品文件外,诸多与应用配置相关的参数项,如网络端口、系统文件目录权限、跨区域网络访问的链路路由等都需要在升级时同时操作。为保证部署升级的可靠性,多数企业采用蓝绿部署、灰度部署、滚动更新等方式来避免部署升级操作带来的业务中断风险。

3.2.2 部署验证

为了保障部署结果的一致性和生产环境的可用性,通常在部署完成后做阶段性验证,同时也是为了尽早地发现问题,尽早解决,减少部署升级对业务产生的影响。

3.2.3 部署监控

验证完成后,为了持续跟踪线上系统的运行状态,还需要在升级后的一段时间内对生产环境进行监控,以防止遗漏、未发现的问题对业务生产过程产生影响

3.3 持续部署过程中不同角色的操作内容

完成了生产环境的自动化发布后,DevSecOps平台的黄金管道则完成Dev研发段全流程贯穿。在这个流程中,除了上文中提及的自动化集成测试、自动化配置管理、自动化基础设施管理等能力的自动化之外,还有很多细节性的流程与配置管理上的运营,才会产生持续部署的结果。

下图所示为持续部署流程中各个不同角色视角下的全流程操作示意图,通过这张图,更利于读者理解其背后涉及的知识点和技术方向。

3.3.1 持续部署不同角色操作示意图

3.3.2 持续部署不同角色操作内容说明

从上图中大家可以看到,在黄金管道的两端分布着平台管理员、开发人员和用户。平台管理员维护DevSecOps平台,开发人员研发产品,用户使用产品。从产品规划到产品可使用的自动化生产过程是DevSecOps平台运维管理和持续运营之上的持续化生产能力。

四、其他相关概念

4.1 概述

在持续交付与持续部署阶段,除了上述的持续交付、持续部署、运行环境的基本概念外,还有以下概念需要了解,以便于大家从技术层面理解后续DevSecOps平台能力的实现。

4.2 配置管理

相比传统的软件开发模型,在现代化的DevSecOps开发中,配置管理尤为重要,甚至可以说,没有配置管理就没有DevSecOps的安全自动化的实现。这里讨论的配置管理主要是指围绕软件开发生命周期的配置管理,除了传统意义上的代码仓库、版本控制、缺陷管理等基础的配置基线外,还包括需求管理、软件设计、测试、部署、运维等过程的流程化和线上化管理动作的配置管理,期望以配置文件管理的方式统一集中管控同一软件在不同环境下(开发、测试、生产)的自动化配置,达到开发或部署过程可控且可重复的目的,其典型的技术表现为DevOps工具和流程管理的线上化、基础设施即代码的技术实现,如下图所示:

基础设施资源(如云主机、云数据库、云存储等)、应用程序文件(如应用安装包、数据库脚本、配置文件)、模板库(如主机镜像、Docker镜像、配置文件模板)以配置管理的方式,通过代码操作为持续交付、持续部署过程的自动化提供基础。这些内容均属于配置管理的内容。

4.3 镜像管理

镜像管理是随着IT技术的发展而逐渐提出来的概念,最初的镜像是操作系统镜像;后来出现虚拟化之后,将安装好的虚拟机克隆出来形成主机镜像;现在,随着云原生和容器化技术的发展,出现了容器镜像。基于这些镜像,在持续交付、持续部署过程中生成可运行的实例,达到类似“一次构建,多次部署”的目的。

为了保证这些镜像的可用性,需要持续性地对镜像进行管理和维护。同时,在持续交付、持续部署过程中,同一个镜像无法满足不同场景下的使用,于是出现了镜像配置文件分离。通过外置配置文件的方式,来满足同一个镜像无法满足不同场景下的使用。在不断变化的过程中,逐渐出现了镜像注册表的概念,利用镜像注册表充当镜像仓库,在持续交付、持续部署过程中进行编排和调度。如下图所示为镜像管理在持续交付和持续部署过程的使用关系。

好了,本次内容就分享到这,欢迎大家关注《DevSecOps》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构八大常见的排序

数据结构八大常见的排序 常见排序算法分类1.插入排序2.希尔排序(缩小增量排序)3.选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序归并排序非递归的实现8.计数排序 常见排序算法分类 1.插入排序 基本思想:把待排序的数组按大小逐个插入到一个已经排好序的有序序列中…

【Java EE】多线程(一)

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

物联网实战--入门篇之(六)嵌入式-WIFI驱动(ESP8266)

目录 一、WIFI简介 二、基础网络知识 三、思路讲解 四、代码分析 4.1 状态机制 4.2 客户端连接 4.3 应用数据接收处理 4.4 数据发送 4.5 主函数调用 4.6 网络连接ID分配 五、总结 一、WIFI简介 WIFI在我们生活中太常见了,手机电脑都可以用WiFi连接路由器进行上…

MIT最新研究成果 机器人能够从错误中纠偏 无需编程介入和重复演示

目前科学家们正在努力让机器人变得更加智能,教会他们完成诸如擦拭桌面,端盘子等复杂技能。以往机器人要在非结构化环境执行这样的任务,需要依靠固定编程进行,缺乏场景通用性,而现在机器人的学习过程主要在于模仿&#…

开关恒流源简介

目录 工作原理 设计要点 应用场景 初步想法,为参加活动先占贴(带家人出去玩没时间搞~~),后面优化 开关恒流源是一种基于开关电源技术的恒流输出电源设备。它采用开关管进行高速的开关动作,通过控制开关管的导通和截…

linux 一些命令

文章目录 linux 一些命令fdisk 磁盘分区parted 分区文件系统mkfs 格式化文件系统fsck 修复文件系统 mount 挂载swap 交换分区清除linux缓存df du 命令raid 命令基本原理硬raid 和 软raid案例raid 10 故障修复,重启与卸载 lvm逻辑卷技术LVM的使用方式LVM 常见名词解析…

数据库---------完全备份和增量备份的数据恢复,以及断点恢复

目录 一、在数据库表中,分三次录入学生考试成绩 1.1先创建库,创建表,完成三次数据的录入 1.2首次录入成绩后,做该表的完全备份 1.3第二次插入后 做增量备份 1.4第三次插入后 做增量备份 二、模拟数据丢失,并使用…

大文件上传做断点续传(有详细的代码内容)

文章目录 一、是什么分片上传断点续传 二、实现思路三、使用场景小结参考文献 一、是什么 不管怎样简单的需求,在量级达到一定层次时,都会变得异常复杂 文件上传简单,文件变大就复杂 上传大文件时,以下几个变量会影响我们的用户…

标题:Vue3 中父组件向子组件通信的方式

标题:Vue3 中父组件向子组件通信的方式 在 Vue3 中,父组件和子组件之间可以通过一些方式进行通信。其中,父组件向子组件通信主要有两种方式:传值和调用子组件的方法。 一、父组件向子组件传值 当父组件需要向子组件传递数据时&a…

快速排序---算法

1、算法概念 快速排序:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的数据均比另一部分的数据小,则可分别对这两部分记录继续进行排序,以达到震哥哥序列有序。 快速排序的最坏运行情况是O(),比如说顺序数…

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下: (1)编写接口Animal Animal接口有2个抽象方法cry()和getAnimaName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。 &…

设计模式 - 中介器模式

中介者模式使得组件通过一个中心点——中介者进行交互。组件不需要直接进行通信,而是将请求发送给中介者,由中介者进行转发!在JavaScript中,中介者往往只是一个对象字面量或一个函数。 你可以将这种模式与空中交通管制员和飞行员…

科技革新,OTG充电新纪元!

在科技日新月异的今天,数据交互已经渗透到我们生活的每个角落,无论是工作还是娱乐,它都发挥着不可替代的作用。OTG技术的出现,极大地简化了设备间的联接与数据交换过程,但随之而来的接口有限和续航问题,也让…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

计算机服务器中了rmallox勒索病毒怎么办?rmallox勒索病毒解密数据恢复

网络技术的不断发展与应用,大大提高了企业的生产运营效率,越来越多的企业开始网络开展各项工作业务,网络在为人们提供便利的同时,也会存在潜在威胁。近日,云天数据恢复中心接到多家企业的求助,企业的计算机…

设计模式-概述篇

1. 掌握设计模式的层次 第1层:刚开始学编程不久,听说过什么是设计模式第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道第3层:学习过了设计模式,…

Vue 3.0生命周期:深入理解与用法

Vue 3.0生命周期:深入理解与用法 摘要: 本文将深入探讨Vue 3.0的生命周期,解释每个生命周期钩子的含义和用法,以及它们在开发过程中的重要性。我们将详细解析每个钩子的工作原理,并提供一些示例和最佳实践&#xff0c…

python爬取B站视频

参考:https://cloud.tencent.com/developer/article/1768680 参考的代码有点问题,请求头需要修改,上代码: import requests import re # 正则表达式 import pprint import json from moviepy.editor import AudioFileClip, Vid…

常见贪心问题详解

目录 贪心算法应用条件 常见贪心问题 活动安排问题(区间调度问题) 区间覆盖问题 最优装载问题1 最优装载问题2 多机调度问题 例题:翻硬币 例题:快乐司机 例题:防御力 例题:答疑 贪心算法应用条件…

【通信原理笔记】【三】模拟信号调制——3.1 模拟信号调制基本模型与思路

文章目录 前言一、模拟信号二、模拟调制系统模型三、模拟调制的三种方式四、调制的评价指标总结 前言 一般常见的信号的频带均集中在基带附近,如果要通过无线地方式传输,其较长的波长需要大型的天线才能传输,难以实现。另一方面基带的带宽资…