2. 可靠性评审基础
可靠性评审是系统可靠性保障体系中的第一道正式质量门禁。它通过结构化的同行审查,在需求、设计、实现、测试等关键阶段识别可靠性风险,确保系统在交付前满足既定的可靠性目标。对于混沌工程而言,可靠性评审输出的基线指标与风险清单,直接决定了后续混沌实验的注入目标与核验标准。
2.1 可靠性评审的定义
可靠性评审(Reliability Review)是一种以预防性为目的的正式技术评审活动。它由经过授权的评审团队,依据预先定义的可靠性准则与检查清单,对系统或组件的可靠性相关工件(如可靠性模型、故障树、FMEA 表、冗余设计文档、恢复策略等)进行系统性检查。
核心目标:在缺陷放大之前发现并消除可靠性隐患,为混沌工程实验提供可量化的基线核验指标。
可靠性评审与常规代码走查或功能评审的关键区别在于:
| 维度 | 可靠性评审 | 常规功能评审 |
|---|---|---|
| 关注焦点 | 故障模式、恢复时间、冗余有效性、降级策略 | 功能正确性、接口契约、业务逻辑 |
| 输入工件 | FMEA、故障树、可靠性框图、SLA/SLO 定义 | 需求文档、设计文档、测试用例 |
| 输出指标 | MTBF、MTTR、可用度、故障注入基线 | 功能覆盖率、通过率、缺陷密度 |
| 与混沌工程关系 | 直接定义实验假设与核验指标 | 间接支撑,不直接驱动实验设计 |
2.2 评审流程
标准可靠性评审遵循五阶段流程,每个阶段都有明确的入口与出口准则。该流程与混沌工程基线核验指标的提取过程紧密耦合。
- 计划阶段:评审组长确定评审范围、选择评审员、分发评审包(含可靠性模型、FMEA 表、SLO 定义等)。
- 预备阶段:评审员独立审查工件,填写可靠性缺陷预检表,标注潜在的故障模式遗漏或冗余设计缺陷。
- 评审会议:作者逐项讲解设计,评审员提出发现项。会议重点确认:故障注入点是否覆盖、恢复时间是否满足 SLO、降级路径是否可观测。
- 返工与跟踪:作者根据评审决议修复缺陷,评审组长验证关闭。此阶段输出的核验指标修正清单将直接输入混沌实验设计。
- 基线冻结:评审通过后,可靠性基线正式冻结,作为后续混沌工程实验的对照基准。
实践建议:在评审会议阶段,建议引入至少 1 名混沌工程工程师,确保评审输出的故障模式清单可以直接映射为混沌实验的注入场景。
2.3 评审角色与职责
可靠性评审要求角色分离,避免作者自审。每个角色在混沌工程基线核验的上下文中承担特定职责:
| 角色 | 职责 | 混沌工程关联职责 |
|---|---|---|
| 评审组长 | 制定评审计划、控制会议节奏、裁决争议、确保评审准则被遵守 | 确认核验指标是否覆盖所有已识别的故障模式 |
| 作者 | 准备评审工件、讲解设计、记录发现项、执行返工 | 提供可靠性模型与故障注入点的技术细节 |
| 评审员 | 独立审查工件、识别缺陷与风险、提出改进建议 | 从混沌实验角度评估故障注入的可操作性与可观测性 |
| 记录员 | 记录发现项、决议、待办事项,形成评审报告 | 确保核验指标修正项被准确追踪 |
| 观察员 | 旁听学习,不参与表决(可选角色) | 混沌工程新人可通过观察积累故障模式知识 |
常见反模式:让作者同时担任评审组长,或让直接上级担任评审员。这会破坏评审的客观性,导致故障模式遗漏,进而使后续混沌实验的基线核验指标失真。
2.4 评审输出物
可靠性评审的输出物是混沌工程基线核验的核心数据来源。每个输出物都应具备可追溯性与可执行性。
- 评审报告:包含评审范围、参与人员、评审结论(通过/有条件通过/不通过)、发现项统计。
- 发现项清单:每个发现项需标注严重等级(致命/严重/一般/建议)、所属故障模式、建议修复方案、责任人、关闭日期。
- 可靠性基线核验指标表:这是混沌工程实验的直接输入,包含:
- 故障注入点标识(如:服务 A 的数据库连接池耗尽)
- 预期恢复时间(MTTR 目标)
- 预期故障间隔(MTBF 下限)
- 降级后的最小可用容量
- 可观测性检查点(日志、指标、告警)
- 修订后的可靠性模型:根据评审意见更新的故障树、FMEA 表或可靠性框图。
- 评审度量数据:评审准备时间、会议时长、发现项密度(发现项数/页数),用于持续改进评审过程。
关键实践:建议将核验指标表设计为机器可读格式(如 YAML 或 JSON),以便直接导入混沌工程平台,实现从评审到实验的自动化基线传递。