DevSecOps平台架构系列-互联网企业私有化DevSecOps平台典型架构

目录

一、概述

二、私有化DevSecOps平台建设思路

2.1 采用GitOps+公有云建设

2.2 采用GitOps+私有云建设

2.3 总结

三、GitOps及其生态组件

3.1 采用GitOps的好处

3.1.1 周边生态系统齐全

3.1.2 便于自动化的实现

3.1.3 开发人员属性GitOps

3.2 GitOps部分生态组件介绍

四、私有化DevSecOps平台架构

4.1 典型架构架构图

4.2 关键场景的流程

4.3 总结


一、概述

通过前两篇文章对微软Azure和亚马逊AWS DevSecOps平台架构的简单介绍,想必大家已经明白,依托CI/CD的DevOps管道和云原生基础设施构建高度自动化的DevSecOps平台能力已是业界普遍共识。CI/CD提供应用研发自动化流水线,云原生基础设施代码化提供持续集成到持续交付的自动化,共同完成DevSecOps能力从需求到生产环境运营的全流程覆盖。介绍完两家头部互联网企业的公有云DevSecOps平台架构,下面一起来看看常见的互联网企业私有化DevSecOps平台架构。

二、私有化DevSecOps平台建设思路

互联网头部企业主要利用公有云基础设施和持续集成管道完成DevSecOps平台能力建设,而普通的互联网公司私有化DevSecOps平台建设从当前业界现状来看,主要有以下两条思路:

2.1 采用GitOps+公有云建设

采用GitOps,通过Git开源生态系统完成持续集成管道能力构建;通过公有云基础设施管理AP I接口完成持续交付到持续安全运营的自动化能力构建。

2.2 采用GitOps+私有云建设

采用GitOps,通过Git开源生态系统完成持续集成管道能力构建;依托企业自身的私有云完成持续交付到持续安全运营的自动化能力构建。

2.3 总结

无论上述哪种方式,使用GitOps及其开源生态系统构建DevSecOps黄金管道都是企业的首选,而与基础设施、生产环境线下运营监控的打通,则依赖企业自身的信息化建设成熟度。如果企业的基础设施虚拟化做得好,运维自动化技术成熟,则持续交付、持续监控、持续运营能力的整合和流程贯穿会比较顺畅;如果企业内部基础设施标准化程度差,很多工作都是手工在操作,没有代码化和工具化,则持续交付、持续监控、持续运营能力的整合会比较慢,流程贯穿会比较难,甚至,整个流程会一段一段的割裂。所以,当企业规划自己的DevSecOps平台之前,要正确评估企业现状,做出切合企业自身的规划与决策。

三、GitOps及其生态组件

GitOps是指依托Git版本控制系统,构建交付流水线的核心流程,形成包含应用开发、部署、管理、监控的DevOps最佳实践。以往文章中介绍DevOps时曾提及其关键特性中第一条即是自动化,即DevOps流程尽最大可能地自动化去实现,GitOps即是这种自动化理念在平台实现上的产物。

3.1 采用GitOps的好处

使用GitOps来构建DevSecOps平台,主要的好处有:

3.1.1 周边生态系统齐全

围绕Git版本控制的周边生态系统比较齐全,可选择组件多,很容易通过组件集成完成黄金管道的流水线装配。

3.1.2 便于自动化的实现

GitOps自身强调代码化,对基础设施的自动化、运维工作的自动化、安全工作的自动化便于DevSecOps自动化的实现。对于流程管理者来说,速度和效率都得到较好的提升。

3.1.3 开发人员属性GitOps

GitOps依赖于Git系统去构建,对开发人员来说,熟悉其操作,能无缝切换,减少学习带来的额外成本。

3.2 GitOps部分生态组件介绍

通过表中大家可以看出,采用GitOps构建CI/CD持续集成流水线的开源组件/商业产品比较常见,DevSecOps架构师基于它之上,整合云原生技术、Docker、Kubernetes等容器编排技术很容易搭建完成DevSecOps平台能力。

四、私有化DevSecOps平台架构

4.1 典型架构架构图

基于GitOps之上,在现有流程中集成安全工具,构建DevSecOps能力是私有化DevSecOps平台的首选,其典型架构如图所示。

4.2 关键场景的流程

在架构图中,以GitOps为核心的研发活动流水线为主轴,安全工具分布在其周边或分支上,在不同阶段、不同环节嵌入整体流程中去。其关键场景的流程如下

  • 项目管理和需求管理依托Confluence和JIRA将GitLab与JIRA任务打通,形成需求管理到代码开发的线上化。
  • 开发人员完成代码开发提交到GitLab后,自动触发GitLab CI或Jenkins调度任务,进行代码分析、编译构建,最后将构建生成的制品包上传到Nexus仓库。
  • 对于制品库里的制品包,使用SCA组件安全分析软件进行软件成分安全分析。
  • 软件成分分析通过后,如果需要创建容器镜像,则自动创建容器镜像。然后再同步至测试环境,部署制品包,再启动动态安全测试验证,以检验应用程序的安全性。
  • 验证通过后,进入发布审批环节,只有审批通过后方可发布至生产环境。部署时,除了保证镜像来源可靠外,还接入安全防护,如OpenRASP、modSecurity。
  • 通过流水线的安全审计和配置更改检测后,自动化部署应用程序,并接入线上安全运营监控中,开展线上环境持续审计与监控。

4.3 总结

上述流程为私有化DevSecOps平台典型端到端架构中核心场景流程,在私有化建设的背景下,企业对DevSecOps平台的规划更具有自主性,考虑更多与已有流程、已有系统、已有组织/岗位的结合,建设出更贴近企业业务模式的DevSecOps平台。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

动态内存操作函数使用过程中会遇见的问题

越界访问 首先我们上一个代码,看看这个的代码的问题 这个代码的问题显而易见 ,就是在循环里面,产生了越界访问的问题,这里你开辟了10个整形空间,但是从0-10一共是11个整形空间。导致访问不合法的空间,从而…

【C++练级之路】【Lv.17】【STL】set类和map类的模拟实现

快乐的流畅:个人主页 个人专栏:《C语言》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、红黑树(改造版)1.1 结点1.2 迭代器1.2.1 operator1.2.2 operator- - 1.3 本体1.…

【LeetCode热题100】105. 从前序与中序遍历序列构造二叉树(二叉树)

一.题目要求 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 二.题目难度 中等 三.输入样例 示例 1: 输入: preorder [3,9,20,15,7], inorder…

考研数学|第一轮刚完,刷1800惨不忍睹怎么办?

1800题惨不忍睹,我有办法救你 1800题算是所有习题册里面难度比较低的题集了,特别是1800题基础阶段的题目,我一般推荐基础不好的同学在基础阶段做这个。如果1800题都觉得很难的话,那么其他题集就更不用说了 刷1800题错的很多&…

[CISCN2019 华北赛区 Day2 Web1]Hack World

本题首先考察的是sql注入 拿过滤字符集先跑一遍 发现以上字符集都被过滤了 尝试id1 id11 尝试id(1)(2) 这里就已经给出了个思路我们可以尝试盲注去打 id(select(ascii(mid(flag,1,1))102)from(flag)) 这里表跟列已经给了我们了,所以我们可以写脚本了 import reque…

STM32常用的开发工具有哪些

大家好,今天给大家介绍STM32常用的开发工具有哪些,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 STM32常用的开发工具主要包括以下几类: 集成开发环境&…

C++枚举类型

枚举类型 枚举类型使我们可以将一组整型常量组织在一起。 和类一样,每个枚举类型定义了一种新的类型。 枚举属于字面值常量类型。 C包含两种枚举:限定作用域的和不限定作用域的。 限定作用域的枚举类型 C11新标准引入了限定作用域的枚举类型。 定…

阿里云实时计算Flink的产品化思考与实践【上】

摘要:本文整理自阿里云高级产品专家黄鹏程和阿里云技术专家陈婧敏在 FFA 2023 平台建设专场中的分享。内容主要为以下五部分: 阿里云实时计算 Flink 简介产品化思考产品化实践SQL 产品化思考及实践展望 该主题由黄鹏程和陈婧敏共同完成,前半程…

插入排序、归并排序、堆排序和快速排序的稳定性分析

插入排序、归并排序、堆排序和快速排序的稳定性分析 一、插入排序的稳定性二、归并排序的稳定性三、堆排序的稳定性四、快速排序的稳定性总结在计算机科学中,排序是将一组数据按照特定顺序进行排列的过程。排序算法的效率和稳定性是评价其优劣的两个重要指标。稳定性指的是在排…

【地图构建(1)】占用栅格地图构建Occupancy grid mapping

本文主要参考Probabilistic Robotics《概率机器人》一书。 其他参考: 弗莱堡大学课件 博客 含代码博客 0.引言 位姿已知的地图构建(mapping with known poses)的定义:已知机器人的位姿 x 1 : t x_{1:t} x1:t​和传感器的观测数据 z 1 : t z_{1:t} z1:t…

云原生(六)、CICD - Jenkins快速入门

Jenkuns快速入门 一、CICD概述 CICD是持续集成(Continuous Integration)和持续部署(Continuous Deployment)的缩写。它是软件开发中的一种流程和方法论,旨在通过自动化的方式频繁地将代码集成到共享存储库中&#xf…

zotero+word优化管理参考文献

写论文,整理参考文献,管理参考文献很麻烦,参考文献格式罗列很麻烦,论文需要修改时,重新调整参考文献顺序很麻烦。 zoteroword可以很好的帮助解决这个问题。 Step1 zotero软件安装 默认word你已经安装好了 step2 安…

线程局部存储(TLS)

线程局部存储(Thread Local Storage,TLS),是一种变量的存储方法,这个变量在它所在的线程内是全局可访问的,但是不能被其他线程访问到,这样就保持了数据的线程独立性。而熟知的全局变量&#xff…

班级综合测评管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. …

二十 超级数据查看器 讲解稿 功能概述

二十 超级数据查看器 讲解稿 功能概述 ​ ​​点击此处 以新页面 打开B站 播放当前教学视频 点击访问app下载页面 豌豆荚 下载地址​ ​ 讲解稿 ​ 界面启动 ​ 导入 ​ 选excel文件 导入 ​ 原来的excel文件 ​ 导入进本地数据库sqlite ​ 导入成功 ​ 列…

MySQL---事务

目录 一、事务简介 二、事务操作 1.未控制事务 2.事务控制一 3.控制事务二 三、事务的四大特性 四、并发事务问题 五、事务隔离级别 一、事务简介 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或…

喜讯!聚铭网络荣获《日志分类方法及系统》发明专利

近日,聚铭网络又喜获一项殊荣,其申报的《日志分类方法及系统》发明专利成功获得国家知识产权局的授权,正式荣获国家发明专利证书。 在信息化时代,网络安全问题日益凸显,日志分析作为保障网络安全的重要手段&#xff…

【嵌入式——C语言】VScode编写C程序、交叉编译

【嵌入式——C语言】VScode编写C程序、交叉编译 第一步第二步第三步第四步第五步第六步第七步第八步 第一步 下载Visual Studio Code下载地址 然后直接安装就可以了。 第二步 前提是你的电脑上安装了WSL。。。 打开vscode的扩展,输入WSL进行安装 安装完之后在窗…

【深度学习】图片预处理,分辨出模糊图片

ref:https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/ 论文 ref:https://www.cse.cuhk.edu.hk/leojia/all_final_papers/blur_detect_cvpr08.pdf 遇到模糊的图片,还要处理一下,把它挑出来,要么修复,要么弃用。否…

vue组件如何使用?

今天我随便试两个组件 第一个轮播图 在minn.js 引入 import { createApp } from vue; import { Swipe, SwipeItem } from vant; const app createApp(); app.use(Swipe); app.use(SwipeItem); <van-swipe class"my-swipe" :autoplay"3000" indica…