BT

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

微服务故障测试

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 谢丽 关注 9 他的粉丝 发布于 2016年3月4日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

微服务从业者峰会上,Kolton Andrus演讲中指出,故障测试是运行微服务的一个关键部分。你应该确定微服务的行为同预期一样,以避免停机。

前Netflix软件工程师Andrus将故障测试比作疫苗,为了产生免疫力,向体内注射少量有害的东西。在Andrus看来,这非常符合微服务领域。为了查看微服务的行为,我们向其中注入少量对微服务有害的东西,然后设法建立免疫。

故障测试的缺点是它可能造成影响。它会带来破坏或者造成一些客户影响,但是,如果最终的结果是最坏的事情没有那么坏,而最好的事情相当好,比如,阻止了停机,那么他认为,这种缺点是可控的。

做故障测试,Andrus更喜欢结合故障场景,考虑什么会出错,系统怎么会出错。他认为,提出类似“我们担心什么?”或“会出什么错?”这样的问题,多少会有助于更好地做准备。考虑故障发生的可能性,就可以发现基础设施中应该投入时间的常见事件。不过,他指出,我们不可能什么都准备好,故障总会出现,我们无法看到它们到来,但是,我们要相信,做好准备会让我们更有能力缓解问题。

另一个Andrus认为有助于优先级排序和风险评估的问题是“出错成本是什么?”。然后,可以执行一个成本-收益分析,不仅要考虑会出什么错,而且还要考虑什么可能出错,这有助于决定在哪里投入时间和金钱以获得最好的回报。

Andrus还强调了在生产环境中进行测试的重要性。如果只在测试环境中测试,那么生产环境的配置、网络和硬件都没有测试过,他援引了Amazon Web Services(AWS)著名工程师James Hamilton的一段话:

那些不愿意在生产环境中进行测试的人对他们的服务能够在故障情况下继续运行没有信心。不做生产环境测试,会在需要恢复的时候发现恢复失效了。

如果你做了大量的工作,并创建了缓解问题的方案,但未能在生产环境中进行测试,那么你稍后可能会发现它们在生产环境中无效或者导致故障更糟糕,那可不是一个让人身在其中倍感愉快的境地。

查看英文原文:Failure Testing of Microservices

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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