BT

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

PagerDuty实现弹性测试不需要Simian Army

| 作者 Manuel Pais 关注 9 他的粉丝 ,译者 孙镜涛 关注 2 他的粉丝 发布于 2013年12月11日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

来自于PagerDutyDoug Barth在伦敦的DevOps日上谈论了他们是如何在前期没有投入大量自动化努力的情况下开始弹性化测试自己的系统的。他们的目标是快速地了解错误点,然后每周拿出一个小时的时间公开讨论如何解决这些错误。

在PagerDuty,自动化错误测试要实现和Netflix著名的Simian Army同样的覆盖范围是不可能的,原因是他们的多云环境以及自己所投资的内部自动化工具对最初结果的延迟。因此他们选择了人工的失败测试方法,绰号为“失败的周五(Failure Friday)”。该方法的内容就是每周五拿出一个小时的时间来设法制定一个“攻击(attacks,引发失败的问题)”列表,同时检查“受害者(victim,被测试的系统)”是如何反应的。

在攻击期间,系统会被恢复到正常的工作状态。如果系统被破坏的很严重,那么攻击就会停止,例如在失败之后发送给受害者的请求不会被其他的服务实例获得。在这种情况下,会话会被停止同时系统会被人工地恢复。下一个周五会对永久性的修复进行测试。否则的话攻击就会持续,直到长达一个小时的会话结束。

攻击策略很多,从快速失败的模拟(例如停止一个Cassandra数据库实例或者重新启动一个服务器实例)到更复杂的网络隔离(配置错误的IP表丢失进入一个特定端口的包)或者运行缓慢节点(使用netem的网络仿真)的模拟。

解决系统中的问题同时提高大家需要对错误进行处理和测试的意识是这样做的一些可预期的好处。但是Doug还强调了一些意想不到的好处,例如在发现了暴露的问题并理解了引发失败的原因之后,我们就能够减轻增加新的随叫随到的人(开发或者运维人员)的压力,这与等到不会引发错误的那些很有可能会过时或者不精确的理论知识截然相反。另一个计划之外的收益是,这样能够揭露模拟组件失败的困难,进而导致系统架构产生提高整体可测试性的变化。

Doug提到,在实际的组织中保持日志和操作时间、发现和跟踪问题以及分享仪表盘和指标的重要性。他还推荐大家在会话期间不要关闭警报,因为这样不仅能够检查监控是否在按照预期正常运行;同时还能够将攻击会话通知所有人,避免引发的错误导致警报升级。

查看英文原文Testing Resiliency at PagerDuty Without a Simian Army

评价本文

专业度
风格

您好,朋友!

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