在浩瀚无垠的宇宙之中,我们渺小如 一粒微尘。人类最深远的恐惧,莫过于对未知的恐惧。千百年来,面对这些无法准确预测的灾难,我们不断进行科研探索。在数字代码的世界中亦是如此……
科技工作者们不断探索出新的方法,构建更有韧性的系统,以抵御多种形式的故障。而我们在这个系列里要介绍的混沌工程,就是软件开发领域中一门崭新的学科。
混沌工程诞生
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年企业机构需要探索的十大战略技术趋势。
混沌工程未来
当前,数字化浪潮席卷全球,上云、分布式改造、信创等工作对企业数字韧性提出了新的挑战,混沌工程也将在新时代下显现更大的价值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。