头图

在浩瀚无垠的宇宙之中,我们渺小如 一粒微尘。人类最深远的恐惧,莫过于对未知的恐惧。千百年来,面对这些无法准确预测的灾难,我们不断进行科研探索。在数字代码的世界中亦是如此……

科技工作者们不断探索出新的方法,构建更有韧性的系统,以抵御多种形式的故障。而我们在这个系列里要介绍的混沌工程,就是软件开发领域中一门崭新的学科。

混沌工程诞生

2008年

位于美国加利福尼亚州的Netflix公司数据中心,发生了一起重大的数据库故障。这起故障使得公司连续3天无法为客户邮寄DVD,这正是他们当时的主营业务。于是,他们做了一个大胆的决定,把基础设施从数据中心迁移到云平台,减少故障。此时,Netflix的流媒体业务刚刚起步。而当时的云平台成熟度不高,经常出现服务器莫名宕机,可用性下滑,影响恶劣。

为解决这一问题,Netflix创造了Chaos Monkey。它会在集群列表中随机选择一个服务器将其关闭,主动将问题摆在工程师面前进行解决。Chaos Monkey就是混沌工程的雏形。


2012年

随着互联网的发展,流媒体播放逐渐走进家庭。平安夜那天,云平台的宕机导致了Netflix的流媒体服务中断,这次故障对公司公众形象造成了巨大打击。

经过这次故障,Chaos Monkey得到了升级,从应对小规模服务器宕机进化为可以应对大规模区域故障,混沌工程逐渐成熟。


2015年

Netflix工程师团队正式定义了混沌工程“Chaos Engineering”。混沌工程就是一种故障主动注入测试的方法,通过实验的方式发现问题并解决问题。


混沌工程的五大原则

1、建立稳定状态的假设。当系统处于稳 定状态时,可以通过一些指标来定义这一状态。系统在混沌工程实验完成后,这些指标无法快速恢复,可以认为这个系统是不稳定的。

2、多样化地引入真实事件。只需要注入那些频繁发生且影响重大的事件,比如比如网卡、磁盘故障等。

3、在生产环境中进行实验。通常测试环境无法完全模拟生产环境,混沌工程实验尽可能在生产环境或贴近生产环境中进行。

4、持续运行自动化实验。因为生产环境一直在变化,要持续实验才更有效果,而自动化让整个过程的效率更高。

5、最小化爆炸半径。我们要确保混沌工程注入的这些故障不会对系统造成大规模的影响,使系统影响最小化并可控。

2023年

近来, Gartner将混沌工程归纳到“数字免疫系统”中,列入2023年企业机构需要探索的十大战略技术趋势。

混沌工程未来

当前,数字化浪潮席卷全球,上云、分布式改造、信创等工作对企业数字韧性提出了新的挑战,混沌工程也将在新时代下显现更大的价值。


同创永益
15 声望3 粉丝

同创永益,面向未来的组织韧性服务提供商