
在我的一次采访中,一个人问我是否认识ChaosMonkey。 这个名字听起来很有趣,我当时很开心,后来又抬起头来。 我读过詹姆斯·格里克(James Gleick)撰写的有关“混乱”的书,其中混乱的特征通常是对次要事件的极端不可预测的扰动(蝴蝶拍打引起龙卷风就是众所周知的例子)。 尽管Chaos Engineering借用了Chaos一词,但它对Chaos的解释却微妙得多。
Chaos Engineering即将对系统进行实验更改,并查看其是否偏离其稳态(即正常运行)。 在进行这些更改时,将同时跟踪技术指标和业务指标。 我们都知道像SNMP这样的传统工具或像Nagios这样的现代版本,它们可以用来监视系统的运行状况。 由于延迟,吞吐量,同步等分布式系统的规模和复杂性带来的复杂性,在微服务和容器化领域引入了许多此类新工具。 因此,很难在部署微服务环境之前预测所有可能的故障模式,这是本书的重点。 但是,在某种程度上,关于单片式架构也可以这样说。 此外,这本书主要讨论生产变化的基础结构和网络方面(例如服务器故障或网络故障),但也可能存在错误的代码逻辑,他们要求通过使微服务发生错误而进行模拟。
- 罗姆人:阿尔萨斯电影院。
- 糟糕的圣诞节经典作品#1:El Camino圣诞节
- 您应该在Netflix上观看Cam吗? (60秒内)
- 印度的Hotstar吸引了超过1000万并发观众,刷新了全球纪录
- 亚马逊视频,乐视和Netflix并发
该书坚持认为,对系统的扰动和实验最好在生产环境(或接近生产环境)中进行,且具有先验假设和利益相关者的同意,就像科学实验一样。 为了降低风险,他们谈论了红色大中止按钮以及出现问题时将爆炸半径最小化的概念。 此外,他们建议逐步扩大混沌实验的范围,因为不同的现象将在不同的实验水平上显现出来。
理想情况下,通过进行混乱的工程设计,组织可以防止自己成为生产问题的受害者,例如设备不当,云托管基础架构出现故障,微服务行为异常或重试风暴。 通过示例很好地说明了这一点。
本书的重点之一是,混沌工程应经历各种自动化水平,从手动实验到工具驱动的实验,再到工具设计和监控的实验。 此外,此类工具应成为组织中自动化过程的一部分。 作者为它建立了一个能力成熟度模型,这是有用的。
看起来,混沌工程学是一门非常新兴的科学,大规模分布式系统的复杂性导致了它的诞生。 从根本上讲,问题在于,人类无法直接预测软件的复杂相互作用,持续发展,基础设施和环境,从而避免所有风险。 通过在动态系统中进行实验并控制风险,我们可以更好地保护和认证系统免受不可预见的风险和异常值的影响。
https://www.oreilly.com/library/view/chaos-engineering/9781491988459/