CalcGuide · 技术博客主页 / 一页纸学习计划
🟠

可观测、合规与 DORA:从 SBOM/SLSA 到 Four Keys 与事故响应

分类:工程技术 · 路径:docs/topics/observability-compliance-and-dora/README.md

#observability#dora#sbom#slsa#incident

从 SBOM、SLSA 签名、cosign 验证到 DORA Four Keys、incident response 与合规审计的工程闭环。

父主题

CI/CD 与发布:从流水线到灰度与回滚

子主题(0)

可观测、合规与 DORA:从 SBOM/SLSA 到 Four Keys 与事故响应

0. 元信息

1. 学习路线

DORA Four Keys:部署频率 / 变更前置时间 / 变更失败率 / 失败恢复时间
  → Prometheus / Grafana 仪表盘
  → SLSA / SBOM / cosign 签名验证
  → audit log + immutable log sink
  → incident response + postmortem
  → chaos drill + game day
  → 合规对照:SOC2 / ISO 27001 / NIST SSDF

2. 阶段周数分配

精简子主题不固定周数。按概念、正常路径、失败路径、综合实验四段推进,共 5~8 天。

3. 九阶段表

阶段核心知识实践产出可观察学会标准
1DORA Four Keys 定义、采集源、归一方法一份 DORA 仪表盘四指标在 Grafana 出现,按周更新
2change lead time 拆解:commit → deploycommit-to-deploy 时间分布P50/P95 lead time 趋势可见
3deployment frequency 按服务统计服务级频率表高频 / 低频服务分开看
4change failure rate + MTTRfailure / recovery 指标失败率 < 15%(elite),MTTR < 1h
5SBOM 生成(SPDX / CycloneDX)、merge 到 artifactimage + SBOM 同时发布cosign verifygrype sbom: 都跑通
6SLSA Build L3、provenance、cosign keyless / KMSkeyless 签名 + Rekor 入 logverify 拒签伪造制品
7audit log:k8s audit、Argo CD audit、GitHub auditimmutable log sink90 天可查询,retention ≥ 1y
8incident severity、SLO、error budget、postmortem 模板一份 postmortem5 个 section + 行动项 owner + due
9chaos drill + game day注入 pod kill / network partition团队按 runbook 在 10 分钟内恢复

4. 第一周任务

精简子主题省略逐日表。每天只引入一个变量;先跑正常路径,再做四类失败实验。Day 1 必须明确指标采集源(GitHub API / Argo CD / Prometheus)与保留周期。

5. 阶段通用验收

采用父主题 §5;本页额外要求保存仪表盘截图、SBOM 样例、cosign verify 输出、audit log 索引、postmortem 模板与清理命令。

6. 最终验收

完成 1 个 DORA 仪表盘(4 指标 + 服务维度)、1 份 cosign verify 流水线(拒签伪造)、1 份 postmortem、至少 4 类失败实验(签名失败、SBOM 缺失、audit log 断流、指标断采)、1 次 chaos drill,并用 10 分钟解释 DORA 与事故响应闭环。

7. 综合项目

把本页产出合入父主题首选项目:GitHub Actions → GHCR → k8s Argo Rollouts 金丝雀发布全链路。单独交付时,提供 DORA 仪表盘 JSON、cosign verify step、postmortem 模板、chaos drill runbook、notes/retrospective.md

本主题贡献

本主题把交付能力、合规证据与事故响应闭环:DORA Four Keys 度量交付能力、SBOM / SLSA 供应链安全、cosign 签名验证、OPA 策略门控、postmortem blameless 文化、chaos drill game day 演练,可对 SOC2 / ISO 27001 / NIST SSDF 出证据。

职责(3 项)

  1. 采集 DORA Four Keys(部署频率 / 变更前置时间 / 变更失败率 / MTTR),定义 incident severity 与 SLI/SLO/error budget,能解释 lead time 起点是 commit timestamp 而非 PR merge、为什么直接优化 raw metric 反而退化、为什么 elite 团队 change failure rate < 15% 且 MTTR < 1 小时;
  2. 生成 SBOM(Anchore Syft 输出 SPDX 或 CycloneDX)、SLSA Build L3 provenance(in-toto attestation)、cosign keyless 签名(OIDC + Fulcio + Rekor transparency log),在 deploy gate 用 cosign verify 拒签伪造制品,能解释 provenance 描述「怎么 build」、signature 证明「谁签」,以及 OPA / Conftest 策略卡「不接受未签名 image」;
  3. 写 postmortem blameless 模板(时间线 + 根因 + 行动项 + owner + due + follow-up),配 chaos drill game day(Chaos Mesh / LitmusChaos 注入 pod kill / network partition),能解释为什么 root cause 不写「谁」写「为什么」、为什么 audit log 必须 WORM + retention ≥ 1y。

交付物(4 项)

  1. DORA 仪表盘(Grafana + Prometheus,按服务维度展示 4 指标 P50/P95/趋势),含 weekly 自动 report 发 Slack;
  2. cosign verify-image + cosign verify-blob 流水线(keyless 模式,OIDC issuer = GitHub Actions / GitLab CI),含 transparency log 入 log 证据;
  3. postmortem 模板(5 section + 行动项 owner + due),含真实事故复盘(DORA 指标反向作用到 CI 改进);
  4. chaos drill runbook(Chaos Mesh pod-kill + network-partition 注入,团队按 runbook 10 分钟内恢复)+ chaos drill 演练记录。

指标(3 项)

  1. DORA 部署频率(按服务)≥ 1/day(elite 团队基线,DORA report 对照);
  2. MTTR ≤ 1 小时(elite 基线,recovery time - incident time 从 incident 系统自动算);
  3. cosign verify 阻断伪造制品率 = 100%(deploy gate 强制 verify,未签拒部署)。

8. 推荐开源资料

Prometheus(Apache-2.0)、Grafana(AGPL-3.0)作指标可视化;Sigstore cosign(Apache-2.0)、Rekor(Apache-2.0)、Fulcio(Apache-2.0)作签名;in-toto(Apache-2.0)作 provenance;Anchore Syft / Grype(Apache-2.0)作 SBOM 与扫描;Chaos Mesh(Apache-2.0)、Litmus(Apache-2.0)作 chaos;DORA 报告(dora.dev)作行业基线;SLSA(slsa.dev)作供应链规范。复制前核对当前 LICENSE。

9. 学习资料汇聚(v0.3 自包含)

9.1 背景与动机

可观测让你知道系统在做什么,合规让你能向监管与客户证明系统在做什么,DORA 让你知道团队交付能力在变好还是变差。三者闭环才能形成可持续的工程纪律。

DORA 由 Google Cloud 的 DevOps Research and Assessment 团队运营,Nicole Forsgren、Jez Humble、Gene Kim 在 Accelerate(2018)中系统化。四指标:部署频率(Deployment Frequency)、变更前置时间(Lead Time for Changes)、变更失败率(Change Failure Rate)、失败恢复时间(Mean Time to Restore / MTTR)。

供应链安全从 SolarWinds(2020)、Log4Shell(2021)、xz-utils(2024)等事件后变成硬要求。SLSA v1.0 把 build provenance 分级;cosign 提供无密钥签名;SBOM(SPDX / CycloneDX)让依赖可追溯。

Incident response 与 postmortem 文化来自 Google SRE Book(2016)、Charity Majors 的 Observability Engineering(2022)。今天的事故响应必须 postmortem-without-blame:时间线、根因、行动项、owner、due、follow-up。

9.2 概念地图

flowchart LR
  CI[CI runs] --> Metric1[deploy frequency]
  Git[Git commits] --> Metric2[lead time]
  Incident[incident system] --> Metric3[change failure rate]
  Incident --> Metric4[MTTR]
  Metric1 --> DORA[DORA dashboard]
  Metric2 --> DORA
  Metric3 --> DORA
  Metric4 --> DORA
  CI --> SBOM[SBOM generation]
  CI --> Sign[cosign sign]
  Sign --> Rekor[Rekor transparency log]
  Deploy[deploy gate] --> Verify[cosign verify]
  Verify --> Allow{allow?}
  Allow -- yes --> Cluster
  Allow -- no --> Block[block deploy]
  K8s[k8s audit] --> Sink[immutable log sink]
  ArgoCD[Argo CD audit] --> Sink
  GitHub[GitHub audit] --> Sink
  Sink --> SOC2[SOC2 / ISO / NIST evidence]
  Incident --> IR[incident response]
  IR --> PM[postmortem]
  PM -.行动项.-> CI
  PM -.反馈.-> DORA

核心关系:CI / Git / incident 是 DORA 的数据源;SBOM + sign + verify 是供应链门;audit log 是合规证据;postmortem 反过来改进 CI 与 DORA。

9.3 基础知识讲解

9.3.1 论文 / 规范

资料用法
DORA, Accelerate State of DevOps Report行业基线
Forsgren 等, Accelerate (2018)Four Keys 统计基础
Google, SRE BookSLI/SLO/error budget
SLSA v1.0供应链等级模型
NIST SP 800-218 SSDFsecure software development framework
SPDX 2.3SBOM 格式
CycloneDX 1.5SBOM 格式
in-toto attestationprovenance 字段
Sigstore specscosign / Rekor / Fulcio 协议

9.3.2 书

资料用法
Forsgren 等, AccelerateDORA 必读
Beyer 等, Site Reliability Engineering(Google)SLI/SLO/error budget
Majors, Fong-Jones, Miranda, Observability EngineeringOTel + SLI 实践
Kim 等, The Site Reliability Workbookpostmortem + error budget
Humble 等, The DevOps HandbookDORA 与 culture

9.3.3 博客 / 文档

资料用法
DORA Reports年度报告
SLSA供应链规范
Sigstore 文档cosign / Rekor / Fulcio
Anchore SyftSBOM 生成
Grafana 文档仪表盘
Prometheus 文档指标
OpenTelemetry 文档trace + metric + log
Chaos Meshchaos engineering
LitmusChaoschaos 对照
Google SRE Book 在线版SRE 入门

9.3.4 人物

人物关注点
Nicole ForsgrenDORA 统计
Gene KimPhoenix Project / DevOps Handbook
Charity MajorsObservability Engineering
Liz RiceContainer Security / eBPF
Dan LorencSigstore / SLSA
Kelsey Hightowerk8s / chaos
Brendan Greggperformance / observability

9.3.5 方法

方法动作
Four keys as top metric不要直接优化 raw metric,从业务结果倒推
Define SLI before collect先定义 SLI,再决定采集路径
Postmortem without blame时间线 + 根因 + 行动项 + owner + due
Immutable auditaudit log 写 WORM 存储,retention ≥ 1y
Reproducible build锁 base / dep / action SHA
SBOM at buildbuild 时生成,不补做
Verify at deploycosign verify 在 deploy gate
Chaos drill每季度一次 game day

9.4 经典问题与经典案例

#问题最简答案
1DORA lead time 算不准起点是 commit timestamp,终点是 deploy success
2change failure rate > 50%定义不统一,先把 incident severity 分级
3cosign keyless 配错OIDC issuer 必须与 Fulcio 一致;本地跑用 self-managed mode
4SBOM 缺 production depssyft 加 --source rpm / python 等 cataloger
5k8s audit log 太大配 log backend + 按 namespace 过滤
6postmortem 写成甩锅文档用 blameless 模板,root cause 不写「谁」写「为什么」
7chaos drill 把生产搞炸先 staging,再 game day,有 abort 流程
8SLSA L3 难达到关键:hardened build runner + provenance + verified
9SOC2 evidence 找不到提前一年设计 audit log + retention
10audit log 被覆盖WORM 存储 + retention lock
11DORA 数据没被看到每周自动出 report 发 Slack
12SLO 拍脑袋定用历史数据 + 错误预算反推

9.5 学习难点

概念难点

难点为什么会卡突破路径
SLI vs metricSLI 是用户体验,metric 是系统指标先选 SLI,再决定采集哪个 metric
Provenance vs signatureprovenance 描述怎么 build,signature 证明是谁签SLSA L3 要求两者都有
Audit vs logaudit 是合规证据,log 是调试路径、保留周期、完整性哈希都不同

思维难点

难点为什么会卡突破路径
DORA 优化陷阱直接优化 raw metric 反而退化优化业务结果,metric 是副产品
Postmortem 文化团队不愿暴露问题leader 先写自己的失误
Compliance theatre文档齐全但不解决问题每个 control 都有 owner 与证据链

工程难点

难点为什么会卡突破路径
Prometheus 存储长期存储压力大用 remote write + Thanos / Mimir
cosign verify 在 air-gappedRekor 不可达自建 Fulcio / Rekor,或用 KMS
SBOM 体积大cycloneDX 几十 MB只输出 production deps,SPDX 比 CycloneDX 小
chaos drill 协调多人多团队用 game day 流程,提前一周通知

9.6 技术标准与接口

9.6.1 Entity

名称发布组织角色状态 / 可访问性
DORA Four KeysGoogle Cloud / DORA交付能力度量公开指南
SLSA v1.0Linux Foundation供应链等级公开规范
Sigstore cosignCNCF / Sigstore签名Apache-2.0
Sigstore RekorCNCF / Sigstoretransparency logApache-2.0
Sigstore FulcioCNCF / Sigstore证书颁发Apache-2.0
SPDXLinux FoundationSBOM 格式公开规范
CycloneDXOWASPSBOM 格式公开规范
Anchore Syft / GrypeAnchoreSBOM / 扫描Apache-2.0
in-totoin-totoprovenanceApache-2.0
PrometheusCNCF指标Apache-2.0
GrafanaGrafana Labs可视化AGPL-3.0
OpenTelemetryCNCFtrace + metric + logApache-2.0
Chaos MeshCNCFchaosApache-2.0
LitmusChaosCNCFchaosApache-2.0
k8s audit logKubernetes SIG审计Apache-2.0

9.6.2 Scope

DORA 是度量框架;SLSA 是供应链等级;Sigstore 是签名工具链;SBOM 是依赖清单;audit log 是合规证据;postmortem 是事故闭环;chaos 是演练方法。它们之间用 SBOM 关联签名,用 audit log 关联合规,用 postmortem 关联 DORA 趋势。

9.6.3 Structure

DORA 四指标公式:deploy frequency = deploy count / period;lead time = deploy time - commit time;change failure rate = incident count / deploy count;MTTR = recovery time - incident time。cosign:sign / verify-blob / verify-image / verify-attestation。SBOM:syft packages / grype sbom:

9.6.4 Ecosystem

Prometheus + Grafana 是事实标准;Datadog / New Relic / Honeycomb 是商业替代;cosign 与 Rekor / Fulcio 配套使用;Anchore Syft / Grype 与 cosign 集成;Chaos Mesh / LitmusChaos 互为对照。

9.6.5 Depth Tiers

层级可观察能力
L0知道 DORA、SLSA、SBOM、cosign、postmortem 是什么
L1能读 DORA 仪表盘、SLSA L3 要求、SBOM、cosign verify 输出
L2能配 Prometheus / Grafana,跑 cosign sign / verify
L3能从 DORA 数据 / cosign verify / audit log / postmortem 解释交付能力与供应链完整性
L4能设计 custom DORA 报表、air-gapped Sigstore、跨组织 audit pipeline

本子主题目标是 L3

9.6.6 Source

10. 常见误区

11. 所有知识点分类(统一规则)

  1. 编程语言;2. 数据结构与算法;3. 计算机基础;4. 工程技术;5. Web 与后端;6. 前端与客户端;7. 数据与人工智能;8. 项目与职业能力;9. 安全与可靠性。

本计划归属:工程技术 主 + 安全与可靠性 辅。

直接依赖(1)

查看知识图谱