AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

Netflix Chaos Monkey 2.0 发布

  • 2016-11-16
  • 本文字数:1045 字

    阅读完需:约 3 分钟

Chaos Monkey 是在 Netflix 整体微服务化的形势下开发的。为了增加微服务架构的弹性,需要确保当服务集群中有节点失败或者退出时不会影响整体服务。由于 Netflix 的内部文化,没有办法通过框架或者编码规范来形成一套能够满足弹性要求的框架。最终,Netflix 选择开发了 Choas Monkey:一个在生产环境随机选择并关闭服务的工具。对于这个选择,有人会觉得很疯狂,但是通过频繁的服务失败演练,使得开发团队对服务集群稳定性有了更高的重视,以确保不会因为这些演练对最终用户产生影响。

Netflix 将 Chaos Monkey 定位为提升服务质量的高效工具。最近发布的 2.0,除了带来更好的可维护性,也带来了一些新的特性。

和 Spinnaker 集成

Spinnaker 是 Netflix 的持续交付平台,Chaos Monkey 2.0 和它结合之后,可以在 Spinnaker 上对其进行配置。同时 Chaos Monkey 可以从 Spinnaker 获取服务部署的相关信息并通过 Spinnaker 关闭服务实例。

由于集成了 Spinnaker,Chaos Monkey 增加了对多种后端的支持,包括:AWS、GCP、Azure、Kubernetes、Cloud Foundry。

Chaos Monkey 2.0 还在配置上进行了优化,用户可以设置两次终止之间的平均时间,而不是在任意时段内的概率。另外,针对服务所在的环境进行分组,分组方式延续了 AWS 的概念,包括应用、应用栈(stack)和集群。配置页面如下:

追踪关闭行为

Chaos Monkey 2.0 可以单独配置外部追踪器,当 Chaos Monkey 对某个实例进行了关闭操作后,它会向配置的追踪器发送通知。对于 Netflix 内部使用来说,Chaos Monkey 会将通知发送到 Atlas (Netflix 的检测系统)和 Chronos (Netflix 的事件追踪系统)。下图是 Atlas 系统的截图,展示了 Chaos Monkey 对于部分服务的关闭操作行为,值得注意的是,Chaos Monkey 还会关闭自己的服务实例。

其他改变

之前版本的 Chaos Monkey,除了支持关闭服务实例之外,还支持其他一些操作系统级别的破坏,例如提高 CPU 占用率、阻塞网络 IO、写满硬盘空间等。Chaos Monkey 2.0 移除了这些功能,只支持关闭服务实例。对于这些功能移除,Netflix 的工程师认为,这些功能应该被放到故障注入服务中进行定向注入,而不是作为 Chaos Monkey 的随机操作之一。关于故障注入,Netflix 也有一些介绍

Chaos Monkey 2.0 源码在其 Github 仓库上已经可以下载和部署。详细部署方式参见 Chaos Monkey 的 wiki 页面


感谢陈兴璐对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-16 18:002708

评论

发布
暂无评论
发现更多内容

为什么使用中间件下载时总是收到警告消息Object is in status Wait

汪子熙

中间件 CRM SAP ERP

如何从ERP将Material的Batch信息下载到CRM

汪子熙

CRM SAP ERP abap

数字货币兴起背后:全球货币超发 主权信用贬值

CECBC

架构训练营-模块四作业

冬天的树

如何从ERP下载Sales BOM到CRM

汪子熙

CRM SAP ERP abap

如何证明CRM WebClient UI上的应用是有状态(Stateful)的

汪子熙

CRM SAP abap WebClient UI

SAP CRM中间件里的CSA队列有什么用

汪子熙

中间件 消息中间件 CRM SAP

模块4作业

梦寐凯旋

架构实战营

CRM中间件里的发布-订阅者模式

汪子熙

CRM SAP ERP abap

如何用ABAP代码读取CDS view association的数据

汪子熙

CDS SAP abap CDS view

金融科技如何在产业互联网蓝海中扬帆远航?大数据、区块链与物联网应用被看好

CECBC

如何使用代码获得一个function module的Where Used List

汪子熙

CRM SAP abap SAPGUI

高性能 JavaScriptの六 -- 老生常谈Ajax

空城机

JavaScript ajax 大前端 5月日更

同时开左右两个SAPGUI编辑器显示同一段ABAP代码

汪子熙

SAP abap SAPGUI

Mybatis获取自增长id

风翱

mybatis 5月日更

CRM和ERP的Sales Organization的映射关系

汪子熙

中间件 CRM SAP ERP

利用CRM中间件Middleware从ERP下载Customer Material的常见错误

汪子熙

中间件 CRM SAP ERP

ABAP OPEN SQL里OPEN CURSOR和SELECT的比较

汪子熙

CRM SAP abap ST05 OPENSQL

观察者模式在One Order回调函数中的应用

汪子熙

CRM SAP abap

CRM订单状态的Open, In process和Completed这些条目是从哪里来的

汪子熙

CRM SAP ERP abap

面试问题 - 只用位操作在ABAP里实现a+b

汪子熙

面试 SAP abap

CRM product UI里assignment block的显示隐藏逻辑

汪子熙

CRM SAP abap

SAP S4CRM (SAP Customer Management for S/4HANA) 1.0 介绍

汪子熙

CRM SAP abap S/4HANA

One Order行项目里Item Category是怎么计算出来的

汪子熙

CRM SAP abap ONE-ORDER

中间件事务码R3AC1里Block Size的含义

汪子熙

中间件 CRM SAP abap

如何快速的学习一门新的编程语言?

架构精进之路

学习 5月日更

如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节

汪子熙

chrome SAP C4C Chrome开发者工具

网络攻防学习笔记 Day23

穿过生命散发芬芳

5月日更 网络攻防

CRM数据库表COM_TA_R3_ID的数据来源

汪子熙

中间件 CRM SAP abap

如何检查某个用户是否具有某个权限对象上定义的某种权限

汪子熙

CRM ERP abap Authorization Authentication

设计千万级学生管理系统的考试试卷存储方案

俞嘉彬

Netflix Chaos Monkey 2.0发布_语言 & 开发_金灵杰_InfoQ精选文章