速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

AWS 开源混沌工程工具 AWSSSMChaosRunner

  • 2020-09-30
  • 本文字数:1021 字

    阅读完需:约 3 分钟

AWS开源混沌工程工具AWSSSMChaosRunner

AWS 的工程师们最近写了一篇文章,介绍了一个叫作 AWSSSMChaosRunner 的开源混沌工程工具,他们用它来测试 Prime Video 的故障注入。这个工具使用 AWS Systems Manager 构建,可以在 EC2 实例上执行任意命令,团队可以用它缓解与延迟相关的问题。


AWSSSMChaosRunner 是使用 AWS Systems Manager 构建的,用于针对一组特定的 EC2 实例远程执行命令。通过声明方式指定的命令集合创建了一组注入错误。


Prime Video 软件工程师 Varun Jewalikar 和 AWS 首席开发者(架构)布道师 Adrian Hornsby 写道,典型的混沌工程实验包括模拟资源耗尽和缓慢的网络。对于这样的场景有一些对策,但“它们很少得到充分测试,因为单元测试或集成测试通常不能充分验证它们”。


AWS Systems Manager是一个工具,可以通过一个叫作SSM Agent的代理组件跨 AWS 资源执行各种运维任务。默认情况下,代理被预先安装在某些 Windows 和 Linux AMI 上——它们也有“文档”的概念,类似于可以执行的 Runbook。它还可以执行简单的 shell 脚本,AWSSSMChaosRunner 就是利用了这个特性。SSM 的 SendCommand API 允许跨多个实例执行命令,这些实例可以通过 AWS 标记来过滤。CloudWatch 可以用于在一个地方查看来自所有实例的日志。


安全方面的问题由代理负责,比如创建在 EC2 实例上执行的用户。AWSSSMChaosRunner 可以做的事情包括在一个特定端口上悄悄地中断所有传出的 TCP 流量、在一个接口上引入网络延迟、占用 CPU,等等。需要注意的是,当前支持的故障注入要么是在基础设施上,要么是在 AWS 服务层上。


AWSSSMChaosRunner 源自一组SSM文档,这些文档与将故障注入 AWS 资源有关。根据文中所写,在使用标准 SSM Agent API 执行文档之后,负载生成组件根据应用程序模拟真实的流量。AWSSSMChaosRunner 也可以用于 ECS,但不能用于 Lambda,因为后者是一个完全托管的服务。还有其他方法可以在 AWS Lambda 中进行故障注入。


Prime Video 背后使用了 AWS 服务,它利用 AWSSSMChaosRunner 来测试依赖服务出现高延迟时的性能。Jewalikar 和 Hornsby 提到,AWSSSMChaosRunner 助他们修复了 Elasticache 超时配置的一个 bug。


还有其他可用于执行混沌工程实验的库,早期的一个库是 Netflix 的Chaos Monkey。其他公司也开发了自己的框架,比如 LinkedIn 的Waterbear项目和 Twitter 的Python库Gremlin公司还提供了故障注入服务。


AWSSSMChaosRunner 的源代码可以在 GitHub 上找到。


原文链接


An Open Source Chaos Engineering Library from AWS


2020-09-30 10:321775

评论

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

甲方日常 55

句子

工作 随笔杂谈 日常

一个隐藏在方法集和方法调用中且易被忽略的小细节

Gopher指北

后端 Go 语言

iOS AOP 方案的对比与思考

GrowingIO技术专栏

ios aop

架构师训练营第 1 期 第 9 周作业

李循律

极客大学架构师训练营

字节跳动内部授课课件:附图讲解MySQL底层索引结构算法实现

小Q

Java MySQL 学习 编程 面试

一次浪费时间的面试

escray

程序员 面试 面经

上周我面了个三年 Javaer,这几个问题都没答出来

yes

面试 RPC HTTP

奉劝各位Java工程师都要学习这份阿里内部绝密《百亿级并发系统设计》实战教程,大厂面试官可“不讲武德”!

Java架构之路

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

区块链加持,鉴定溯源双保险,科技赋能茅台老酒成零售数字化标杆

CECBC

区块链 大数据 防伪溯源

高速二维码报警定位系统开发,智能报警系统

13530558032

一位Java程序员在上家公司CRUD了3年,金九银十想要跳槽面试却屡屡碰壁,感觉很迷茫!网友:这是你安逸太久技术能力跟不上了!

Java架构之路

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

为什么你的“开发速度”和“产品性能”,都比不过竞品?丨开发者必读

葡萄城技术团队

迁移到 Atlassian Data Center 并没有您想象的那么可怕

Atlassian

负载均衡 高可用 Atlassian Jira

第十周作业

Geek_4c1353

极客大学架构师训练营

《码出高效:Java开发手册》,每一位想要成为优秀开发工程师的程序员必须要看的一本小册!

Java架构之路

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

贼好用,冰河开源了这款精准定时任务和延时队列框架!!

冰河

redis 中间件 消息队列 延时队列 Zset

乘上这艘“智能体”之舟,即刻前往智慧未来

脑极体

MySQL选错索引导致的线上慢查询事故

Zhendong

Java MySQL

第九周 性能优化(三)总结

蓝黑

极客大学架构师训练营

五年Java开发经验,裸辞准备半月面试阿里,阿里巴巴却“不讲武德”,居然面了我7轮,历经千辛万苦终于斩获P7及Offer

Java架构之路

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

新图灵测试背后,智能交互点燃了哪些产业可能性?

脑极体

架构设计:高并发读取,高并发写入,并发设计规划落地方案思考

互联网应用架构

高并发读,高并发写

《华为数据之道》读书笔记:序言

方志

数据中台 数字化转型 数据治理

JVM Metaspace内存溢出排查与总结

Java老k

Java OOM 内存溢出 metaspace

数字货币将使货币政策实施更精准有效

CECBC

数字货币

Java踩坑记系列之线程池

Java老k

Java 线程池

数字货币步伐加快,苏州将于双十二推出数字人民币红包测试

CECBC

数字人民币

“新鲜出炉”阿里面试终极指南V3.0,符合一线大厂面试点需求

小Q

Java 学习 编程 架构 面试

区块链赋能医疗行业,区块链医疗应用场景开发

13530558032

Python进阶——如何正确使用魔法方法?(下)

Kaito

Python

字节面试数据结构与算法:B+树的删除和插入,不够详细你打我

小Q

Java MySQL 学习 面试 算法

AWS开源混沌工程工具AWSSSMChaosRunner_服务革新_Hrishikesh Barua_InfoQ精选文章