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

news2024/11/18 3:30:05

目录

一、概述

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

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

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

相关文章

红黑树的Java实现

红黑树的Java实现 文章目录 红黑树的Java实现一、概述二、添加元素三、删除元素四、完整代码总结 一、概述 红黑树也是一种二叉平衡搜索树,向比与AVL树,是一种弱平衡树。因为AVL树是通过平衡因子,左右树的高度相差不能大于1来保证平衡&#…

实测梳理一下kafka分区分组的作用

清空topickafka-topics.sh --bootstrap-server localhost:9092 --delete --topic second创建分区kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic second发kafka-console-producer.sh --bootstrap-server localhos…

ospf实验

基础配置 如上图所示,按照上图所示的配置,俩个路由器之间按照12.12.12.X/30网段配置,左端的路由器和交换机之间按照192.168.1.X网段配置,右端的路由器和交换机之间按照192.168.2.X网段配置,下面的两个pc机按照所对应的…

Java 学习和实践笔记(48):怎样用二维数组来存储表格数据?

怎样用数组的方式,来存储下面这个表格的数据? 示例代码如下: import java.util.Arrays;public class Test001 {public static void main(String[] args) {/*object类对象是类层次结构的根。每个类都有Object作为超类。所有对象,包…

使用llamafile 构建本地大模型运用

安装 https://github.com/Mozilla-Ocho/llamafile 下载 大模型文件,选择列表中任意一个 wget https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue https://github.com/Mozilla-Ocho/llamafile?tabre…

软件部署资源计算工具:精确评估资源需求

软件部署资源计算工具:精确评估资源需求 在当今快速发展的信息技术时代,软件部署已成为企业运营不可或缺的一部分。然而,一个常见的挑战是如何精确评估软件部署所需的资源。资源评估不仅关系到软件的性能和稳定性,还直接影响到成…

区块链食品溯源案例实现(二)

引言 随着前端界面的完成,我们接下来需要编写后端代码来与区块链网络进行交互。后端将负责处理前端发送的请求,调用智能合约的方法获取食品溯源信息,并将结果返回给前端。 通过前后端的整合,我们可以构建一个食品溯源系统&#xf…

【第三方登录】Twitter

创建应用 APPID 和 相关回调配置 重新设置api key 和 api secret 设置回调和网址 还有 APP的类型 拿到ClientID 和 Client Secret 源码实现 获取Twitter 的登录地址 public function twitterUrl() {global $db,$request,$comId;require "inc/twitter_client/twitte…

2018年亚马逊云科技推出基于Arm的定制芯片实例

2018年,亚马逊云技术推出了基于Arm的定制芯片。 据相关数据显示,基于Arm的性价比比基于x86的同类实例高出40%。 这打破了对 x86 的依赖,开创了架构的新时代,现在能够支持多种配置的密集计算任务。 这些举措为亚马逊云技术的其他创…

《数据结构学习笔记---第三篇》---单链表具体实现

目录 1.链表 1.1 链表的概念及结构 2.不带头单链表的实现 2.1创建头文件“SList.h” 2.2 创建具体接口实现文件SList.c 2.2.1打印 2.2.2申请链表结点 2.2.3创建一个长度为n的链表 2.2.4尾插尾删 2.2.5头插头删 2.2.6寻找x元素,返回pos 2.2.7插入和删除pos…

基于模糊控制算法的倒立摆控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 对倒立摆模型进行模糊控制器simulink建模,利用倒立摆的摆角角度与小车的位置来控制小车的推力,控制了倒立摆的摆角问题,使得小车最终停在稳…

【Linux】Ubuntu20.04解决网卡、显卡驱动不正确的问题

文章目录 1、概述2、问题描述2.1、快捷栏无无线设置2.2、设置中无Wifi设置专栏2.3、接入外接屏幕无作用 3、网卡驱动解决方案3.1、在18.04的旧方法3.1.1、安装源更换3.1.1.1、备份原始安装源3.1.1.2、修改安装源地址3.1.1.3、更新源地址 3.1.2、安装依赖3.1.3、安装编译器3.1.3…

大模型精准度提升调研

如何让ChatGPT更靠谱 1. 预训练大模型概述 关于预训练 预训练(Pre-training)是深度学习中一种常见的技术,特别是在自然语言处理(NLP)和计算机视觉(CV)等领域中。它通常指在一个大型的、通常是…

智能小程序有哪些重要能力?

概念 小程序能力是模块化的,它以kit的形式提供给业务(开发者)。通过kit可以实现快速接入涂鸦生态,获得互联互通的能力。 能力分包 能力分类包名基础能力BaseKit小程序容器能力MiniKit涂鸦内部基础能力以及细粒度通用业务能力Biz…

服务器监控软件夜莺采集监控(三)

文章目录 一、采集器插件1. exec插件2. rabbitmq插件3. elasticsearch插件 二、监控仪表盘1. 系统信息2. 数据服务3. NginxMQ4. Docker5. 业务日志 一、采集器插件 1. exec插件 input.exec/exec.toml [[instances]] commands ["/home/monitor/categraf/scripts/*.sh&q…

区块链食品溯源案例实现(一)

引言: 食品安全问题一直是社会关注的热点,而食品溯源作为解决食品安全问题的重要手段,其重要性不言而喻。传统的食品溯源系统往往存在数据易被篡改、信息不透明等问题,而区块链技术的引入,为食品溯源带来了革命性的变革…

第十篇【传奇开心果系列】Python自动化办公库技术点案例示例:深度解读Python自动化操作Excel

传奇开心果博文系列 系列博文目录Python自动化办公库技术点案例示例系列博文目录 前言一、重要作用解说二、Python操作Excel的常用库介绍三、数据处理和分析示例代码四、自动化报表生成示例代码五、数据导入和导出示例代码六、数据可视化示例代码八、数据校验和清洗示例代码九、…

数据结构——第5章 树和二叉树

1 二叉树 二叉树和树都属于树形结构,但两者互不包含。即二叉树不是特殊的树。 1.1 二叉树的基本概念 1.2 二叉树的顺序存储 仅适用于完全二叉树 #define MaxSize 100 typedef int ElemType; typedef struct TreeNode{ElemType value;//结点中的数据元素bool isE…

【面试】Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法? Elasticsearch是一个分布式搜索和分析引擎,它在Linux环境下的性能和稳定性可以通过一些优化方法进行提升。以下是一些针对Linux环境下Elasticsearch部署的优化方法: 1. 内…

OSG编程指南<二十一>:OSG视图与相机视点更新设置及OSG宽屏变形

1、概述 什么是视图?在《OpenGL 编程指南》中有下面的比喻,从笔者开始学习图形学就影响深刻,相信对读者学习场景管理也会非常有帮助。 产生目标场景视图的变换过程类似于用相机进行拍照,主要有如下的步骤: (1)把照相机固定在三脚架上,让它对准场景(视图变换)。 (2)…