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