生产故障应对:从混沌工程到事件管理
1. 混沌工程实验自动化
要从混沌工程实验中获得显著收益,就需要持续且频繁地开展实验,而实现实验自动化是达成这一目标的必要条件。例如,Netflix 推出的 Chaos Monkey 最初并不受工程师欢迎,因为它每天会故意在生产环境中制造错误。但它不断暴露出实例可能消失的问题,促使工程师寻找解决方案,提升系统的弹性。
2. 降低实验影响
由于实验在生产环境中进行,可能会影响正在使用该环境的客户。因此,要尽量降低实验带来的负面影响。以 Chaos Monkey 为例,它每天仅在工作时间运行,这样若发现对生产有不良影响,大部分工程师都在岗,便于及时处理,而不是在凌晨 3 点等人员较少的时候。
3. 混沌工程实验流程
在生产环境中进行实验需要规划和开发流程,目标是找出系统弹性方面的薄弱环节,确保服务级别目标(SLO)得以实现,而不是破坏系统。以下是具体的流程步骤:
3.1 确保环境就绪
混沌工程旨在发现系统弹性的弱点,而非使环境瘫痪。如果现有环境没有容错能力,进行实验就没有意义。要确保服务有备用容量,且这些备用容量易于上线。当确定并分配好备用容量和资源后,要有计划移除故障资源,并自动用备用容量替换。
3.2 实验准备
实验通常始于对某个关键组件或服务可能出现故障并影响系统弹性的担忧,以此为基础,将其扩展到开发、测试和生产环境中进行实验。准备工作需要完成以下清单:
- 描述即将发生故障的服务器或服务,包括故障模式以及如何模拟故障。
- 确定开发和生产环境中的服务器或服务,并确认在开发环境中模拟故障的
超级会员免费看
订阅专栏 解锁全文
68

被折叠的 条评论
为什么被折叠?



