混沌工程

定义

混沌工程是一种可试验的、基于系统的方法来处理大规模分布式系统中的混乱问题。通过不断试验,了解系统的实际能承受的韧性边界并建立信心,通过不同的试验方法和目的,观察分布式系统的行为和反应。一句话:以实验的方法尽早揭露系统弱点

混沌工程与传统测试的区别

  • 在测试中,进行断言:给定特定条件,系统将发出特定输出。测试通常是二进制态的,并确定属性是真还是假。严格地说,这不会产生关于系统的新知识,它只是将效价分配给它的已知属性。
  • 实验产生新知识,并经常提出新的探索途径。我们认为混沌工程是一种实验形式,可以产生关于系统的新知识。它不仅仅是一种测试已知属性的方法,可以通过集成测试更轻松地进行验证。

故事

在给大家正式介绍之前,先给大家说个小故事,阿波罗13号在发射前进行的一次测试中,2号氧气罐的氧气始终无法彻底排空。控制人员决定启动罐内的加热器,排出剩余氧气。这个操作需要接通65伏的电源,但氧气罐内的电路一开始的设计电压是28伏。在8小时的加热后,靠近加热器的导线温度一度达到了538度,导线的绝缘层被破坏。在太空中,这段导线短路,点燃了绝缘层,引发了爆炸。

image.png

软件开发中的问题

在日常开发运维工作中,如果你不能提早发现和解决问题,最后问题会在周末/半夜来“解决你”.


image.png

系统架构的演进

从系统架构的本质演进中是由脆弱的系统,慢慢演进,逐步增强,最终变的越加智能化,成为一个反脆弱系统。

  • 脆弱系统:难以修改,许多阻止拥有无法更改的应用程序,维护成本非常高,但是由于他们对业务至关重要,因此仍然运行。
  • 健壮系统:可承受一定程度的压力而不会失去其给您,但是如果压力和变化继续,则该系统可能会带来损失。
  • 韧性系统:在设计和实现时考虑到压力和适应性特征,从而应对更大的压力和变化,并最大程度的提供价值。
  • 反脆弱系统:是一个智能系统,架构复杂有难度,但是一旦建立起来,降机遇变更来驱动业务,甚至能提供创新变更。


    image.png

混沌过程的演进

image.png

2010年 Netflix 内部开发了 AWS 云上随机终止 EC2 实例的混沌实验工具: Chaos Monkey
2011年 Netflix 释出了其猴子军团工具集: Simian Army
2012年 Netflix 向社区开源由 Java 构建 Simian Army,其中包括 Chaos Monkey V1 版本
2014年 Netflix 开始正式公开招聘 Chaos Engineer
2014年 Netflix 提出了故障注入测试(FIT),利用微服务架构的特性,控制混沌实验的爆炸半径
2015年 Netflix 释出 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 释出 ChAP (混沌实验自动平台),可视为应用故障注入测试(FIT)的加强版
2017年 由Netflix 前混沌工程师撰写的新书“混沌工程”在网上出版
2017年 Russell Miles 创立了 ChaosIQ 公司,并开源了 chaostoolkit 混沌实验框架

混沌工程的原则

建立稳定状态的假设

  • 确定监控指标
  • 假设注入事件,系统依然稳定

在一个复杂系统里面,我们有特别多的组件,有很多不同的输入输出,我们需要有一个通用的方式来区别系统哪些行为是可以接受的,而哪一些则是不合适的。我们可以认为当系统处于正常操作时候的状态就是稳定状态。

多样化现实世界事件

  • 根据现实世界设定事件
  • 注入事件是被认为系统可以处理的事件
  • 优先注入那些频繁发生且影响重大的事件
image.png

在生产环境运行

  • 混沌工程实验离生产越近越好

从功能性的故障测试角度来看,非生产环境去实施故障注入是可以满足预期的,不过因为系统行为会根据环境和流量模式有所不同,为了保证系统执行方式的真实性与当前部署系统的相关性,推荐的实施方式还是在生产环境(仿真环境、沙箱环境都不是最好的选择)

很多同学恐惧在生产环境执行实验,原因还是担心故障影响不可控。实施实验只是手段,通过实验对系统建立信心是我们的目标。关于如何减少实验带来的影响,这点在“最小化爆炸半径”部分会有阐述。
并且混沌工程不是一开始就建议你在生产环境运行,也是循序渐进,从测试环境开始,慢慢过渡的到sandbox,最后在生产环境运行试验。

持续自动化运行实验

  • 自动执行实验
  • 自动分析实验结果
  • 自动创建新的实验

实验的手动运行工作属于劳动力密集型任务,因此难以长久持续。建议采取自动化实验及持续运行方式。混沌工程能够将自动化系统引入系统之内,从而促进协调与分析工作的顺利进行。

最小化影响范围

  • 对线上业务影响最小范围
  • 先小范围,在不断扩大
  • 避免在高风险时间段运行

最小化爆炸半径,尽量减少对用户的影响,最好能控制到用户基本,或者请求基本,这样对线上基本就没有什么损失,高层的接受度也会很高,减少故障对产线业务的影响。

image.png

混沌工程实验步骤

image.png

混沌工程的成熟度模型

image.png

混沌工程的接纳指数

image.png

混沌工程的价值

1.架构师对当前设计的架构,可以通过混沌工程进行验证
2.开发和运维的可以用混沌工程来提高自己对线上Case处理的演练,提升经验
3.测试可以在利用混沌工程提早暴露一些线上的问题,降低故障复发率,转化被动为主动
4.UI可以在出现这些问题时,界面的反馈,产品不显示,产品对用户的体验度是怎么样的,可以接受与否等

混沌工程的回报率

引用自Netflix
过去一年中,混沌工程提前发现了2次大故障和8次小故障,避免了整个组织大约70万美金的损失。混沌工程团队,总共3个成员,薪水支出15万美金/人。开展混沌工程实验,本身需要1万美金的成本。请问,投资回报率是多少?

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容