2. 可靠性评审基础

可靠性评审是系统可靠性保障体系中的第一道正式质量门禁。它通过结构化的同行审查,在需求、设计、实现、测试等关键阶段识别可靠性风险,确保系统在交付前满足既定的可靠性目标。对于混沌工程而言,可靠性评审输出的基线指标与风险清单,直接决定了后续混沌实验的注入目标与核验标准。

2.1 可靠性评审的定义

可靠性评审(Reliability Review)是一种以预防性为目的的正式技术评审活动。它由经过授权的评审团队,依据预先定义的可靠性准则与检查清单,对系统或组件的可靠性相关工件(如可靠性模型、故障树、FMEA 表、冗余设计文档、恢复策略等)进行系统性检查。

核心目标:在缺陷放大之前发现并消除可靠性隐患,为混沌工程实验提供可量化的基线核验指标。

可靠性评审与常规代码走查或功能评审的关键区别在于:

维度 可靠性评审 常规功能评审
关注焦点 故障模式、恢复时间、冗余有效性、降级策略 功能正确性、接口契约、业务逻辑
输入工件 FMEA、故障树、可靠性框图、SLA/SLO 定义 需求文档、设计文档、测试用例
输出指标 MTBF、MTTR、可用度、故障注入基线 功能覆盖率、通过率、缺陷密度
与混沌工程关系 直接定义实验假设与核验指标 间接支撑,不直接驱动实验设计

2.2 评审流程

标准可靠性评审遵循五阶段流程,每个阶段都有明确的入口与出口准则。该流程与混沌工程基线核验指标的提取过程紧密耦合。

  1. 计划阶段:评审组长确定评审范围、选择评审员、分发评审包(含可靠性模型、FMEA 表、SLO 定义等)。
  2. 预备阶段:评审员独立审查工件,填写可靠性缺陷预检表,标注潜在的故障模式遗漏或冗余设计缺陷。
  3. 评审会议:作者逐项讲解设计,评审员提出发现项。会议重点确认:故障注入点是否覆盖、恢复时间是否满足 SLO、降级路径是否可观测。
  4. 返工与跟踪:作者根据评审决议修复缺陷,评审组长验证关闭。此阶段输出的核验指标修正清单将直接输入混沌实验设计。
  5. 基线冻结:评审通过后,可靠性基线正式冻结,作为后续混沌工程实验的对照基准。
实践建议:在评审会议阶段,建议引入至少 1 名混沌工程工程师,确保评审输出的故障模式清单可以直接映射为混沌实验的注入场景。
可靠性评审五阶段流程 ① 计划 范围·评审员·包 ② 预备 独立审查·预检表 ③ 评审会议 发现项·核验确认 ④ 返工跟踪 修复·验证关闭 ⑤ 基线冻结 输出核验指标修正清单 → 混沌实验输入 虚线表示基线变更时的迭代回路

2.3 评审角色与职责

可靠性评审要求角色分离,避免作者自审。每个角色在混沌工程基线核验的上下文中承担特定职责:

角色 职责 混沌工程关联职责
评审组长 制定评审计划、控制会议节奏、裁决争议、确保评审准则被遵守 确认核验指标是否覆盖所有已识别的故障模式
作者 准备评审工件、讲解设计、记录发现项、执行返工 提供可靠性模型与故障注入点的技术细节
评审员 独立审查工件、识别缺陷与风险、提出改进建议 从混沌实验角度评估故障注入的可操作性与可观测性
记录员 记录发现项、决议、待办事项,形成评审报告 确保核验指标修正项被准确追踪
观察员 旁听学习,不参与表决(可选角色) 混沌工程新人可通过观察积累故障模式知识
常见反模式:让作者同时担任评审组长,或让直接上级担任评审员。这会破坏评审的客观性,导致故障模式遗漏,进而使后续混沌实验的基线核验指标失真。

2.4 评审输出物

可靠性评审的输出物是混沌工程基线核验的核心数据来源。每个输出物都应具备可追溯性与可执行性。

  • 评审报告:包含评审范围、参与人员、评审结论(通过/有条件通过/不通过)、发现项统计。
  • 发现项清单:每个发现项需标注严重等级(致命/严重/一般/建议)、所属故障模式、建议修复方案、责任人、关闭日期。
  • 可靠性基线核验指标表:这是混沌工程实验的直接输入,包含:
    • 故障注入点标识(如:服务 A 的数据库连接池耗尽)
    • 预期恢复时间(MTTR 目标)
    • 预期故障间隔(MTBF 下限)
    • 降级后的最小可用容量
    • 可观测性检查点(日志、指标、告警)
  • 修订后的可靠性模型:根据评审意见更新的故障树、FMEA 表或可靠性框图。
  • 评审度量数据:评审准备时间、会议时长、发现项密度(发现项数/页数),用于持续改进评审过程。
评审输出物与混沌工程实验映射 可靠性评审输出物 • 评审报告 • 发现项清单 • 核验指标表 • 修订可靠性模型 • 评审度量数据 混沌工程实验 • 故障注入场景定义 • 稳态指标设定 • 实验假设声明 • 可观测性验证 • 结果与基线比对 映射关系 核验指标表 → 稳态指标 发现项清单 → 实验假设 可靠性模型 → 注入点选择 评审度量 → 实验覆盖率评估
关键实践:建议将核验指标表设计为机器可读格式(如 YAML 或 JSON),以便直接导入混沌工程平台,实现从评审到实验的自动化基线传递。