写点什么

ChaosConf 2018:混沌实验的演变

  • 2018-10-14
  • 本文字数:1130 字

    阅读完需:约 4 分钟

在美国旧金山举行的首届 ChaosConf 大会上,Kolton Andrus 做了一个有关混沌实验在过去八年中如何演变的演讲。他认为,与处理故障有关的人力和组织方面的内容不应该被忽略,并建议工具应该支持应用程序和请求级别的故障注入测试,以便最小化潜在的故障影响范围。

Andrus 是 Gremlin 的首席执行官,他通过谈论混沌实验在行业内的演变拉开了活动的帷幕。他将“level 0”实验视为为云端的主机故障做准备。这需要较低的成熟度,而且通常需要使用诸如 Chaos Monkey 之类的工具将主机故障随机地注入到系统中。随着实践的成熟,“level 1”和“level 1.5”实验的实现变得训练有素,并且将额外的重点放在试验网络故障上。这需要网络专业知识和更高级的运营成熟度。

与处理故障有关的人力和组织方面的内容也成为 level 1.5 的一个焦点。这里的实验通常是通过“游戏日”来实现的,这些游戏日提供了训练机会,并模拟故障,以便观察人们在真实情况下的反应。Andrus 警告说,并非所有组织都认识到发展组织应对故障能力和对员工进行适当训练的价值:

我工作过的很多公司在进行轮班待命训练时,摆出一副“这里是你的寻呼机和仪表盘——祝你好运”的姿态。这是不可接受的。

接下来,Andrus 表示,主机测试和基于 OSI Layer 3 和 Layer 4 的网络测试对于很多想要运行混沌实验的组织来说是不够的,因为需要更精细的粒度来限制影响并安全地测试应用程序。他说,“运营人员通常考虑的是请求级别的东西”,为了使用请求级别的数据和元数据来选择性地控制测试和实验,工具需要知道应用级别( Layer 7 )的东西。

在这个时候,Andrus 宣布了 Gremlin 的新应用级故障注入(ALFI)产品。ALFI 支持“level 2”的实验。这是通过在系统中指定“坐标”并匹配针对一组目标运行的实验来实现的。坐标包括应用程序的关注点,例如用户标识符或 A/B 测试,以及平台的关注点,例如服务或地理区域。工程师还可以使用自定义实现来定义自己的坐标。

在演讲结束时,Andrus 总结说,有针对性的坐标可以用来最小化实验的潜在影响范围,并且可以在不干扰整个系统的情况下重现生产环境的中断。应该以迭代的方式安全地扩展实验:

  1. 使用测试用户或设备验证用户体验;
  2. 运行 1%的流量,对影响进行评估;
  3. 运行 10%的流量;
  4. 扩展到 25%、50%、100%。

也可以使用类似的模式来重现中断:

  1. 发生中断时,请假设一个原因;
  2. 创建一个针对单个测试用户的实验;
  3. 以测试用户身份登录并加载页面或应用程序;
  4. 找到日志或证据并验证假设;
  5. 创建拉取请求以修复问题。

有关首届 ChaosConf 的详细信息可以在大会网站上找到,演讲的录像可以在 Gremlin 的 YouTube 频道“ ChaosConf 2018 ”中找到。

查看英文原文 An Evolution of Chaos Experimentation: Kolton Andrus at ChaosConf 2018

2018-10-14 19:001331
用户头像

发布了 731 篇内容, 共 462.7 次阅读, 收获喜欢 2005 次。

关注

评论

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

如何学习区块链技术

比特币 区块链 以太坊

菩萨蛮·记游(二)

轩辕御龙

工作时间都去哪儿了?

伯薇

效率 时间管理 个人提升 团队

Ledge:这可能是距今最好的『DevOps + 研发效能』知识平台

Phodal

DevOps 敏捷开发 软件开发 研发效能

开发机直连Docker中的redis容器小案例

麦洛

redis Docker

从翻译到本地化:我在Airbnb做本地化经理的经历

葛仲君

产品 翻译 Airbnb 本地化 全球化

B站、Quora、InfoQ,哪个的阅读/播放量会先到10W+?

赵新龙

写作平台 B站 Quora

Istio 1.5:对开发人员有什么帮助?

麦洛

云原生 istio servicemesh

初入响应式编程(下)

CD826

spring 微服务 响应式编程 reactor

redis数据结构介绍三-第三部分 整数集合

Nick

redis 源码 数据结构 源码分析 算法

Make Tmux Great Again

ccx

tmux

记游(四)

轩辕御龙

音视频已强势崛起,我们该如何快速入门音视频技术?

音视频专家-李超

音视频 WebRTC ffmpeg 在线教育

多人实时互动之各WebRTC流媒体服务器比较

音视频专家-李超

音视频 WebRTC 在线教育 mediasoup janus

Java并发编程系列——Fork-Join

孙苏勇

Java Java并发 并发编程 线程

Netty系列之源码解析(一)

猿灯塔

Netty

MySQL死锁与Spring事务

Dean

MySQL

redis数据结构介绍二-第二部分 跳表

Nick

redis 源码 数据结构 源码分析 算法

忆秦娥·记游(三)

轩辕御龙

最通俗易懂的H264基本原理

音视频专家-李超

音视频 WebRTC ffmpeg H264

废掉一个人最好的办法是让他忙到没有时间思考

熊斌

程序员 职场 思考

Django 中如何优雅的记录日志

AlwaysBeta

Python django Web 后端

要不要重新认识一下递归与迭代?

西了意

编程

没有永恒的技术,只有适合的技术

MavenTalker

技术 个人成长 职业规划

西江月·记游(一)

轩辕御龙

格局不行,有机会也抓不住

池建强

创业 格局 MacTalk

广告与数据算法系列1.1.1: 什么是广告

黄崇远@数据虫巢

互联网 算法 广告

回"疫"录(6):致敬最美逆行者

小天同学

疫情 回忆录 现实纪录 纪实 创新突破

C++数组可以为变量吗

泰伦卢

c++ 互联网 编程语言

Flink Weekly | 每周社区动态更新

Apache Flink

大数据 flink 流计算 实时计算

程序员陪娃漫画系列——排队问题

孙苏勇

程序员 生活 陪伴 漫画

ChaosConf 2018:混沌实验的演变_服务革新_Daniel Bryant_InfoQ精选文章