故障演练是一款遵循混沌工程实验原理并融合了阿里巴巴内部实践的产品,提供丰富故障场景实现,能够帮助分布式系统提升容错性和可恢复性。

流程

故障演练建立了一套标准的演练流程,包含准备阶段、执行阶段、检查阶段和恢复阶段。通过四阶段的流程,覆盖用户从计划到还原的完整演练过程,并通过可视化的方式清晰的呈现给用户。

适用场景

故障演练可适用于以下典型场景:

  • 衡量微服务的容错能力

    通过模拟调用延迟、服务不可用、机器资源满载等,查看发生故障的节点或实例是否被自动隔离、下线,流量调度是否正确,预案是否有效,同时观察系统整体的 QPS 或 RT 是否受影响。在此基础上可以缓慢增加故障节点范围,验证上游服务限流降级、熔断等是否有效。最终故障节点增加到请求服务超时,估算系统容错红线,衡量系统容错能力。

  • 验证容器编排配置是否合理

    通过模拟杀服务 Pod、杀节点、增大 Pod 资源负载,观察系统服务可用性,验证副本配置、资源限制配置以及 Pod 下部署的容器是否合理。

  • 测试 PaaS 层是否健壮

    通过模拟上层资源负载,验证调度系统的有效性;模拟依赖的分布式存储不可用,验证系统的容错能力;模拟调度节点不可用,测试调度任务是否自动迁移到可用节点;模拟主备节点故障,测试主备切换是否正常。

  • 验证监控告警的时效性

    通过对系统注入故障,验证监控指标是否准确,监控维度是否完善,告警阈值是否合理,告警是否快速,告警接收人是否正确,通知渠道是否可用等,提升监控告警的准确和时效性。

  • 定位与解决问题的应急能力

    通过故障突袭,随机对系统注入故障,考察相关人员对问题的应急能力,以及问题上报、处理流程是否合理,达到以战养战,锻炼人定位与解决问题的能力。

故障演练与 AHAS 服务体系

故障演练作为 AHAS 的一部分,与 AHAS 其他功能组成了一套完善的高可用保障服务,可以帮助用户实现包括架构、业务、人员的全面高可用提升。故障演练在其中承担着问题发现、问题验证、高可用经验沉淀的作用。