混沌工程与AI等新技术的结合应用

添加书签

近日,科技慢半拍播客栏目联合AIGC开放社区,特邀了混沌工程专家郑阳先生,共同探讨混沌工程的概念、历史、方法论、实践案例等多个维度深入解析,并结合自身在行业内的丰富经验,剖析混沌工程的应用价值、实施过程中的注意事项等实操层面的问题,最后分析了混沌工程结合AI和数字孪生技术后的应用前景。

以下是对话的主要内容:

谈谈混沌工程的概念和发展历程:

混沌工程的目的是通过主动注入故障来测试系统的容错能力,建立对突发事件的信心,类似于人体免疫打疫苗的效果。中国早期企业可能在内部进行类似暴力测试,但没有形成体系,而混沌工程强调体系化手段。混沌工程起源于Netflix将业务从IDC迁移至AWS云平台时,通过破坏实验来提升系统稳定性。后来开源了该项目,并于2015年正式提出混沌工程方法论。混沌工程应用不仅限于云计算,适用于架构转型场景。它强调验证系统的稳定性,而非简单的测试手段,将来随着 IT 架构不断变革,混沌工程会被广泛应用。

详细介绍一下混沌工程的主要框架内容:

混沌工程主要包括五大原则。

第一个原则:最小化爆炸半径。“爆炸半径”指的是在系统注入故障后,故障影响范围的大小。这个原则强调影响范围应该最小化并且可控。实现最小化爆炸半径的手段包括人为定义注入故障的范围,如只影响某个模块;使用流量挡板进行流量控制,如返回mock数据或请求,限制故障扩散;将混沌实验环境与正式环境隔离,如只使用部分实例或影子库进行实验。然后通过计算和模拟估计可能的影响范围,逐步扩大实验范围。总体实现了从对系统部分探测到整体的渐进式实验,以控制故障带来的影响范围。

第二个原则:稳态假说。“稳态假说”指在系统被注入故障后处于一种稳定状态的假设,它强调提出一个稳定状态假设来指导混沌实验。与传统运维指标不同的是,混沌工程关注业务稳定状态。制定稳态指标可能需要云专家和运维各层次团队合作。首先根据业务划分系统,定义适当的稳态指标体系,需要考虑系统之间的关联关系,给出总体稳定状态假设。一般需要1个月时间对现有系统进行全面梳理及指标建设。最终,导出的稳态指标体系和假设将作为混沌实验的参考依据。总体来说,“稳态假说”强调从业务出发给出实验指导方针,其制定需要跨部门合作才能给出科学结果。

第三个原则:选择真实事件。“选择真实事件”指在混沌实验中优先选择真实已发生或高风险可能发生的事件场景。不可能测试所有可能事件,需优先考虑影响大的真实事件。不同阶段企业真实事件数目不同,分布式迁移的期间会多一些,而生产稳定期会相对减少。其中一些涉及到核心业务或架构的事件,如信创改造,会成为必选的场景。选择真实事件的方法包括调研历史事件发生频率,可以按照优先级别分类。选择高频事件和影响大的场景作为必测场景,以涵盖主流生产事件为原则。

第四个原则:贴近生产环境。混沌工程的生产环境原则与传统测试环境的区别。混沌工程强调在生产或接近生产环境实验,以获取最真实结果,但风险也相对较大。传统选择测试环境远离生产以降低风险。企业考虑平衡结果真实性与风险成本。在测试环境结果中,应用bug和不涉及资源的过程风险识别仍对生产有指导意义。主要考察那些涉及资源配置的测试结果,这些结果在生产环境才能完全显现。测试环境能解决75%的问题,企业需要权衡是否能承担,剩下的25%可能仅在生产才能发现的隐患风险成本。测试环境并不等同于0风险,但能建立一定信心支撑逐步接近生产环境实验。

第五个原则:自动运行实验。通常推荐常态化自动运行的实验,并与DevOps流水线相结合,在每次上线都进行验证。自动运行可以实现故障注入自动化,如CPU满载、磁盘故障等基础设施层面故障。根据客户需求选择,故障注入有真实模式和模拟模式,。开发者一般知晓实验,作为流水线测试环节发起;运维有主动与被动两种参与模式。运维人员主动使用混沌平台探索风险,也可以被动参与“奇袭演练”,并评估应急响应能力。

对比一下混沌工程在国内外的发展情况:

国内现阶段混沌工程应用还较初级,数量上较少。国外混沌工程起步早几年,应用场景更广泛,涉及各行各业IT系统。国外企业和组织对新思想更开放,如谷歌、甲骨文都推进混沌工程理论。谷歌提出的SRE理念也包含了混沌工程,Gartner也在2023年提出数字化免疫系统,其中也包含了混沌工程。随着国外大企业和组织不断发声,推广混沌工程理念,逐步拉动了应用范围。

谈谈混沌工程在企业文化转型上的难点:

推动混沌工程需面临企业内外的文化环境影响,制度和文化根本改变难度大。首先需建立明确规定,使混沌实验成为正式流程,免除个人责任追究的风险。个人层面需要转变心态,主动面对可能问题而非消极应对。其中金融企业需面对监管要求,监管部门支持和解绑将助企业内部文化建设。整体来看,需要各方共同参与,监管主动给企业解绑,企业可以主导内部转型,共同推动文化转变。

如何衡量混沌工程对企业带来的一些收益:

参考Netflix的计算方法,虽然简单直接,但难以准确评估未发生故障的损失。业内常用FMEA方法,给每个故障场景定级和故障频率来计算。通过混沌实验评估各场景恢复时间长短乘以企业单位停机时间损失计算总损失,每年通过混沌减少的损失总和即为混沌带来的经济收益。与直接计算方法相比,FMEA方法更科学地评估各类潜在风险和收益。

谈谈AI及数字孪生技术与混沌工程的结合:

AI技术在混沌工程自动化场景及结果分析等方面有助推进,可以自动场景编排避免人工主观因素,更系统有针对性地测试薄弱环节。AI助力更高效准确判断混沌实验结果,人工判断难兼顾各指标综合情况。数字孪生技术结合可以实现虚实融合的混沌实验,充分考虑IT外部实体环境影响。数字孪生技术为混沌扩展提供基础,实现对整个物理机房场景的虚拟化故障注入。

希望收听完整音频对话内容的朋友,请移步【科技慢半拍】播客节目:

END