执行摘要

云原生应用已经发展成为一个标准化的架构,由以下部分组成。

  • 多个松散耦合的组件被称为微服务(通常或典型地以容器形式实现)。
  • 一个应用服务基础设施,为用户、服务和设备提供安全通信、认证和授权等服务(例如,服务网格)。

由于安全、商业竞争力和其固有的结构(松散耦合的应用组件),这类应用需要一个不同的应用、部署和运行时监控范式 —— 统称为软件生命周期范式。DevSecOps(分别由开发、安全和运维的首字母缩写组成)是这些应用的开发、部署和运维的促进范式之一,其基本要素包括持续集成、持续交付和持续部署(CI/CD)管道。

CI/CD 管道是将开发人员的源代码通过各个阶段的工作流程,如构建、功能测试、安全扫描漏洞、打包和部署,由带有反馈机制的自动化工具支持。在本文中,应用环境中涉及的整个源代码集被分为五种代码类型:

  1. 应用代码,它体现了执行一个或多个业务功能的应用逻辑。
  2. 应用服务代码,用于服务,如会话建立、网络连接等。
  3. 基础设施即代码,它是以声明性代码的形式存在的计算、网络和存储资源。
  4. 策略即代码,这是运行时策略(例如,零信任),以声明性代码的形式表达。
  5. 可观测性即代码,用于持续监测应用程序的健康状况,其中监测功能被表述为声明性代码。

因此,可以为所有五个代码类型创建单独的 CI/CD 管道。还描述了这些代码类型中的每一种所执行的功能,以强调它们在整个应用程序的执行中所发挥的作用。

虽然云原生应用有一个共同的架构堆栈,但堆栈组件运行的平台可能有所不同。该平台是物理(裸机)或虚拟化(如 Kubernetes)上的一个抽象层。为了在本文中明确提及该平台或应用环境,它被称为 DevSecOps 原语参考平台,或简称为 参考平台

本文件的目的是为参考平台的 DevSecOps 原语的实施提供指导。本文还介绍了这种实施对高安全保障的好处,以及在管道内使用风险管理工具和仪表盘指标提供持续授权操作(C-ATO)的工件。