1、混沌工程实践指南混沌工程实践指南 (2021 年)年)中国信息通信研究院云计算与大数据研究所中国信息通信研究院云计算与大数据研究所 20212021 年年 1212 月月pOrPnPpRqMuMoMoNyRzRuNbRaO9PpNpPmOrQiNoPsQiNpNvN6MpPxOuOrNwOxNmOoN 前前 言言 随着各行业数字化转型的快速推进,软件系统呈现出规模愈发庞大、结构更加复杂,风险点数量增多、不可预见性增强等特征。现有软件稳定性保障措施侧重于防范可预见的风险,难以适应数字化深入发展的新要求。 为探索新发展阶段下软件系统的稳定性保障手段,国外公司率先提出混沌工程理念,按照主动攻击、提前
2、预防的思想,消除复杂系统中难以预见的风险隐患,迅速成为业内关注的焦点。我国产业界也迅速跟进混沌工程技术发展,相关工具和平台层出不穷,开源社区加快完善。 然而,目前混沌工程总体上仍处于发展初期,理论体系尚未成熟,技术工具良莠不齐,落地实践仍集中于少数头部企业。在此背景下,中国信息通信研究院云计算与大数据研究所牵头,联合业内头部企业编写本指南,梳理混沌工程的相关背景、技术要求、实践配套措施和未来的发展趋势,希望借此推动混沌工程落地实践,帮助各行业完善软件系统稳定性保障体系。由于时间仓促,水平所限,本指南仍有不足之处, 欢迎联系 交流探讨。 目目 录录 一、混沌工程概述 . 1 (一)混沌工程旨在主
3、动防范软件系统的稳定性风险 . 1 (二)混沌工程的发展历程:国外先行、国内繁荣. 5 (三)混沌工程实践是系统性工作,亟需建立方法论 . 7 二、 一个核心工作:混沌工程实验 . 9 (一)混沌工程实验设计. 9 (二)混沌工程实验实施. 14 (三)混沌工程实验结果分析 . 16 三、 五个配套措施:战略、人员、文化、风险防范、评估体系 . 19 (一)混沌工程实践的战略规划 . 19 (二)混沌工程实践的人员培养 . 21 (三)混沌工程文化的形成 . 22 (四)混沌工程实践的潜在风险及应对措施 . 23 (五)混沌工程实践的评估体系建立 . 25 四、 两个延伸保障:加强架构和制度保
4、障 . 28 (一)提升系统架构的韧性 . 28 (二)加强研发运维过程中的制度保障 . 29 五、 混沌工程发展趋势 . 30 (一)产业环境和政策导向加速混沌工程实践落地. 31 (二)智能技术推动混沌工程实践更加自动化 . 31 (三)数字技术的推广应用将带动混沌工程推广落地 . 32 附录 . 35 (一)业内混沌工程工具一览 . 35 (二)混沌工程平台简要介绍 . 36 (三)混沌工程实践案例. 37 图图 目目 录录 图 1 系统稳定性危机与对策发展时间线 . 2 图 2 企业服务中断每小时造成的损失统计 . 4 图 3 混沌工程发展时间线 . 6 图 4 混沌工程实践体系以及其
5、和传统研发运维的联系 . 8 图 5 参与中国信通院产品评测的分布式数据库在不同扰动下的相对性能 . 18 图 6 混沌工程平台架构 . 37 图 7 腾讯区块链团队混沌工程实施框架 . 38 图 8 华为云故障模式库内容概览 . 40 表表 目目 录录 表 1 2020 年 9 月至 2021 年 9 月影响严重的系统失效事故汇总 . 3 表 2 混沌工程和现阶段稳定性保障措施的对比 . 4 表 3 混沌工程对系统研发运维团队不同人员的意义 . 5 表 4 混沌工程实验系统指标类别 . 11 表 5 混沌工程实验扰动类别 . 11 表 6 混沌工程接纳程度评估参考框架 . 25 表 7 混沌
6、工程能力评估参考框架 . 26 表 8 混沌工程价值收益评估参考框架 . 27 表 9 基于混沌工程实验的系统架构优化方向 . 28 表 10 混沌工程工具总结 . 35 混沌工程实践指南(2021 年) 1 一、混沌工程概述 混沌工程(Chaos Engineering)是通过主动向系统中引入软件或硬件的异常状态(扰动),制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段。 应用混沌工程可以对系统抵抗扰动并保持正常运作的能力 (稳定性) 进行校验和评估,提前识别未知隐患并进行修复, 进而保障系统更好地抵御生产环境中的失控条件,提升整体稳定性。本章梳理了系统稳定性