DevOps 实战笔记
石雪峰
京东商城工程效率专家
37393 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
DevOps 实战笔记
15
15
1.0x
00:00/00:00
登录|注册

18 | 混沌工程:软件领域的反脆弱

结合混沌工程的实践的新思路
异常事件的经历
混沌工程的5个实践原则
服务可用性实践
混沌工程介绍
最小影响范围
持续的自动化实验
在生产中试验
真实世界的事件
建立稳定状态的假设
服务降级
全链路压测
故障演练
无法完整梳理系统
微服务、容器化
大型平台例子
建立信心
实验分布式系统
思考题
总结
混沌工程原则
服务可用性实践
面对复杂系统
混沌工程定义
混沌工程

该思维导图由 AI 生成,仅供参考

你好,我是石雪峰。
经济学领域有一本特别有名的书,叫作《反脆弱》。它的核心理念就是,在面对普遍存在又不可预估的不确定性时,通过一种行之有效的方法,不仅可以规避重大风险,还能够利用风险获取超出预期的回报。另外,通过积极地试错,控制损失成本,还能不断提升在不确定性事件发生时的收益。
不仅仅要规避风险,还要在风险中受益,这听起来是不是很神奇?其实,在软件工程领域,也有类似的思想和实践,可以帮助我们在面对极其复杂且规模庞大的分布式系统时,有效地应对不可预见的故障,不仅可以从容不迫地应对,还能从中获益,并且通过频繁、大量地实验,识别并解决潜在的风险点,从而提升对于复杂系统的信心。这就是今天我要给你分享的主题:混沌工程。

什么是混沌工程?

混沌工程作为软件领域的一门新兴学科,就和它的名字一样,让很多人感到非常“混沌”。那么,混沌工程究竟是从何而来,又是要解决什么问题呢?
我们先来看看混沌原则网站对混沌工程的定义:
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.
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

混沌工程是软件领域的新兴学科,旨在通过实验增强分布式系统在生产环境中抵御突发事件的能力。传统的全面测试难以保障质量,因为真实世界的问题往往不按套路出牌。混沌工程提倡在故障发生之前通过实验验证系统的表现,识别风险并有针对性地进行系统改造和安全加固,从而提升整个系统的可用性信心。这种积极的方式有助于应对不可预测的不确定性,使系统更加反脆弱,能够从中获益并不断提升在不确定性事件发生时的收益。混沌工程的理念和实践为软件工程领域带来了新的思路和方法,有助于有效地应对复杂且规模庞大的分布式系统中的不可预见的故障,提升对系统的信心。文章还介绍了服务可用性实践,包括故障演练、全链路压测、服务降级预案等,以及Netflix公司的“混乱猴子”实验,强调混沌工程不是为了制造问题,而是为了揭示问题。在引入混沌工程的实践之前,需要确保现有的服务已经具备了弹性模式,并且能够在应急响应预案和自动化工具的支撑下尽早解决可能出现的问题。混沌工程为读者提供了一种新的思路和方法,帮助他们更好地应对复杂系统中的不可预见故障,提升对系统的信心。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《DevOps 实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • leslie
    混沌工程这个概念应当提出了5年左右了:当年跳槽国内某一线券商技术部那年听说过这个概念。提出一个大胆的假设啊:有时其实混沌工程就是就是所谓的鲶鱼效应去发现问题完善现有的系统。 其实很多时候越熟悉的人反而会越看不清问题的本质:这是为何我们写产品使用说明书回去会去找个没用过相关东西的大妈之类的告诉我们问题的所在。只有通过鲶鱼或者说完全不了解的人去揭露问题才能看到问题的真正问题。 ”不识庐山真面目,只缘身在此山中“:谢谢老师今天的分享,期待后续和老师的学习交流。

    作者回复: 有个说法叫做知识的诅咒,说的是随着掌握的信息越多知识越丰富,反而失去了像普通人一样交流的能力,就是因为太熟悉了,所以看不出有什么问题,这也是为啥有时候会找外部咨询或者参加行业大会的原因吧。

    2019-11-21
    10
  • Robert小七
    想知道老师所在公司如何实施的,实践过程中有哪些重点应该是我们关注的?

    作者回复: 你好,我现在的公司除了故障演练和常态化压测之外,目前在做的就是Chaos Monkey,在混沌工程领域也同样处于摸索阶段,一个小的建议就是,当机器压力过大的时候,监控上报的服务也处于阻塞状态,这就会导致没法正常获取监控数据,所以监控服务的资源保障,在演练的时候要关注一下。

    2019-11-21
    1
  • Geek_LJM
    目前我们公司也在进行故障演练,作为测试团队一员,很想知道,构造故障有哪些工具或平台 ?譬如针对磁盘故障的模拟,或应用的故障模拟之类的,在网上也比较难找到这类的工具或平台。

    作者回复: 你好,的确目前成熟开源的混沌平台并不多,像Netflix开源过一些,网上也有一个针对Spring框架的Chaosmonkey工具,企业中更多还是自己设计实现为主,比如你提到的磁盘故障,linux的命令就可以做到,只不过需要有一个调度和监控平台来配合使用,这方面都是云平台来提供的服务。

    2020-02-10
    2
  • 怀揣梦想的学渣
    第一次接触混沌工程是看Netflix分享的资料。我认为它和保障活动不一样,本质上有区别。保障活动就像妈妈保护着孩子学走路,稍微有不正常就会及时保护你。混动工程就是老爸带小孩,不仅没有保护,还会检验你走的是否稳。 有些公司对保障活动的成果检验是比较敷衍的,我见过一家做医疗产品的公司,备份数据每周一次,连续五年了,从未做过恢复检验,凌晨发现中勒索病毒,连续回退五个版本都是带勒索病毒文件的,因为病毒早就被植入,备份数据是带病毒的,多次测试找到干净备份,发现备份还只能部分数据可用,因为备份软件在备份部分类型文件有bug。
    2023-06-01归属地:山东
  • 古十四
    从已知的未知。发展为未知的未知。
    2022-10-27归属地:江苏
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部