当前位置: 首页 > news >正文

DevSecOps平台架构系列-微软云Azure DevSecOps平台架构

目录

一、概述

二、Azure DevOps和黄金管道

2.1 概述

2.2 Azure DevOps架构说明

2.2.1 架构及管道流程图

2.2.2 架构内容

2.2.2.1 Azure Boards

2.2.2.2 Azure Repos

2.2.2.3 Azure Test Plans

2.2.2.4 Azure Pipelines

2.2.2.5 Azure Application Insights

2.2.2.6 Azure Web Apps

2.2.3 总结

三、Azure DevSecOps关键安全组件

3.1 安全组件概述

3.2 安全组件内容图表说明

四、Azure DevSecOps平台架构

4.1 Azure DevSecOps平台架构图

4.2 Azure DevSecOps平台架构组成

4.2.1 CI/CD平台

4.2.2 云基础设施

4.2.3 安全工具链

4.3 Azure DevSecOps关键流程

4.3.1 Azure AD身份验证

4.3.2 触发CI/CD流水线


一、概述

微软Azure云的DevSecOps是在Azure DevOps基础上构建起来的,在介绍其DevSecOps平台架构之前,先来了解一下两个相关背景知识:Azure DevOps和黄金管道、Azure DevSecOps关键安全组件。

二、Azure DevOps和黄金管道

2.1 概述

一般来说,采用DevOps来作为研发管理实践是为了加快从需求到应用程序上线的速度,缩短开发周期,通过一致性管理流程和自动化管道,保障应用程序的开发质量。Azure云也不例外,不同的是,Azure云自己开发了一系列的DevOps服务或组件,用于应用程序开发生命周期的端到端管理,包括规划、项目管理、代码管理、制品生成、版本发布等

2.2 Azure DevOps架构说明

2.2.1 架构及管道流程图

2.2.2 架构内容

2.2.2.1 Azure Boards

项目管理工具,以敏捷开发模式支持项目组成员,以Kanban和Scrum方式规划、跟踪需求开发及代码缺陷问题等。

2.2.2.2 Azure Repos

源代码管理工具,提供git存储库或版本控制系统,如集成GitHub。

2.2.2.3 Azure Test Plans

测试管理工具,包含多种测试工具集,通过多种工具测试验证应用程序。

2.2.2.4 Azure Pipelines

持续集成和交付管道,为应用程序提供自动化生成和发布服务。

2.2.2.5 Azure Application Insights

Azure自研的APM服务,应用于各种应用程序的性能监控与管理。

2.2.2.6 Azure Web Apps

发布在Azure云上的Web应用服务,即通过研发流水线开发出来的软件或应用程序。

2.2.3 总结

基于此管道之上,各个团队遵循DevOps管理流程,依托DevOps Server服务和Azure云,构建更快速、更可靠的DevOps实践。

三、Azure DevSecOps关键安全组件

3.1 安全组件概述

在Azure云环境中,为了云上业务持续稳定地运行,Azure自研了一系列安全组件,这些组件构成了Azure安全的整体防护体系。在DevSecOps中,这些组件也可整合到管理流程中去,作为流程中的一个技术组件。下面,将对其中部分关键的安全组件做简要介绍,以帮助大家理解Azure DevSecOps架构。

3.2 安全组件内容图表说明

这些组件覆盖了Azure安全能力的多个方面,如身份认证与鉴别、威胁防护、合规管理、应急响应等。通过整合这些组件,依托DevOps管理流程来实现DevSecOps,必起到事半功倍的效果。

四、Azure DevSecOps平台架构

4.1 Azure DevSecOps平台架构图

4.2 Azure DevSecOps平台架构组成

4.2.1 CI/CD平台

对应于架构图中的GitHub、Azure Pipelines、Terraform三个工具。其中GitHub充当代码管理工具,Azure Pipelines触发CI构建和自动化测试,Terraform充当自动化编排,进行云基础设施管理,如管理Docker容器镜像、Kubernetes服务、应用程序网关等。

4.2.2 云基础设施

对应于架构图中Azure Pipelines右侧部分,重点为图中灰色框中的内容。主要由Azure Kubernetes Service、Application Gateway和Azure Cosmos DB等构成。

4.2.3 安全工具链

安全工具链在这张架构图中体现得并不明显,或者说,Azure将安全特性融入了其他的产品之中(这也是为什么在1.2节中先介绍Azure安全组件的原因)。在架构图中能看到显性的安全工具/组件有:GitHub Advanced Security、GitHub Open Source Security、Azure Key Vault、Application Gateway、Azure Monitor等。

4.3 Azure DevSecOps关键流程

4.3.1 Azure AD身份验证

  • 开发的代码主要托管在GitHub,当开发人员访问GitHub时,GitHub将调用Azure AD进行身份验证。
  • Visual Studio Code的云端联机开发环境是开发人员日常工作的重点工作空间,开发人员根据Azure Boards的需求和问题完成代码编写后,继续托管在GitHub上。

4.3.2 触发CI/CD流水线

  • 当开发人员提交代码后,GitHub Actions通过CI/CD流水线触发GitHub的安全检查GitHub Advanced Security和GitHub Open Source Security。
  • 安全检查通过后进入Pipline流水线。
  • 在Pipline中,代码编译、代码构建后,生成容器镜像,存储在Azure容器注册表中,以便Kubernetes服务发布时使用。
  • 在容器镜像正式发布之前,Azure Pipelines以Terraform为管理工具,对云基础设施,如Azure Kubernetes Service、Application Gateway、Azure Key Vault和Azure Cosmos DB等资源进行安全策略管理。
  • 使用Azure Monitor、Defender for Cloud进行持续监控。
  • 整个平台依托CI/CD管道和安全组件完成安全能力的覆盖。
  • 安全自动化主要依赖Pipline流水线和云原生基础设置的代码化管理。
  • 安全能力既有平台自研,也有外部集成,综合多方能力完成DevSecOps平台能力构建。
  • Azure AD、Azure Monitor、Defender for Cloud等安全组件作为基础安全能力,在安全运营中起到了决定性的作用;项目管理工具、测试管理工具、源代码管理工具等周边生态系统为整个DevSecOps平台能力的构建提供了底层基座。

最后附上Azure DevOps 官网的地址,有兴趣的可以自己去看看:

Azure DevOps Services | Microsoft Azure

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

相关文章:

DevSecOps平台架构系列-微软云Azure DevSecOps平台架构

目录 一、概述 二、Azure DevOps和黄金管道 2.1 概述 2.2 Azure DevOps架构说明 2.2.1 架构及管道流程图 2.2.2 架构内容 2.2.2.1 Azure Boards 2.2.2.2 Azure Repos 2.2.2.3 Azure Test Plans 2.2.2.4 Azure Pipelines 2.2.2.5 Azure Application Insights 2.2.2.6…...

操作系统:管程与进程通信机制解析

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

inno setup 卸载程序 删除整个安装目录

业务场景:有次客户反馈说,卸载应用程序没有卸载干净,安装目录下残留很多文件,特别是一些配置文件和数据库文件,涉及到一些数据安全机密。卸载程序应该把安装目录都要清除。操作如下: 卸载应用程序&#xf…...

【Vue3源码学习】— CH2.5 reactiveEffect.ts:Vue 3响应式系统的核心

reactiveEffect.ts:Vue 3响应式系统的核心 1. 什么是 reactiveEffect?2. 核心机制2.1 依赖收集(Track)2.2 触发更新(Trigger)2.3 效果范围(effectScope) 3. 源码解析 —— track3.1 …...

K8S的mountPath和subPath

1 mountPath mountPath是容器内部文件系统的挂载点,它定义了容器内部将外部存储卷(如 PersistentVolume、ConfigMap、Secret 等)挂载到哪个路径下。通过 mountPath,容器可以访问这些挂载的数据或配置。 2 subPath subPath 是 m…...

notepad++里安装32位和64位的16进制编辑器Hex-Editor

这个16进制编辑器确实是个好东西,平时工作种会经常用到, 这是hex-editor的官网。这个里边只能下载32位的(64位的看最下边),选一个合适的版本,我当时选的是最新的版本 https://sourceforge.net/projects/npp-plugins/files/Hex%20E…...

Python类的基本结构

当我们在Python中定义类时,我们实际上是在创建一种新的数据类型。类允许我们定义对象的属性和方法,从而构建更复杂的程序。让我们深入探讨一下关于类的一些重要概念。 定义类:基本结构 一个类的基本结构包括以下部分: 类名&…...

利用HIVE的窗口函数进行SQL查询中出现的问题记录

student_info部分数据 score_info部分数据 course_info 1、问题复现 --完整SQL selectsti.stu_id,sti.stu_name,concat_ws(",",collect_set(ci.course_name)) over(partition by sti.stu_id) fromstudent_info sti left joinscore_info sci onsti.stu_idsci.stu_id l…...

更改chatglm认知

ChatGLM-Efficient-Tuning 下载源代码 下载ChatGLM-Efficient-Tuning 解压 创建虚拟环境 conda create --prefixD:\CondaEnvs\chatglm6btrain python3.10 cd D:\ChatGLM-Efficient-Tuning-main conda activate D:\CondaEnvs\chatglm6btrain安装所需要的包 pip install -r…...

WPF 界面命令绑定(MVVM结构)

1.创建模型数据类&#xff08;M&#xff09; /// <summary>/// 数据模型/// </summary>public class LoginDataModel{// 用户名private string _userName;public string UserName{get { return _userName; }set{_userName value;}}// 密码private string _passWor…...

常见手撕项目C++

常见手撕项目C 设计模式单例模式饿汉模式懒汉模式 策略模式策略接口实现具体的策略&#xff08;虚函数重写&#xff09;定义上下文用户调用 设计模式 单例模式 单例模式是一种常用的软件设计模式&#xff0c;其目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点来…...

创建一个批处理作业来处理大量数据,例如从数据库中读取数据并进行处理

创建一个批处理作业来处理大量数据&#xff0c;例如从数据库中读取数据并进行处理 要创建一个批处理作业来处理大量数据&#xff0c;您可以使用Spring Batch。Spring Batch是一个用于大规模批处理的框架&#xff0c;它提供了丰富的功能来处理复杂的批处理任务&#xff0c;如读…...

LeetCode 2.两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …...

如何利用ChatGPT提升学术论文写作效率

ChatGPT无限次数:点击直达 如何利用ChatGPT提升学术论文写作效率 ChatGPT 是一种基于大规模预训练模型的自然语言处理工具&#xff0c;可以在各种文本生成任务中发挥作用&#xff0c;包括学术论文写作。利用ChatGPT&#xff0c;可以提高学术论文写作的速度和质量&#xff0c;帮…...

LLMs之Mistral:Mistral 7B v0.2的简介、安装和使用方法、案例应用之详细攻略

LLMs之Mistral&#xff1a;Mistral 7B v0.2的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;Mistral AI首个7B模型发布于2023年9月&#xff0c;在基准测试中超越Llama 2 13B&#xff0c;一下子声名大振。Mistral 7B v0.2对应的指令调优版本Mistral-7B-Instruct-v0…...

深入解析Oracle数据库中的WITH AS(CTE)原理

Oracle数据库中的WITH AS子句&#xff08;也称为公用表表达式CTE(Common Table Expression)&#xff09;是一种高级查询构造工具&#xff0c;它允许在一条SQL语句的开始部分定义临时的结果集&#xff08;或称子查询&#xff09;&#xff0c;这个结果集可以被随后的查询主体多次…...

Linux 环境安装 Elasticsearch 8.X

安装前说明 首先确定操作系统&#xff0c;在Linux发行版上执行uname -a查看具体系统。我是Ubuntu系统&#xff0c;可以用直接用apt-get安装&#xff0c;也可以下载tar.gz包手动安装。使用apt-get安装更方便快速&#xff0c;但不同的文件会被安装到不同的目录&#xff0c;不方便…...

Java零基础-集合:函数式接口

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…...

Redis Scan指令解析与使用示例

Redis Scan指令解析与使用示例 概念 想要从redis key列表中找到某个key&#xff0c;redis提供了一个简单粗暴的指令keys用来列出满足查询条件的所有key。 keys redis* keys redis*keykey指令非常简单&#xff0c;只要提供一个简单的正则表达式即可&#xff0c;但是有两个明显的…...

Qt+OpenGL入门教程(三)——绘制三角形

通过前两篇文章的学习&#xff0c;我想大家应该有了基本的理解&#xff0c;我们接下来实操一下。 创建Qt OpenGL窗口 QOpenGLWidget QGLWidget是传统QtOpenGL模块的一部分&#xff0c;与其他QGL类一样&#xff0c;应该在新的应用程序中避免使用。相反&#xff0c;从Qt5.4开始…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...