提升服务质量的高效工具Chaos Monkey

最近Netflix发布了Chaos Monkey 2.0,将其与Netlfix的持续交付平台Spinnaker深度结合,增加了多种后端的支持。

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)和集群。配置页面如下:

0?wx_fmt=png

追踪关闭行为

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

0?wx_fmt=png

其他改变

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

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

ArchSummit北京2016,探讨属于云的精彩

LinkedIn分布式数据云与小米自研pagasus分布式数据存储系统同台竞技会碰撞出什么样的精彩?时速云Kubernetes 有状态集群服务部署与管理有何独到之处?敦煌网在容器技术与微服务架构集成实践中填平了那些坑?技术在实践中精彩,相约ArchSummit北京2016,一起探讨属于云的精彩。ArchSummit9折倒计时最后一周,点击“阅读原文”了解详情。

0?wx_fmt=jpeg

0?wx_fmt=jpeg0?wx_fmt=jpeg

细说云计算

ID:CloudNote

640?wx_fmt=jpeg▲长按二维码识别关注

探讨云计算的一切,

有干货,也有闲聊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值