BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Netflix Chaos Monkey 2.0发布

| 作者 金灵杰 关注 5 他的粉丝 发布于 2016年11月17日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT