扫码阅读
手机扫码阅读
大厂在混沌工程领域的实践
104 2024-02-23
为什么需要混沌工程?
业务迭代速度越来越快(业务要求技术更快的交付); 应用系统架构愈发复杂(技术支撑业务的必然发展趋势); 跨团队协作成本越来越高(大规模协作的信息失真和延时);
混沌工程面临哪些挑战?
投入成本高
生产集群有很多的服务实例,模拟故障软硬件成本高; 系统架构太复杂,涉及多个团队和人员,人力投入成本高; 服务之间各种依赖,实施故障注入需要内外部多方协作配合; 混沌工程需要长期的人力和时间投入,影响正常的业务迭代;
实施风险高
发生重大生产故障怎么办? 注入的故障影响范围和程度是否可控? 万一生产系统真的挂了影响到用户使用怎么办? 生产数据很关键,注入故障产生的脏数据怎么处理?
收益不明显
系统上线这么久,都很稳定,有必要实施混沌工程吗? 除了注入故障观察系统表现,还有其他明显的有价值的产出吗?
企业如何落地混沌工程?
建立稳定状态的假设(制定合适的目标); 多样化现实世界事件(选择合适的场景); 在生产环境运行实验(在真实环境运行实验); 持续自动化运行实验(避免人为误操作风险); 最小化控制爆炸半径(控制实验的影响范围和程度);
试验探索期
通过简单的故障注入了解混沌工程的运行机制; 小范围的试点,判断混沌工程的可行性,让相关成员熟悉流程; 可以快速验证故障恢复手段的有效性,快速分析出实施故障注入的风险; 实施时屏蔽业务系统部署细节,抽象故障模型,降低故障注入难度和资源成本;
熟练实验期
实现故障演练创建和执行的自动化; 可以自动收集演练的数据,半自动的识别风险和结果分析; 有高效的场景管理手段,丰富的故障场景类型和成熟故障熔断措施; 可以从业务链路视角开展故障注入,发现并提升感知和修复故障的能力(监控/告警/响应);
常态演练期
覆盖范围基本覆盖大部分业务,故障演练成为研发体系的一部分; 演练自动化,形成完备的生产稳定性保障预案,沉淀了丰富的案例库; 沉淀了适合自身的最佳实践,系统稳定性保障体系成熟,可以联动业务部门常态化演练; 混沌工程团队和相关人员之类的协调配合熟练高效,有明显的正向产出,进一步支撑业务运营;
混沌工程的建设演进之路
实施人员对系统要有深入的了解; 混沌工程要面向开发者,提高感知故障、排除故障的能力; 大规模推广时候需要结合业务团队特性来量身定做方案,主动推动; 控制演练范围-注意实施时间-从历史故障入手再做一些探索性的验证; 低成本故障注入才能帮助业务快速验证故障下的系统表现和恢复手段; 不同系统处于不同阶段,需要以不同的混沌工程实验帮助提升稳定性建设;
原文链接:
http://mp.weixin.qq.com/s?__biz=Mzg2NDAwMjM1NQ==&mid=2247486947&idx=1&sn=0f13a1f875ae83ac2cee5b2f9995202e&chksm=ce7145bff906cca921913f3e74c43e9d95fd96d55cf83f918571f7f3417084bc8c4ad520ba92#rd
老张的求知思考世界的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线