混沌工程是什么_什么是混沌猴子? 混沌工程解释

混沌工程是一种通过故意引入故障来增强系统弹性的实践,最初由Netflix的Chaos Monkey实现。Chaos Monkey随机禁用AWS生产实例,帮助工程师发现并解决潜在弱点。这种做法已演变成混沌工程学,包括定义系统稳定状态、引入变量并对比实验组和对照组,以提升系统的抗干扰能力。如今,混沌工程被广泛应用于多个行业,通过工具如Chaos Monkey和Gremlin进行混沌实验,帮助企业提高服务质量。
摘要由CSDN通过智能技术生成

混沌工程是什么

在Netflix从分发DVD转变为构建用于流视频的分布式云系统的过程中,Pioneers率先走了出来, Chaos Monkey引入了一种工程原理,该原理已被各种规模和规模的软件开发组织所接受:即通过有意破坏系统来可以学习使他们更具韧性。

根据最初关于该主题的Netflix博客文章 ,该文章由当时的云和系统基础架构总监Yury Izrailevsky和流媒体公司的云解决方案总监Ariel Tseitlin于2011年7月发布,Chaos Monkey旨在随机禁用以下产品的生产实例:其Amazon Web Services基础架构,从而暴露出Netflix工程师可以通过构建更好的自动恢复机制来消除的弱点。

[ 什么是SRE? 站点可靠性工程师的重要角色 ]

博客文章源于这个吸引人的名字,其思想是“在数据中心(或云区域)释放一只野猴,并带着武器,以随机击落实例并通过电缆咀嚼,而与此同时,我们将继续为客户提供服务而不会中断”状态。

在实践中,这将涉及一个简单的应用程序:“从每个群集中随机选择一个实例,并在营业时间的某个时间点将其关闭,而不会发出警告。 这将在每个工作日完成,”前Netflix工程师Nora Jones和Casey Rosenthal在由O'Reilly Media发行的有关该主题的综合书籍“ 混沌工程 ”中详细介绍了这一点。

想法是,通过了解您最薄弱的地方,工程师可以设置自动触发器来解决问题,如果出现问题,可以在半夜为他们保存呼叫。 从此,混沌猴子在混沌工程学的旗帜下发展成为一整套混沌原理。

Netflix上的Chaos Monkey

Chaos Monkey源自2010年左右在Netflix进行的工程工作,当时格雷格·奥泽尔(Greg Orzell)(现在在微软拥有的GitHub工作)受命为公司新的基于云的体系结构建立弹性。

Orzell告诉InfoWorld:“我对Chaos Monkey的看法并不是工程学的主要成就。” “它带来的价值是改变观念,这在我们从运送DVD到通过互联网流式传输的过程中至关重要。”

早期,Netflix工程师使用“ 四面军 ”的开放源代码工具向系统中引入了一系列中断和问题,每种工具都解决了某些类型的故障,从Chaos Monkey移除AWS集群开始。

最初的军队( 现在大部分已退休 ,转而使用新工具)包括诸如Latency Monkey之类的东西,它们会导致RESTful客户端-服务器通信层的人为延迟,而Monkey Doctor则会参与对每个实例运行的运行状况检查,并监视其他外部健康状况(例如CPU负载)以检测不正常的实例,并在需要时将其从服务中删除。

通过模拟整个AWS可用性区域的中断, Chaos Kong将Chaos Monkey提升到一个新的水平。 2015年Netflix博客文章概述了“ AWS区域不可用的情况非常罕见,但确实如此。”

“通过定期运行模拟区域中断的实验,我们能够及早发现任何系统性弱点并加以修复,”该帖子继续说道。 “当US-EAST-1实际上不可用时,我们的系统已经足够强大,可以处理流量故障转移。”

正如琼斯和罗森塔尔在书中概述的那样,让混乱的香港在基础设施上松懈是“一个白手起家的事,装配了一个'作战室'来监视流媒体服务的各个方面,并且持续了几个小时。”

两年后,即2017年7月, Netflix推出了 ChAP ,即Chaos Automation Platform,它“查询用户指定服务的部署管道。 然后,它将启动该服务的实验和控制群集,并将少量流量路由到每个服务。

[ 同样在InfoWorld上:什么是CI / CD? 持续集成和持续交付的解释 ]

混沌工程原理

基本的混沌猴子的做法已经Swift发展 ,通过混沌岗越来越大的部署,后来被正式称为混沌工程 。 Netflix直到2015年才组建自己的正式混乱工程团队。该团队由现任Stitch Fix工程总监Bruce Wong领导。

混沌工程学原理已经由“混沌猴子”的一些原始作者正式整理 ,将实践定义为:“在系统上进行实验的学科,以便建立对系统抵御生产环境中动荡条件能力的信心。”

实际上,这采用四步过程的形式:

  1. 定义系统的“稳定状态”以设置正常行为的基准。
  2. 假设在对照组和实验组中这种稳态都将持续。
  3. 介绍反映真实事件的变量,例如崩溃的服务器,发生故障的硬盘驱动器或断开的网络连接。
  4. 试图通过寻找对照组和实验组之间的差异来反驳这一假设。

如果稳定状态难以破坏,那么您将拥有一个强大的系统。 如果存在弱点,那么您还有一些要解决的问题。

琼斯和罗森塔尔观察到:“自从《原理》发布以来的五年中,我们已经看到混乱的工程技术不断发展,以应对新行业中的新挑战。” “随着采用范围遍及软件行业并进入新的垂直领域,该实践的原理和基础必将继续发展。”

混沌工程与混沌猴子

要运行Chaos Monkey的开源版本,您的系统将必须满足GitHub上概述的一组前提条件。

Chaos Monkey不能作为服务运行,因此您必须按照GitHub页面上的说明设置cron作业,然后该页面每周工作一次致电Chaos Monkey以创建终止时间表。

要使用此版本的Chaos Monkey,您必须使用Netflix自己的开源连续交付平台Spinnaker ,这可能会限制某些组织采用该方法的能力。 Chaos Monkey还需要与MySQL兼容的数据库,版本5.6或更高版本。

服务所有者通过Spinnaker设置其Chaos Monkey配置。 Chaos Monkey通过Spinnaker来获取有关服务部署方式的信息,并以您指定的频率和时间表随机终止实例(虚拟机或容器)。

当然,实施Chaos Monkey只是解决系统弹性问题的艰巨和复杂任务的开始。 混沌猴子只是揭示了系统中的弱点。 然后,由开发人员或系统工程团队确定原因并提出解决方案。

“工具本身并不昂贵,但是您必须对工具做出React的投资却是,” Orzell指出。 致力于混乱的工程还需要将资源从构建新功能转移到增强弹性。 他补充说:“每项业务在该频谱上处于不同的位置,他们每个人都必须决定在该空间中要拨多少钱。”

琼斯(Jones)和罗森塔尔(Rosenthal)说,在早期,Netflix的工程师“特别是从金融机构那里得到了很多回击。”

尽管银行的风险更高,但它们仍然遭受停电的影响,因此,许多组织通过谨慎地实施“诸如混沌工程学这样的主动战略来理解风险,以防止产生大的,不受控制的结果”,但许多组织改变了想法,最早采用了Capital One。采纳者,如本书中所述。

[ 也在InfoWorld上:站点可靠性工程遇上发展难题的地方 ]

混沌工程资源

同样,关于该主题的最新权威书籍是前Netflix工程师Nora Jones和Casey Rosenthal于2020年4月出版的《 混沌工程》 ,该书借鉴了这些作者和其他人在2017年《 混沌工程》一书中汇编的许多作品。 。 有关更实用的概述,请参阅Russ Miles的《 学习混沌工程》

Netflix在GitHub上提供了有关该主题的大量资源,包括教程 ,大量文档,错误计数器,中断检查器和解密器工具。

Gremlin是运行混沌工程实验的商业工具的提供商,提供了自己的全面资源集,可以免费在线或以PDF格式获得这些资源。 该公司还支持社区的各种努力,包括Chaos ConfSlack频道

奥赖利(O'Reilly)也拥有丰富的资源,包括有关该主题的书籍和视频的便捷播放列表

翻译自: https://www.infoworld.com/article/3543233/what-is-chaos-monkey-chaos-engineering-explained.html

混沌工程是什么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值