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

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

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

相关文章

浏览器https受信任证书生成——openssl颁发受信任证书

站点常常由于没有受信任的第三方CA机构颁发证书,使用https访问时,浏览器常常会弹出不安全的提示,为解决该问题,可以使用openssl颁发个人证书来解决该问题。 1openssl安装及使用方式参考:32.9 x509_OpenSSL 中文手册https://www.openssl.net.cn/docs/230.html2.本文章所有生…

java打家劫舍2(力扣Leetcode213)

打家劫舍2 力扣原题链接 问题描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统&a…

相机显示储存卡未格式化怎么回事?怎么办

在摄影的学习和实践中,相机是我们记录美好瞬间的得力助手。然而,当相机突然提示储存卡未格式化时,这往往会让我们感到困惑和焦虑。本文将探讨相机显示储存卡未格式化的可能原因,并提供相应的解决方案。 图片来源于网络&#xff0c…

web自动化测试系列-selenium的运行原理和常用方法介绍(二)

目录 1.selenium的运行原理 2.常用方法介绍 接上文 :web自动化测试系列-selenium的安装和运行(一)-CSDN博客 在上文中我们编写了一段简单的代码 ,可以驱动浏览器访问百度并搜索关键字 。这里我们再把这段代码再拿来加以说明 。 # 1. 导包 from selen…

搭建Spark单机版环境

在搭建Spark单机版环境的实战中,首先确保已经安装并配置好了JDK。然后,从群共享下载Spark安装包,并将其上传至目标主机的/opt目录。接着,解压Spark安装包至/usr/local目录,并配置Spark的环境变量,以确保系统…

数据分析 | pandas

主要数据结构: Series: Series 是一种类似于 Numpy 中一维数组的对象,它由一组任意类型的数据以及一组与之相关的数据标签(即索引)组成。 import pandas as pdprint(pd.Series([2, 4, 6, 8])) print(pd.Series([2, …

Python 全栈体系【四阶】(二十)

第五章 深度学习 二、推荐系统 1. 推荐算法介绍 1.1 个性化推荐算法 人口属性 地理属性 资产属性 兴趣属性 1.2 推荐算法分支 协同过滤推荐算法基于内容的推荐算法混合推荐算法流行度推荐算法 1.3 推荐算法 为推荐系统选择正确的推荐算法是非常重要的决定。目前为止…

基于springboot+vue调用百度ai实现车牌号识别功能

百度车牌号识别官方文档 结果视频演示 后端代码 private String getCarNumber(String imagePath, int count) {// 请求urlString url "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";try {byte[] imgData FileUtil.readFileByBytes(imagePath);Stri…

机器学习笔记(4)—逻辑回归(Logistic Regression)

文章目录 逻辑回归(Logistic Regression)分类问题假说表示判定边界代价函数简化的成本函数和梯度下降多类别分类:一对多 逻辑回归(Logistic Regression) 分类问题 分类问题中,我们要预测的变量 y y y是一…

【数字图像处理】改变图像灰度级别

改变图像灰度级别 首先,对原始图像 O O O进行灰度级量化: q int ⁡ ( O 2 i ) 2 i , q\operatorname{int}\left(\frac{O}{2^{i}}\right) \times 2^{i}, qint(2iO​)2i, 灰度级别256,128,64,32,16,8&…

Qt 图形视图 /图形视图框架坐标系统的设计理念和使用方法

文章目录 概述Qt 坐标系统图形视图的渲染过程Item图形项坐标系Scene场景坐标系View视图坐标系map坐标映射场景坐标转项坐标视图坐标转图形项坐标图形项之间的坐标转换 其他 概述 The Graphics View Coordinate System 图形视图坐标系统是Qt图形视图框架的重要组成部分&#xf…

1.0 html(1)

html 一、基本介绍 1、定义:html是一种超文本标记语言,也是一种标识性语言(不是编程语言) 标记:记号(绰号) 超文本:就是页面内容可以包含图片、链接,音乐&#xff0c…

IBM:《2023IBM年报》

2024年3月12日,IBM分享了《2023IBM年报》。 报告节选: 在本财年,IBM 的收入为 619 亿美元,按固定汇率计算增长 3%,自由现金流为 112 亿美元,同比增长 19 亿美元。我们经历了对新 watsonx 平台日益增长的需…

ElasticSearch、java的四大内置函数式接口、Stream流、parallelStream背后的技术、Optional类

第四周笔记 一、ElasticSearch 1.安装 apt-get install lrzsz adduser -m es 创建用户组: useradd *-m* xiaoming(用户名) *PS:追加参数-m* passwd xiaoming(用户名) passwd xiaoming 输入新的 UNIX 密码: 重新输入新的 UNIX 密码&…

Spring Boot | Spring Boot的“核心配置“与“注解“

目录: Spring Boot的核心配置与注解 :1. 全局配置文件 ( application.properties / application.yaml:创建项目时候自动生成,其会被“自动导入”到“程序”中 )application.properties配置文件application.yaml 配置文件 (推荐使用)当value值…

GitLab更新失败(CentOS)

使用yum更新GitLab,出现如下错误提示: Error: Failed to download metadata for repo gitlab_gitlab-ce: repomd.xml GPG signature verification error: Bad GPG signature 编写如下脚本: for pubring in /var/cache/dnf/gitlab_gitlab-?…

基于nodejs+vue电影订票系统python-flask-django-php

本系统采用了node语言的express框架,数据采用MySQL数据库进行存储。结合进行开发设计,功能强大,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足电影订票的相关工作。 目 录 1 绪 论 3 1.1…

centos7 安装influxdb+telegraf+grafana 监控服务器

influxdb influxdb是一个时间序列数据库, 所有数据记录都会打上时间戳, 适合存储数字类型的内容 telegraf telegraf 可以用于收集系统和服务的统计数据并发送到influxdb grafana grafana 是一个界面非常漂亮, 可直接读取influxdb数据展示成各种图表的开源可视化web软件 安…

Gin中的gin.Context与Golang原生的context.Context区别与联系

一.gin中的context gin.Context 1.概念 在 Gin 中,Context 是一个非常重要的概念,它是Gin的核心结构体之一,用于处理 HTTP 请求和响应,在 Gin 的处理流程中,Context 贯穿整个处理过程,用于传递请求和响应的信息Gin 的 Context 是…

如何查询电脑是否被锁定了IP地址?锁定IP会出现什么问题?

前言 电脑刚到手的时候,基本上是通过路由器DHCP进行IP分配的。路由器DHCP分配IP给电脑的好处是网络不会出现IP冲突,网络能正常使用。 有些电脑可能在DHCP自动获取IP时出现错误,所以小伙伴就会通过手动设置IP让电脑可以正常上网。 这样的操…