混沌工程

混沌工程是近十年出现的,然而我们大部分人包括我自己都没有接触或者听说过,对我自己小白做个知识普及。

混沌工程定义

Chaos Engineering is the discipline of experimenting on a distributed system in order to build confidence in the system's capability to withstand turbulent conditions in production.

我们注意到有两个关键短语

  • discipline of experimenting
  • on distirbuted system

混沌工程历史

参考 混沌工程 | 亚马逊AWS官方博客 (amazon.com)

2010年 Netflix 内部开发了 AWS 云上随机终止 EC2 实例的混沌实验工具:Chaos Monkey
2011年 Netflix release了其猴子军团工具集:Simian Army
2012年 Netflix 向社区开源由 Java 构建 Simian Army,其中包括 Chaos Monkey V1 版本
2014年 Netflix 开始正式公开招聘 Chaos Engineer
2014年 Netflix 提出了故障注入测试(FIT),利用微服务架构的特性,控制混沌实验的爆炸半径
2015年 Netflix release了 Chaos Kong ,模拟AWS区域(Region)中断的场景
2015年 Netflix 和社区正式提出混沌工程的指导思想 – Principles of Chaos Engineering
2016年 Kolton Andrus(前 Netflix 和 Amazon Chaos Engineer )创立了 Gremlin ,正式将混沌实验工具商用化
2017年 Netflix 开源 Chaos Monkey 由 Golang 重构的 V2 版本,必须集成 CD 工具 Spinnaker(持续发布平台)来使用
2017年 Netflix release了 ChAP (Chaos Automation Platform, 混沌实验自动平台),可视为应用故障注入测试(FIT)的加强版
2017年 由Netflix 前混沌工程师撰写的新书“混沌工程”在网上出版
2017年 Russell Miles 创立了 ChaosIQ 公司,并开源了 chaostoolkit 混沌实验框架

混沌工程五原则

  • 建立稳定状态的假设
  • 多样化实现世界事件
  • 在生产环境进行实验
  • 持续自动化进行实验
  • 最小化“爆炸半径”

混沌工程度量

成熟度 演练程度 故障自身的等级 问题频率 重叠程度 时间范围 故障持续时间 故障出发通知 故障恢复能力
初步
入门
常规
熟练
大师

如上为混沌工程某大厂的度量表格

混沌工程相关产品

chaosblade 阿里巴巴
chaostollkit Netflix
Litmus Cloud native chaos engineering - Enhancing Kubernetes application resiliency | Cloud Native Computing Foundation (cncf.io)

小结

混沌工程是分布式系统提升稳定性的大杀器,但是只在极少数大厂有用到,先了解,说不定有一天可能用到。

你可能感兴趣的:(混沌工程)