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

news2024/9/21 0:34:04

目录

一、概述

二、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》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

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

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

相关文章

5、双亲委派机制

双亲委派机制指的是:当一个类加载器接收到加载类的任务时,会自底向上查找是否加载过, 再由顶向下进行加载。 详细流程: 每个类加载器都有一个父类加载器。父类加载器的关系如下,启动类加载器没有父类加载器&#xff1…

MySql实战--普通索引和唯一索引,应该怎么选择

在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统&…

网络编程--高并发服务器(二)

这里写目录标题 线程池高并发服务器UDP服务器TCP与UDP机制的对比TCP与UDP优缺点比较UDP的C/S模型实现思路模型分析实现思路(对照TCP的C/S模型) 二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二…

Siemens S7-1500TCPU 运动机构系统功能简介

目录 引言: 1.0 术语定义 2.0 基本知识 2.1 运动系统工艺对象 2.2 坐标系与标架 3.0 运动机构系统类型 3.1 直角坐标型 3.2 轮腿型 3.3 平面关节型 3.4 关节型 3.5 并联型 3.6 圆柱坐标型 3.7 三轴型 4.0 运动系统的运动 4.1 运动类型 4.1.1 线性运动…

一阶低通滤波器特性对比

分析y[n]qx[n](1-q)y[n-1] 和 1/(Ts1) 两款常用滤波器的区别 代码下载链接: https://download.csdn.net/download/RNG_uzi_/89048367

C波段卫星与5G的干扰排查及解决方案

作者介绍 一、方案背景 目前造成C波段卫星信号受5G信号干扰有以下几个原因: ●C波段(3.4-4.2GHz)和电信5G频段(3.4-3.7GHz)间存在频谱重叠。 ●地面终端接收到的卫星信号通常比蜂窝信号弱几个数量级,同频…

Vue 03 组件通信

Vue学习 Vue 0301 浏览器本地存储localStorageSessionStorage案例 todolist的完善 02 组件自定义事件Custom Events基本使用解绑自定义事件注意事项①② 总结案例 todolist的完善 03 全局事件总线GlobalEventBus案例 todolist的完善 04 消息的订阅与发布案例 todolist的完善 05…

go的通信Channel

go的通道channel是用于协程之间数据通信的一种方式 一、channel的结构 go源码:GitHub - golang/go: The Go programming language src/runtime/chan.go type hchan struct {qcount uint // total data in the queue 队列中当前元素计数,…

设计模式-设配器模式

目录 🎊1.适配器模式介绍 🎃2.适配器类型 🎏3.接口适配器 🎐4.类的适配器 🎎5.优缺点 1.适配器模式介绍 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设…

进阶了解C++(6)——二叉树OJ题

Leetcode.606.根据二叉树创建字符串: 606. 根据二叉树创建字符串 - 力扣(LeetCode) 难度不大,根据题目的描述,首先对二叉树进行一次前序遍历,即: class Solution { public:string tree2str(Tr…

【管理咨询宝藏59】某大型汽车物流战略咨询报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏59】某大型汽车物流战略咨询报告 【格式】PDF 【关键词】HR调研、商业分析、管理咨询 【核心观点】 - 重新评估和调整商业模式,开拓…

代码随想录——移除元素(Leetcode27)

题目链接 暴力&#xff1a;&#xff08;没有改变元素相对位置&#xff09; class Solution {public int removeElement(int[] nums, int val) {int len nums.length;for(int i 0; i < len; i){if(nums[i] val){for(int j i 1; j < len; j){nums[j-1] nums[j];}i…

ESCTF-密码赛题WP

*小学生的爱情* Base64解码获得flag *中学生的爱情* 社会主义核心价值观在线解码得到flag http://www.atoolbox.net/Tool.php?Id850 *高中生的爱情* U2FsdG开头为rabbit密码,又提示你密钥为love。本地toolfx密码工具箱解密。不知道为什么在线解密不行。 *大学生的爱情* …

LLM - 大语言模型的指令微调(Instruction Tuning) 概述

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/137009993 大语言模型的指令微调(Instruction Tuning)是一种优化技术&#xff0c;通过在特定的数据集上进一步训练大型语言模型(LLMs)&a…

STM32 PWM通过RC低通滤波转双极性SPWM测试

STM32 PWM通过RC低通滤波转双极性SPWM测试 &#x1f4cd;参考内容《利用是stm32cubemx实现双极性spwm调制 基于stm32f407vet6》&#x1f4fa;相关视频链接&#xff1a;https://www.bilibili.com/video/BV16S4y147hB/?spm_id_from333.788 双极性SPWM调制讲解以及基于stm32的代码…

线程的状态:操作系统层面和JVM层面

在操作系统层面&#xff0c;线程有五种状态 初始状态&#xff1a;线程被创建&#xff0c;操作系统为其分配资源。 可运行状态(就绪状态)&#xff1a;线程被创建完成&#xff0c;进入就绪队列&#xff0c;参与CPU执行权的争夺。或因为一些原因&#xff0c;从阻塞状态唤醒的线程…

Deno 1.42:使用 JSR 更好地进行依赖管理

3 月 28 日&#xff0c;Deno 宣布 1.42 版本正式推出。Deno 的愿景是简化编程&#xff0c;其中一个重要方面就是管理依赖关系。虽然 npm 已发展成为最成功的开源注册表&#xff0c;但使用和发布模块却变得越来越复杂。 基于 npm 的成功&#xff0c;JSR 提供​​了一个现代化的…

如何使用PMKIDCracker对包含PMKID值的WPA2密码执行安全测试

关于PMKIDCracker PMKIDCracker是一款针对无线网络WPA2密码的安全审计与破解测试工具&#xff0c;该工具可以在不需要客户端或去身份验证的情况下对包含了PMKID值的WPA2无线密码执行安全审计与破解测试。 PMKIDCracker基于纯Python 3开发&#xff0c;旨在帮助广大安全研究人员…

MongoDB副本集环境搭建(以单机Windows为例)

前言 近期有搭建MongoDB副本集的需求,简单记录一下搭建过程(以本地Windows环境为例)。 一、副本集选型 1 Primary节点、1 Secondary 节点、1 Arbiter节点模式副本集环境搭建。 二、搭建过程 1. 安装MongoDB服务 下载地址:https://www.mongodb.com,如下图所示: 选择…

sonar+gitlab提交阻断 增量扫描

通过本文&#xff0c;您将可以学习到 sonarqube、git\gitlab、shell、sonar-scanner、sonarlint 一、前言 sonarqube 是一款开源的静态代码扫描工具。 实际生产应用中&#xff0c;sonarqube 如何落地&#xff0c;需要考虑以下四个维度&#xff1a; 1、规则的来源 现在规则的…