目录
一、DevSecOps核心流程基本组成
1.1 核心流程概述
在 DevSecOps中,根据软件研发生命周期的不同阶段将整体划分为规划、开发、构建、测试、发布、部署、运维、监控8个部分。并根据其包含部分的不同,分为持续开发、持续构建、持续集成,持续交付、持续都署,持续运维、持续监控7个流程。
1.2 DevSecOps 核心流程说明
1.2.1 核心流程图
如图所示的7个流程、基本覆盖了研发活动的各个方面,并分别在不同的场景下被不同的角色使用,推动软件的规划到交付上线,它们共同组成了DevSecOps的生命周期。
关于各个子流程的含义,其中持续集成、持续交付和持续部署在讨论DevOps模型时已介绍,这里对其他的几个流程再做简要的说明。
1.2.2 流程说明
1.2.2.1 持续开发
主要涉及软件“规划”和“编码”阶段,在规划阶段确定项目目标后,开发人员着手应用程序编码开发。开发人员使用版本控制工具对代码进行维护。
1.2.2.2 持续构建
是指开发人员需要更频繁地提交对源代码的更改,可以是每天或每周。对于提交的代码,构建系统可以及早发现问题。构建时不仅涉及代码编译,还包括代码审查 单元测试、打包制品等。
1.2.2.3 持续运维
是指通过配置管理和自动化手段,持续地为线上应用提供高效率、高成功率的自动化运维,如快速扩容、快速升级。通过效率优化、变更管理、紧急事务处理等,保证系统的稳定运行,达成 SLA目标。
1.2.2.4 持续监控
是整个生命周期中非常关键的阶段,此阶段持续监控应用程序在线上的运行情况,检查应用程序的正确功能,通过监控工具,保障线上应用程序的健康性。
熟悉了DevSecOps模型构建的核心流程后,下面我们通过一个经典的DevSecOps核心流程来举例说明下,帮助大家理解DevSecOps的核心流程。一起来看下Azure DevSecOps 的核心流程是什么吧。
二、DevSecOps核心流程经典场景
2.1 Azure DevSecOps核心流程
2.1.1 核心流程图
在 DevSecOps 中其核心流程最终都会落地到系统承载上。在业界,DevSecOps系统的建设通常有自建和依托公有云厂商服务搭建两种方式。通用而经典的DevSecOps流程应用场景如图1-20 所示。
2.1.2 核心流程步骤说明
2.1.2.1 步骤一
开发代码主要托管在源码管理平台,当开发人员访问源码管理平台时,源码管理平台将其调用用户身份认证服务完成用户登录的身份认证。
2.1.2.2 步骤二
代码编辑器IDE作为联机开发环境,是开发人员日常工作的重点工作空间,开发人员完成代码编写后,继续托管在源码管理平台上。
2.1.2.3 步骤三
当开发人员提交代码、代码编译,代码构建时,流程调度引警通过CVCD流水线触发安全检查,调研安全工具链执行检查操作。
2.1.2.4 步骤四
当有新的代码提交时,流程调度引擎触发代码构建和自动化测试。
2.1.2.5 步骤五
流程调度引擎将上一步构建的制品部署到基础设施上,通过基础设施管理器调用和分配其他基础设施资源。
2.1.2.6 步骤六
策略检查器管理基础设施上的安全策略配置,评估部署过程中策略的变更是否满足安全合规要求。
2.1.2.7 步骤七
安全运营中心为线上已部署的应用程序进行持续安全防护,阻断攻击行为。
2.1.2.8 步骤八
安全监测平台对线上已部署的应用程序持续开展跟踪和评估,分析应用日志,输出监控报告或监控告警。
2.1.3 总结
这8个操作步骤中,步骤1)和步骤2)对应于持续开发流程,步骤2)和步骤3)对应于持续构建流程,步骤1)~4)对应于持续集成流程,步骤1)~6)对应于持续部署流程,步骤1)~7)对应于持续运维流程,步骤1)~8)对应于持续监控流程。虽然将上述8个步骤划分到不同的DevSecOps流程中有点牵强,但通过这样的划分,能让大家理DevSecOps核心流程和典型应用场景,回顾大家已有的研发背景知识,结合日常工作环境帮助读者来理解DevSecOps的流程。
好了,本次内容就分享到这,欢迎大家关注《DevSecOps》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!