写点什么

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

评论

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

YashanDB的生态体系及其未来发展方向

数据库砖家

YashanDB的维护与优化技巧:延长系统生命周期

数据库砖家

YashanDB的用户权限管理,如何保障数据安全?

数据库砖家

YashanDB监控与运维工具,保障数据库健康运行

数据库砖家

Nexpose 8.13.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

YashanDB的独特特性吸引了哪些开发者?

数据库砖家

YashanDB的集群配置:提升可用性的策略

数据库砖家

YashanDB的系统维护与管理需要哪些技术底蕴?

数据库砖家

YashanDB的用户体验:如何改善用户交互设计?

数据库砖家

YashanDB面向云计算平台的数据库优化方案

数据库砖家

6月 | 塞讯模拟攻击库更新汇总

塞讯科技

安全验证

Java 高手修炼秘籍:超实用AI工具合集助你快速提升

飞算JavaAI开发助手

YashanDB的编码规范与最佳实践分享

数据库砖家

YashanDB的用户角色管理技巧:保障数据安全

数据库砖家

YashanDB的用户界面设计如何提升操作效率

数据库砖家

一天助你成为Java开发高手,只需做对这件事

飞算JavaAI开发助手

业务提效超5倍,转化率翻番!AI+MCP 如何重塑个性化投资诊断优化报告

盈米AI开放平台

基金 AI 智能体 MCP

飞算 JavaAI:电商需求分析的精准导航仪

飞算JavaAI开发助手

破解大模型运维落地困局 | GOPS大会博睿数据“AI+可观测加速智能运维转型升级”演讲实录

博睿数据

YashanDB自定义报表功能使用指南

数据库砖家

YashanDB读写分离配置教程,优化数据库访问效率

数据库砖家

YashanDB的版本升级流程,确保平稳过渡

数据库砖家

云原生机密计算新范式 PeerPods技术方案在阿里云上的落地和实践

阿里云基础软件

容器化 ACK Alibaba Cloud Linux PeerPods

飞算 JavaAI 护航电商开发:打造安全无虞的线上购物王国

飞算JavaAI开发助手

通义灵码软件工程大模型获顶会最高奖!

阿里巴巴云原生

阿里云 通义灵码

通义灵码软件工程大模型获顶会最高奖!

阿里云云效

阿里云 通义灵码

【7 月 5 日北京】倒计时 2 天神秘视频公开,大会内容终极剧透

Apache IoTDB

用好索引的10条军规

量贩潮汐·WholesaleTide

Java 数据库

飞算科技:国家级高新技术企业

飞算JavaAI开发助手

数智先锋 | Bonree ONE 赋能雅砻江水电构建端到端全链路可观测体系

博睿数据

YashanDB的配置管理与版本控制方法

数据库砖家

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