持续交付/持续部署流程主要系统构成(CD)

news2025/2/1 6:56:31

目录

一、概述

二、持续交付/持续部署主要构成

2.1 镜像容器管理系统

2.1.1 镜像分类

2.1.1.1 磁盘镜像

2.1.1.2 镜像容器

2.1.1.2.1 镜像容器分层管理示意图

2.1.2 镜像容器管理系统软件

2.2 配置管理系统

2.2.1 配置管理系统的功能

2.2.1.1 管理操作系统层、中间件层相关软件的安装和配置

2.2.1.2 管理软件应用相关的安装和配置

2.2.1.3 管理网络的配置和调整

2.2.1.4 管理基础设施的资源、配置

2.2.2 配置管理系统架构

2.2.3 配置管理工具

2.3 运维发布管理系统

2.3.1 概述

2.3.2 运维发布管理系统周边关系

2.3.3 运维发布管理系统的作用

2.3.4 运维发布管理系统的不足

2.3.5 运维发布管理系统现状


一、概述

熟悉CI/CD平台使用的读者想必知道,在业界,CI/CD流程的平台产品通常是在一起的。也就是说很多产品具备持续集成能力的同时,也具备持续交付、持续部署能力。用一句话总结就是,CI流程是生产出可用的软件制品包;CD流程是将软件制品包部署到测试、生产等环境以达到用户需求。从CI到CD的流程在平台实现上很多能力是可以公用的,典型的能力如任务管理、编排调度、系统监控等。除了这些公共能力外,想要实现上述CD流程的平台化,通常包含以下几个系统。

二、持续交付/持续部署主要构成

2.1 镜像容器管理系统

在介绍镜像管理的基本概念时曾提到,镜像可以看出静态的,无论是软件制品镜像还是操作系统镜像,最终都是通过持续交付、持续部署流程的调度生成可运行的生产环境实例,让服务或软件真正运行起来。为了完成这一流程的标准化和自动化,镜像容器管理系统在其中起着重要的作用。

2.1.1 镜像分类

针对这些镜像的管理通常是由镜像容器管理系统或容器注册表来完成的。由于不同的企业,其技术路线的选型不同,涉及的镜像类型存在较大的差异,常见的镜像类型有:

2.1.1.1 磁盘镜像

如iso光盘数据镜像、vhd虚拟机通用镜像、raw非结构化磁盘镜像等。

2.1.1.2 镜像容器

如ovf和ova格式虚拟化镜像、Docker容器镜像、阿里云主机镜像等。

2.1.1.2.1 镜像容器分层管理示意图

在DevSecOps中,涉及镜像的主要镜像容器类型是由云原生基础和虚拟化架构决定的。为了达到对操作系统、运行环境、应用软件包的“一次构建,多次部署”,通常对这些镜像及依赖镜像创建的运行实例过程实施分层管理,遵循开放容器计划(Open Container Initia,OCI),使用包含不同运行环境的容器镜像来解决镜像部署过程中的标准化问题,如下图所示:

2.1.2 镜像容器管理系统软件

这些不同类型的镜像通过镜像容器管理系统与CI/CD的打通,在完成整个镜像生命周期管理的同时,也完成了通过容器化的持续部署功能。

在镜像管理系统中,除了管理容器从创建到销毁的生命周期外,拉取、推送容器镜像到不同的环境中去,还有镜像存储、容器运行、容器网络接口管理、CI/CD接口集成等功能,其本质是通过容器化技术的深度应用,构建黄金管道的自动化测试与部署能力。

目前,常用的镜像容器管理系统如下图所示:

2.2 配置管理系统

2.2.1 配置管理系统的功能

通过前文对配置管理基本概念的介绍,读者了解了配置管理在DevSecOps中起到的重要作用和使用模式,它的使用场景除了基本的版本控制管理之外,还体现在以下几个方面:

2.2.1.1 管理操作系统层、中间件层相关软件的安装和配置

这些功能可以通过前文的镜像管理来解决。如果无法镜像化,则仍需要通过定义自己的Configuration as Code(配置即代码)来解决。

2.2.1.2 管理软件应用相关的安装和配置

从前文的讨论可以知道,通过镜像容器方案来达到“一次构建,多次部署”的过程中,仍有很多配置需要根据部署环境的不同而做改变。这些配置需要通过配置管理,以保证这些线上操作的可重复性。

2.2.1.3 管理网络的配置和调整

即Networks as Code(网络即代码)。通过网络策略、路由策略、端口开放等,完成蓝绿发布、灰度发布、流量牵引等不同操作的配置。

2.2.1.4 管理基础设施的资源、配置

这些可以依托云管系统来完成,但云管系统与CI/CD的集成、调度等工作仍是配置管理的重点。

2.2.2 配置管理系统架构

以上这些场景下,通过配置管理系统或配置管理工具,从配置脚本到环境变量适配,以完成不同环境下的测试、部署需要,从而完成1台到多台机器的批量操作,满足单一部署到高并发、高可用环境下的多部署策略的支撑。常见的配置管理系统架构如图所示:

2.2.3 配置管理工具

目前,常用的配置管理工具如表所示:

2.3 运维发布管理系统

2.3.1 概述

在介绍持续交付、持续部署的流程时曾介绍,流程的关键改变是将研发产物从测试环境发布到UAT环境、准生产环境、生产环境上。在这一发布过程中,起着最大作用的就是运维发布管理系统或自动化部署系统。用户通过任务调度,借助运维发布管理系统,将不同阶段的制品或应用安装包推送到不同的运行环境中去

2.3.2 运维发布管理系统周边关系

运维发布管理系统与配置管理系统,以及各个运行环境之间的关系,如下图所示:

2.3.3 运维发布管理系统的作用

运维发布管理系统以任务调度为主线,为用户提供一键发布、灰度发布、一键回滚等自动化发布操作。开发人员或运维人员在使用时,跟踪任务的执行进度、过程日志、异常记录,判断发布操作的进展情况,以便及时地做出发布策略的调整。

例如,通过资源划分可以开展滚动发布,每次发布一定比例的服务器,如10%、30%、60%,通过三次覆盖所有的服务器。这样的情况下,如果没有运维发布系统,当服务器达到一定数量级时,运维的成本会很高,发布周期也会很长。甚至,发布的版本如果出现了问题,难以及时回退或回滚。而使用运维发布管理系统,这些问题都是在系统的功能范围之内。

2.3.4 运维发布管理系统的不足

当然,运维发布管理系统也有自身的不足,尤其是在云原生和微服务的架构逐步成为主流的背景下,运维发布管理系统与应用、应用架构的耦合是有一定侵入的,这种影响在推广落地过程中,既要看用户的容忍度,也很考验产品的成熟度与易用性。

2.3.5 运维发布管理系统现状

目前,运维发布管理系统在不少企业是单独存在的,很多还是与CI/CD融合在一起的。不论它是哪种形态,所提供的能力都需要相应的系统去承载。这些才是运维发布管理系统对整个CI/CD流程的真正价值。

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

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

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

相关文章

goland annotate置灰点不动问题解决

goland 项目突然看不到左侧边栏提交记录,annotate按钮灰色不可点击,右键菜单也没有git,尝试各种方法终于解决。 原因是项目使用的非安全模式启动。 C:\Users\用户名\AppData\Roaming\JetBrains\GoLand2022.3\options 路径下的 trusted-path…

java分割回文串(力扣Leetcode131)

分割回文串 力扣原题链接 问题描述 给定一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 示例 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输…

第十四届蓝桥杯省赛C++ B组所有题目以及题解(C++)【编程题均通过100%测试数据】

第一题《日期统计》【枚举】 【问题描述】 小蓝现在有一个长度为100的数组,数组中的每个元素的值都在0到9的范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 …

原生数据开发软件 TablePlus for mac

一款非常好用的本地原生数据开发软件:TablePlus激活版。 软件下载:TablePlus for mac v3.11.0激活版 这款优秀的数据库编辑工具支持 MySQL、SQL Server、PostgreSQL 等多种数据库,具备备份、恢复、云同步等功能。它可以帮助您轻松编辑数据库中…

KUKA机器人安全信号的接入方式

KUKA机器人的安全信号与IO模块是相互独立的,即安全信号不是通过IO信号接入到机器人里。安全信号主要是指:急停、安全门等属于机器人安全控制类的信号。 一、KUKA机器人安全信号的接入方式有以下3种: 1、第一种方式:Profisafe,以软件包的形式安装机器人…

2024最新网络编程 面试题解析

2024最新网络编程 面试题解析 三次握手和四次挥手 三次握手 三次握手是TCP/IP协议中用于建立可靠连接的过程。具体步骤如下: 第一次握手:客户端发送一个带有SYN标志的TCP报文段给服务器,请求建立连接,并进入SYN_SENT状态。 第…

Radash一款JavaScript最新的实用工具库,Lodash的平替!

文章目录 Lodash 的痛点进入正题--Radash特点 举例几个常用的api 一说lodash应该大部分前端同学都知道吧,陪伴我们好多年的JavaScript工具库,但是自从 ES6 出现后就慢慢退出前端人的视线,能ES6写的代码绝对不会用Lodash,也不是完全…

快速上手Spring Cloud 九:服务间通信与消息队列

快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …

回溯dfs和分支限界bfs

一:拓扑排序 207. 课程表 这道题说白了就是在有向图中找环 拓扑排序实际上应用的是贪心算法。 贪心算法简而言之:每一步最优,全局就最优。 每一次都从图中删除没有前驱的顶点,这里并不需要真正的删除操作,通过设置入度…

centos7配置阿里云的镜像站点作为软件包下载源

目录 1、备份 2、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ 3、测试 阿里镜像提供的配置方法:centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 1、备份 [rootlocalhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO…

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测

时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现CPO-BP冠豪猪算法优化BP神经网络时间序列预测(完整源码…

大电流电感的作用和特点

大电流电感又称为高功率电感,一般是指绕线型电感, 一、主要作用 1.在低频时,起蓄能和滤高频; 2.在高频时,它的阻抗特性表现的很明显。有耗能发热,感性效应降低等现象。 简单来说就是对交流信号进行隔离、…

Bun安装与使用

Bun安装与使用。 它目前无法在windows上直接安装使用,必须通过虚拟机安装。 在win10虚拟机中安装 # 查看内核版本 $ uname -srm Linux 6.1.0-10-amd64 x86_64# 安装unzip解压工具 $ sudo apt install unzip# 下载安装脚本并开始安装 curl -fsSL https://bun.sh/ins…

实现一个Google身份验证代替短信验证

最近才知道公司还在做国外的业务,要实现一个登陆辅助验证系统。咱们国内是用手机短信做验证,当然 这个google身份验证只是一个辅助验证登陆方式。看一下演示 看到了嘛。 手机下载一个谷歌身份验证器就可以 。 谷歌身份验证器,我本身是一个基…

Hyper-V 虚拟机设置静态 IP 和外网访问

文章目录 环境说明1 问题简介2 解决过程 环境说明 宿主机操作系统:Windows 11 专业版漏洞复现操作系:debian-live-12.5.0-amd64-standard 1 问题简介 在 Windows 上用自带的 Hyper-V 虚拟机管理应用创建了一个 Debian 12 虚拟机,配置静态 IP…

Ventoy装机

文章目录 Ventoy安装操作系统问题U盘无法识别问题BIOS设置图片 Ventoy安装操作系统问题 当前使用的m.2(nvm)可以使用在台式机上。 "verification failed sercury violation"这个问题似乎与使用Ventoy创建启动盘并在启用了Secure Boot&#x…

为什么写博客对程序员很重要

之前写过一段时间博客,但是后面半途而废了。最近开始频繁更新,把自己一些学习心得系统得整理后发布出来,希望以后能够坚持写下去。 写博客对程序员有多重要?这个是自己在反思的一个问题,上下班在地铁上想,…

windows下QT如何集成OpenCV

说明 我在windows下使用QT Creator12创建的CMake项目,需要OpenCV的一些功能。由于安装的时候我选择的QT组件都是MInGW的,所以无法使用VS studio版本的dll库。 为什么vs的版本不能用 我安装QT选择的是MinGW版本,本地编译QT工程只能选择MinG…

HarmonyOS实战开发-如何实现一个简单的电子相册应用开发

介绍 本篇Codelab介绍了如何实现一个简单的电子相册应用的开发,主要功能包括: 实现首页顶部的轮播效果。实现页面跳转时共享元素的转场动画效果。实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 Swiper:滑块视图容…

Matlab-写入mhd和raw医学图像处理格式文件

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 mhd和raw是什么? MHD(MetaImage)和RAW(Raw Image Data)是用于医学图像…