1. 混沌工程与平台工程概述
1.1 混沌工程定义
混沌工程(Chaos Engineering)是一门在分布式系统上进行实验的学科,旨在通过主动注入故障来验证系统的韧性(Resilience)与容错能力。其核心并非“制造混乱”,而是通过受控的实验,在系统进入生产环境前或运行过程中,发现潜在的薄弱环节。
核心原则: 混沌工程遵循“实验-观测-改进”的闭环,强调以科学方法验证系统假设,而非随机破坏。
| 维度 | 说明 |
|---|---|
| 实验对象 | 分布式系统、微服务、基础设施、网络链路 |
| 注入手段 | CPU 满载、网络延迟、节点宕机、磁盘故障、依赖超时 |
| 观测指标 | 请求成功率、P99 延迟、错误率、系统吞吐量 |
| 输出成果 | 系统韧性报告、故障模式库、自动化恢复策略 |
1.2 平台工程定义
平台工程(Platform Engineering)专注于设计和构建一套自服务的内部开发者平台(IDP),通过抽象底层基础设施的复杂性,为开发团队提供一致、安全、高效的交付路径。其目标是提升开发者体验(DX),加速软件交付,同时确保合规与治理。
- 抽象层: 屏蔽 Kubernetes、网络、存储等底层细节。
- 黄金路径: 提供标准化的 CI/CD、环境管理、可观测性接入。
- 治理与安全: 内置策略引擎、访问控制、成本管理。
- 自服务: 开发者通过 API 或 UI 自助申请资源、部署服务。
1.3 两者关系:平台工程与混沌工程的协同
平台工程提供了“稳定的跑道”,而混沌工程则是“跑道上的压力测试”。两者并非孤立存在,而是形成一种“构建-验证-加固”的共生关系。
1.4 基线核验的重要性
基线核验(Baseline Verification)是连接混沌实验与平台工程治理的关键环节。它定义了系统在“正常状态”下的行为标准,作为混沌实验的参照系。没有基线,混沌实验的结果将失去对比依据,无法判断系统是否“变差”或“变好”。
基线核验的核心价值: 将混沌实验从“定性分析”升级为“定量度量”,为平台工程的 SLO 治理提供数据支撑。
| 场景 | 无基线核验 | 有基线核验 |
|---|---|---|
| 故障注入后 | 凭经验判断系统是否异常 | 对比基线指标,精确量化偏差 |
| 平台版本升级 | 需要全量回归测试 | 仅需验证基线指标是否退化 |
| 告警阈值设置 | 依赖运维人员经验 | 基于基线数据自动计算动态阈值 |
| 混沌实验准入 | 无明确停止条件 | 基线偏差超过阈值时自动熔断实验 |
1.5 基线核验在接口调用规范中的角色
在平台工程体系下,所有服务间的通信都通过标准化的 API 接口进行。基线核验需要下沉到接口层面,形成可编程、可自动化的校验规则。这要求接口调用规范必须包含:
- 响应时间基线: 接口在无故障时的 P50/P95/P99 延迟分布。
- 错误率基线: 接口在正常负载下的 HTTP 4xx/5xx 比例。
- 吞吐量基线: 接口在稳态下的最大支撑 QPS。
- 依赖拓扑基线: 接口调用链路的完整性与依赖关系快照。
常见误区: 基线核验不是一次性工作。随着平台版本迭代、业务流量模型变化,基线数据必须定期更新。建议将基线采集纳入平台的 CI/CD 流水线,每次发布后自动触发基线重校验。