2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

评论

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

android程序开发!2021Android精选面试实战总结整理,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

Linux入门篇 —— Linux 磁盘管理之磁盘理论篇

若尘

Linux linux编程 磁盘

极限编程技术实践

Teobler

敏捷 敏捷开发 TDD 重构 极限编程

Git学习游戏化,从Learn Git Branching 开始

程序老王

git 学习 学习方法 git 学习

山东青岛推进平安小区建设!源中瑞智慧社区平台解决方案

源中瑞-龙先生

解决方案 山东 源中瑞 青岛 智慧社区

【LeetCode】区域和检索 - 数组不可变Java题解

Albert

算法 LeetCode 28天写作

元宵节元宵钱,不买元宵买云资源! | 2核4G低至0.79元/天

京东科技开发者

云主机 云服务器 云存储 云硬盘

刷屏洗脑的“吗咿呀嘿”,到底是个啥?

架构精进之路

商业模式 28天写作 3月日更

看完你就明白什么是图神经网络

华为云开发者联盟

神经网络 深度学习 节点 图神经网络 图结构

搭建一个 802.1x 的 web 测试服务

冯骐

网络 监控系统 Open-Falcon radius eduroam

QA视角看数据匿名化

BY林子

数据安全 测试右移 用户数据 数据脱敏

使用 pyVmomi 采集 vSphere 监控指标

冯骐

Python 运维 监控 Open-Falcon vpshere

构建一套适合微服务的高可用架构

环信

技术案例 | 云原生微服务落地难?百度自用CRM这样做

百度开发者中心

微服务 CRM #百度智能云#

国产芯片WiFi物联网智能插座—电耗采集功能设计

不脱发的程序猿

28天写作 国产芯片 电耗检测 电压电流 华大MCU

LeetCode题解:123. 买卖股票的最佳时机 III,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Wiki.js 配置 LDAP 认证

东风微鸣

wiki

android布局优化!Android屏幕适配很难嘛?其实也就那么回事,内含福利

欢喜学安卓

android 程序员 面试 移动开发

树莓派上的温湿度环境监控

冯骐

运维 树莓派 物联网 监控告警

工作两三年了,整不明白架构图都画啥?

小傅哥

Java 后端 小傅哥 架构设计 画架构图

程序员之禅(一)

每天读本书

读书笔记

华为云举办AI经典论文复现活动,打造领先AI开发者学习社区

华为云开发者联盟

AI 华为云 modelarts 论文 AI Gallery

海豚调度dolphinscheduler SQL脚本初始化流程

cloudcoder

海豚调度 调度引擎 分布式任务调度

树莓派上的家庭监控中心

冯骐

运维 树莓派 监控系统 Open-Falcon 物联网,

程序员专属“灯谜”大挑战,答对六题算你赢!

京东科技开发者

编程语言 集群

MongoDB 在评论中台的实践

vivo互联网技术

数据库 mongodb 分布式 集群

华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易

华为云开发者联盟

数据库 云原生 华为云 GaussDB 数仓

GaussDB(DWS):非侵入式备份及其在NBU上的应用

华为云开发者联盟

架构 GaussDB 集群 备份 NBU

OS命令--shell中数组的操作

cloudcoder

数组 Shell 循环引用

MySQL字段默认值设置详解

Simon

MySQL 数据库

EEPROM CAT24CXX实现分页读、写数据

不脱发的程序猿

28天写作 CAT24C08 EEPROM 嵌入式软件 单片机

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