写点什么

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

2013 年 12 月 10 日

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

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

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

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

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

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

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

2013 年 12 月 10 日 07:28932
用户头像

发布了 321 篇内容, 共 102.2 次阅读, 收获喜欢 6 次。

关注

评论

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

Swift函数调用逆向分析

ios swift

面试必问系列,源码解析多线程绝对不容忽视得问题:线程活性故障

小Q

Java 学习 架构 面试 多线程

架构训练营-week13-作业1

于成龙

架构训练营

从月薪3K的Java菜鸟,到年薪80W的Java架构师,靠这份文档,让我学习像打怪升级一样简单!

Java架构之路

Java 程序员 架构 面试 编程语言

列举出常见的Java面试题100+,我靠这个在十月拿到了阿里的offer

Java架构之路

Java 程序员 架构 面试 编程语言

如何透彻理解 Redis 核心原理?怎样才能形成 Redis 系统观?

Java架构师迁哥

第四周 系统架构 作业 「架构师训练营 3 期」

feiyun123

极客大学架构师训练营

天猫Java研发岗面经(技术三面):基础+算法+MySQL+Redis+秒杀架构

Java成神之路

Java 程序员 架构 面试 编程语言

炸锅了!国内首本通用源码阅读指定书籍:MyBatis源码详解

周老师

Java 编程 程序员 架构 面经

工厂模式学习

en

golang 设计模式 工厂模式

mybatis一级缓存是啥?5个面试题回答你

田维常

mybatis

某程序员刷完这两份pdf轻松拿下了蚂蚁金服、头条、小米等大厂的offer。

Java成神之路

Java 程序员 架构 面试 编程语言

阿里P8传授给小老弟的Java面试宝典,竟让让小弟也拿到了P8的offer,傻眼了

Java架构之路

Java 程序员 架构 面试 编程语言

智慧城市管理平台,多规合一平台搭建解决方案

t13823115967

智慧城市

可视化指挥调度平台搭建,应急指挥调度监控中心建设方案

t13823115967

可视化 指挥调度

[架构师训练营第 1 期] 第 13 周学习总结

猫切切切切切

极客大学架构师训练营

2020年11月最新分享,我凭借这份pdf拿下了蚂蚁金服、字节跳动等大厂的offer

Java成神之路

Java 程序员 架构 面试 编程语言

第四周 系统架构 学习总结

feiyun123

极客大学架构师训练营

面试阿里被质问:ConcurrentHashMap线程安全吗

Java架构师迁哥

架构师训练营第 13 周作业

netspecial

极客大学架构师训练营

架构师训练营第 13 周课后练习

薛凯

北纬37°的浪漫与理性,穿越千年的信息之变

脑极体

DeFi流动性挖矿系统APP软件开发

开發I852946OIIO

系统开发

7年开发的老油条,你不跳槽怎么涨薪?看我怎么拿到阿里P7offer的

Java成神之路

Java 程序员 架构 面试 编程语言

泡泡玛特市值千亿背后,我们为什么会为盲盒买单?

脑极体

架构师训练营第九周作业

丁乐洪

在wildfly中使用SAML协议连接keycloak

程序那些事

程序那些事 SAML openid SSO wildfly

架构训练营-week13-总结

于成龙

阿里大牛亲自总结整理的一线互联网公司面试真题及面经(阿里、网易、字节)

Java架构之路

Java 程序员 架构 面试 编程语言

字节三面远程,Java+Redis+网络+数据库+算法,轻松反杀面试官?

Java成神之路

Java 程序员 架构 面试 编程语言

LeetCode题解:18. 四数之和,哈希表,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

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