写点什么

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:321834

评论

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

招商蛇口重塑客户经营新思路,推动多业态融合升级

科技热闻

WorkPlus统一门户:企业信息互通,实现业务协作

BeeWorks

快慢缓急总相宜|ONES 人物

万事ONES

教你用 ECharts 轻松做一个Flappy Bird小游戏

华为云开发者联盟

图表 eCharts 图表库 Flappy Bird 小游戏

JavaScript数据类型

源字节1号

软件开发 前端开发 后端开发 小程序开发

Docker下的OpenResty三部曲之一:极速体验

程序员欣宸

Docker 5月月更 openrestry

为什么前端不能没有监控系统?

杨成功

大前端 构架 5月月更

一文,教你打造员工生命周期解决方案

Authing

单点登录 零信任 数据泄露 B2E 元气森林

ironSource 推出 Luna Views,通过定制化数据面板呈现多渠道广告效果

Geek_2d6073

“可严可仁”的考勤系统,让数字化不漏掉人性化

明道云

Java遇上SPL:架构优势和开发效率,一个不放过

华为云开发者联盟

Java stream 应用架构 SPL 结构化数据处理

智能运维应用之道,告别企业数字化转型危机

云智慧AIOps社区

大数据 监控 数字化转型 智能运维 自动化运维

李东山——如何让OpenHarmony支持低功耗蓝牙芯片GR551x

OpenHarmony开发者

OpenHarmony 低功耗蓝牙芯片

如何使用 Authing 单点登录,集成 Discourse 论坛?

Authing

低代码 单点登录 Idaas 应用集成方案 Discourse

WordPress 主题和插件

海拥(haiyong.site)

WordPress 5月月更

解构HE2E中的Kubernetes技术应用

华为云开发者联盟

Docker Kubernetes DevOps HE2E CCE部署

C语言-strlen和sizeof强化习题练习- I

芒果酱

c++ C语言 5月月更

程序员转型产品经理:懂技术或许是把双刃剑!

博文视点Broadview

作业帮在线业务 Kubernetes Serverless 虚拟节点大规模应用实践

阿里巴巴云原生

阿里云 云原生 客户案例 作业帮 Kubernetes Serverless

Go 学习笔记——函数篇一

为自己带盐

Go 5月月更

druid源码学习二-对锁的理解

Nick

java 并发 lock锁

2022年记一次慢查询优化指南,MySQL 优化学习第9天

梦想橡皮擦

5月月更

C语言_字符串与指针的练习

DS小龙哥

5月月更

下个十年高性能 JSON 库来了:fastjson2!

王磊

Java

SaaS到底是什么?如何做?

小炮

SaaS

PingCAP 宣布 TiDB Cloud 正式商用,助力全球企业在云上构建新一代云原生应用

Geek_2d6073

uni-app技术分享| uni-app转小程序-实时消息

anyRTC开发者

小程序 uni-app 音视频 实时消息 呼叫邀请

网站开发进阶(五十五)CSS padding、margin 属性

No Silver Bullet

5月月更 padding magin

网站开发进阶(五十玖)css实现背景透明,文字不透明

No Silver Bullet

CSS 5月月更

浅述容器和容器镜像的区别

汪子熙

Docker 容器 容器镜像 虚拟化技术 5月月更

队列同步器AQS

急需上岸的小谢

5月月更

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