写点什么

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:002893

评论

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

系统存储架构升级分享 | 京东云技术团队

京东科技开发者

软件测试/测试开发/全日制 |Python全栈开发:构建跨平台、可移植的应用

测吧(北京)科技有限公司

测试

Mac电脑版文件启动器:Butler 激活最新版

胖墩儿不胖y

Mac软件 文件启动器

一分钟了解深度学习算法

小齐写代码

C 语言文件处理全攻略:创建、写入、追加操作解析

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

[大厂实践] DoorDash基于eBPF的监控实践

俞凡

云原生 监控 ebpf 大厂实践

软件测试/测试开发/全日制 |使用Socket.IO实现实时通信

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制|Pytest如何灵活地运行用例

霍格沃兹测试开发学社

跨境电商通讯服务

cts喜友科技

通信 通讯

让代码不再枯燥,变成你的快乐伙伴! -超过200+的python趣味编程系列-完整源码(保证可运行)+执行效果(持续更新ing)

顺顺顺

Python 游戏

为什么建筑设计师选择网络渲染"效果图"

Renderbus瑞云渲染农场

云渲染 云渲染农场 效果图渲染

漫画IT | 关于你天天用的OS与Git

极狐GitLab

MT7915: Demonstrating the glorious history of wireless communications

wallysSK

技嘉推出 GEFORCE RTX 40 SUPER 系列显卡

财见

这些常见的python编码习惯,你都会吗

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟

面试官:分布式锁最终解决方案是RedLock吗?为什么?

王磊

Java 面试

百度搜索exgraph图执行引擎设计与实践

百度Geek说

百度搜索 企业号 1 月 PK 榜 图执行 图执行引擎 DAG执行图

GreatSQL喊你来考证啦~

GreatSQL

使用Terraform部署华为云和kubernetes资源

华为云开发者联盟

开发 华为云 华为云开发者联盟

一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器

芯动大师

2024第十届上海国际智慧工地展览会

AIOTE智博会

智慧工地展览会 智慧工地展会 智慧工地展

服务器比较常见几个的故障问题

德迅云安全_初启

软件测试/测试开发/全日制 |解析Web应用中的日志与监控

测吧(北京)科技有限公司

测试

揭秘阿里自研搜索引擎Havenask在线检索服务

阿里技术

搜索引擎 开源 搜索 Havenask 在线检索

左耳听风 - 我对技术的态度「读书打卡 day 02」

Java 工程师蔡姬

读书笔记 程序员 读书 左耳朵耗子

用友全球司库十问(九)|企业为什么需要银企直联?

用友BIP

全球司库

Databend 开源周报第 127 期

Databend

JavaScript 常见错误与异常处理

京东科技开发者

数字化时代下的数字化资产及其治理 |京东云技术团队

京东科技开发者

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