混沌工程

  • 定义:混沌工程是传统测试的补充 。测试类型包含:有功能性测试,有性能测试,还有很大一部分是各种混沌测试,模仿各种事实中可能呈现的状况。故障演练、容灾演练在混沌工程领域。
  • 业务背景:分布式系统天生有着各种相互依赖,能够出错的中央不可胜数
  • 需要:

    • 为了更不便地验证零碎对于各种故障的容忍能力,打造更具弹性(弹性:零碎应答故障、从故障中复原的能力)零碎
    • 在一直的同时,建立运行高可用分布式系统的信念
    • 对本身稳定性有个更全面的理解
    • 混沌工程让你有机会把问题提前/通过一直失败防止失败。
  • 操作:

    • 用于向基础设施以及业务零碎中注入各类故障类型
  • 实际混沌工程示例:

    • 能够简略如在生产环境中运行 kill -9 来模仿一个服务节点的忽然宕机
    • 也能够简单到在线上筛选一小部分(但足够代表性)的流量,按肯定规定或频率主动运行一系列试验
    • 精准的管制(爆炸半径、影响范畴)、反对更多场景的模型
  • 通常遵循四个操作步骤
    1. 首先定义指标(自动化指标剖析)(采纳业务指标比技术指标更易用)
    2. 创立假如。
    3. 模仿事实世界中可能产生的事件(故障注入)。
    4. 证实或反驳你的假如。
  • 业内实际

    • 混沌工程(Chaos Engineering) 总结

      • https://zhuanlan.zhihu.com/p/...
      • https://github.com/dastergon/...
    • 先驱,Netflix 的 Chaos Monkey

      • https://pingcap.com/blog-cn/c...
      • 最早系统化地提出了混沌工程的概念,并出版了混沌工程畛域内的首部书籍。在本书中提出了混沌工程成熟度模型与利用度模型,并总结了五条高级准则,对于混沌工程的倒退具备指导性意义。
      • 准则之一易用性

        • 易于编排试验的谬误注入行为,易于查看**试验的状态和后果
      • 准则之一扩展性

        • 基于现有实现,易于扩大新的故障注入品种
    • 阿里 ChaosBlade
    • PingCap:Chaos Mesh
    • Gremlin:chaos gameday 红蓝反抗概念