阿里巴巴|被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

阿里巴巴|被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

为什么阿里巴巴、工商银行、中国移动、华泰证券……都在关注混沌工程?
自从 Netflix 开源 Chaos Monkey , 越来越多的国内公司看到了混沌工程在建立系统在生产环境中信心的能力 , 开始尝试通过混沌工程提高可靠性 。 阿里巴巴作为国内较早对外输出混沌工程能力的企业 , 早在 2012 年就开始在电商业务上 , 尝试通过故障注入技术去解决微服务的依赖问题 。
应用层追求更全面、更便利、更快捷的服务 , 倒逼技术层面系统越来越复杂 , 可供观测和持续维护的难度不断加大 , 错综相连的软件服务节点越发依赖技术手段和能力 。 随着分布式和云原生技术成为主流技术趋势 , 混沌工程也随之备受关注 。 由于混沌工程自身特性 , 难以量化度量几乎成为业内共识 , 但对于企业混沌工程建设的成熟度 , 也需要探讨衡量标准 。
如今 , 随着中国信通院成立了国内首个混沌工程实验室 , 混沌工程在国内的发展走到了新阶段 。 为此 , InfoQ 和阿里云资深技术专家中亭 , 聊了聊混沌工程在阿里巴巴的技术实践 。
9 年 , 混沌工程在阿里巴巴从探索到开源 不同企业关注和引入混沌工程的时间不同 , 但开局类似 。 阿里巴巴最开始引入混沌工程 , 也是为了解决实际问题 。 据中亭介绍 , 阿里巴巴探索混沌工程的时间线和 Netflix 差不多 , 只不过 Netflix 从基础资源开始实践 , 阿里巴巴则是从应用层开始 。 阿里巴巴最开始是为了解决技术架构变化和组织变化的问题 , 才去演进一些新的实践 。
【阿里巴巴|被你质疑价值的混沌工程,阿里巴巴已落地实践了9年】
混沌工程一步步走进阿里巴巴 , 可以分为五个阶段:
第一个阶段在 2012 年 , 阿里巴巴电商业务遇到了微服务依赖不合理的问题 , 导致整个系统架构出问题 , 花了很长的时间做依赖的自动识别及治理 , 最后通过打破业务和稳定性之间的边界、引入故障注入的技术 , 解决了微服务的问题 。
第二个阶段 , 阿里巴巴开始尝试做线上容灾、异地多活等容灾技术 。 通过比较大的断网等机房切换演练等方式 , 解决问题
第三个阶段在中亭眼里是里程碑的阶段 。 在 2015 年备战双十一之后 , 阿里巴巴技术团队发现整个备战的方法可以非常体系化:当系统复杂到一定阶段 , 纸面梳理已经难以解决问题 , 是否可以通过一种逆向的方式暴露问题?2015-2016 年 , 阿里巴巴开始去做线上故障演练 , 也是今天提到的混沌工程的前期阶段 。 中亭提到 , 在这个阶段的核心是希望借助混沌工程解决分布式技术 , 不只是微服务 , 对整个线上稳定性的问题做全方位的度量 , 包括工具系统和监控预案等 。
第四个阶段开始于 2018年 , 阿里巴巴开始做两件事情:阿里云技术团队开始对云底座进行混沌工程探索 , 提升基础设施的韧性;伴随着阿里巴巴技术上云 , 开始把内部的高可用保障技术 , 通过云的方式对外输出 , 解决客户应用高可用的问题 。 可以看到 , 随着云服务云能力的对外输出 , 混沌工程能力开始服务外部客户 。
等到第五个阶段 , 也就是在 2019 年 -2021 年 , 阿里巴巴在混沌工程上的探索开始分为两条线 , 一条是商业服务和开源一体化 , 清晰化技术演进路线、加速技术演进速度 , 体现在现在就是面向开发者的一站式混沌工程平台;另一条是阿里巴巴集团内部把混沌工程重视程度提到一个空前的规模 。
据中亭介绍 , 2020 年阿里巴巴做了生产突袭项目 , 把所有可能影响高可用的重大故障因子 , 全部都聚合在一个平台 , 公司的管理层会在一个不定时的时刻随机的去发起这种突袭 。 这次生产突袭的核心要求是 , 被突袭业务具备在1分钟发现 , 5分钟定位 , 10 分钟恢复 。