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

相关文章:

  • 主流后端开发语言:JAVA、C、C++、GO、PYTHON对比
  • 如何系统的学习 C#
  • C#使用iText7画发票PDF——字体与自定义颜色
  • 上位机图像处理和嵌入式模块部署(qmacvisual透视变换)
  • 优雅的使用ChromeDriver
  • 论文《Exploring to Prompt for Vision-Language Models》阅读
  • Linux小程序: 手写自己的shell
  • LabVIEW比例流量阀自动测试系统
  • Eclipse+Java+Swing实现斗地主游戏
  • 散热风扇220v交流12v直流12038轴流风机配电箱机柜散热风扇15050
  • Rust教程:How to Rust-基本类型
  • 探索数据库mysql--------------mysql主从复制和读写分离
  • 电脑关机速度很慢怎么解决?
  • L3-016 二叉搜索树的结构
  • LeetCode //C - 436. Find Right Interval
  • create-react-app项目添加less配置
  • GitUp, 你不可错过的秀外慧中的git工具
  • Go 语言编译器的 //go: 详解
  • Java深入 - 深入理解Java集合
  • java小心机(3)| 浅析finalize()
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • PHP 的 SAPI 是个什么东西
  • Python利用正则抓取网页内容保存到本地
  • spark本地环境的搭建到运行第一个spark程序
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端面试之CSS3新特性
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 我看到的前端
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 说说我为什么看好Spring Cloud Alibaba
  • ​Linux·i2c驱动架构​
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (09)Hive——CTE 公共表达式
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (二)springcloud实战之config配置中心
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (数据结构)顺序表的定义
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .bashrc在哪里,alias妙用
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET面试题(二)
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .sys文件乱码_python vscode输出乱码
  • @Autowired标签与 @Resource标签 的区别
  • @property python知乎_Python3基础之:property
  • @Responsebody与@RequestBody
  • [ 蓝桥杯Web真题 ]-布局切换
  • [20150321]索引空块的问题.txt
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Angular 基础] - 表单:响应式表单