各位网友们好,相信很多人对sre混沌工程都不是特别的了解,因此呢,今天就来为大家分享下关于sre混沌工程以及混沌工程 pumba的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
本文目录一览
1、什么是混沌工程?
2、混沌工程
什么是混沌工程?
混沌工程是在分布式系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力以及信心。
混沌工程,是一种提高技术架构弹性能力的复杂技术手段,旨在将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来。通过主动制造故障。
测试系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果。
混沌工程和故障注入、传统测试的区别:
两者本质上是思维方式的不同。
1、故障注入首先要知道会发生什么故障,然后一个一个注入,然而在复杂分布式系统中,想要穷举所有可能的故障,本身就是奢望。
2、传统测试,旨在给定一个特定的条件,系统会输出一个特定的二元结果,它仅仅是对已知的系统属性可能的取值进行测验。
3、混沌工程的思维方式是主动去找故障,是探索性的。虽然按计划做好了降级预案,但是关闭节点时却引发了上游服务故障,进而引发雪崩,这不是靠故障注入或预先计划能发现的。
4、混沌工程,旨在帮助我们获得更多的关于系统的新认知的实验方法,而且通常还能开辟出一个更广袤的对复杂系统的认知空间。
5、混沌工程实验的可能性是无限的,根据不同的分布式系统架构和不同的核心业务价值,实验可以千变万化。
混沌工程
在给大家正式介绍之前,先给大家说个小故事,阿波罗13号在发射前进行的一次测试中,2号氧气罐的氧气始终无法彻底排空。控制人员决定启动罐内的加热器,排出剩余氧气。这个操作需要接通65伏的电源,但氧气罐内的电路一开始的设计电压是28伏。在8小时的加热后,靠近加热器的导线温度一度达到了538度,导线的绝缘层被破坏。在太空中,这段导线短路,点燃了绝缘层,引发了爆炸。
在日常开发运维工作中,如果你不能提早发现和解决问题,最后问题会在周末/半夜来“解决你”.
从系统架构的本质演进中是由脆弱的系统,慢慢演进,逐步增强,最终变的越加智能化,成为一个反脆弱系统。
2010年 Netfpx 内部开发了 AWS 云上随机终止 EC2 实例的混沌实验工具: Chaos Monkey 2011年 Netfpx 释出了其猴子军团工具集: Simian Army 2012年 Netfpx 向社区开源由 Java 构建 Simian Army,其中包括 Chaos Monkey V1 版本 2014年 Netfpx 开始正式公开招聘 Chaos Engineer 2014年 Netfpx 提出了故障注入测试(FIT),利用微服务架构的特性,控制混沌实验的爆炸半径 2015年 Netfpx 释出 Chaos Kong ,模拟AWS区域(Region)中断的场景 2015年 Netfpx 和社区正式提出混沌工程的指导思想 – Principles of Chaos Engineering 2016年 Kolton Andrus(前 Netfpx 和 Amazon Chaos Engineer )创立了 Grempn ,正式将混沌实验工具商用化 2017年 Netfpx 开源 Chaos Monkey 由 Golang 重构的 V2 版本,必须集成 CD 工具 Spinnaker 来使用 2017年 Netfpx 释出 ChAP (混沌实验自动平台),可视为应用故障注入测试(FIT)的加强版 2017年 由Netfpx 前混沌工程师撰写的新书“混沌工程”在网上出版 2017年 Russell Miles 创立了 ChaosIQ 公司,并开源了 chaostoolkit 混沌实验框架
很多同学恐惧在生产环境执行实验,原因还是担心故障影响不可控。实施实验只是手段,通过实验对系统建立信心是我们的目标。关于如何减少实验带来的影响,这点在“最小化爆炸半径”部分会有阐述。 并且混沌工程不是一开始就建议你在生产环境运行,也是循序渐进,从测试环境开始,慢慢过渡的到sandbox,最后在生产环境运行试验。
1.架构师对当前设计的架构,可以通过混沌工程进行验证 2.开发和运维的可以用混沌工程来提高自己对线上Case处理的演练,提升经验 3.测试可以在利用混沌工程提早暴露一些线上的问题,降低故障复发率,转化被动为主动 4.UI可以在出现这些问题时,界面的反馈,产品不显示,产品对用户的体验度是怎么样的,可以接受与否等
引用自Netfpx 过去一年中,混沌工程提前发现了2次大故障和8次小故障,避免了整个组织大约70万美金的损失。混沌工程团队,总共3个成员,薪水支出15万美金/人。开展混沌工程实验,本身需要1万美金的成本。请问,投资回报率是多少?