上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2019年AWS云上混沌工程实践之对照实验设计和实施.pdf

编号:97488 PDF 55页 4.50MB 下载积分:VIP专享
下载报告请您先登录!

2019年AWS云上混沌工程实践之对照实验设计和实施.pdf

1、AWS云上混沌工程实践之对照实验设计和实施AWS 资深云架构咨询顾问目录 混沌工程发展历程 混沌工程实验设计方法混沌工程实验目标混沌工程观测指标设计混沌工程故障注入场景混沌工程实验环境考量混沌工程实验工具选型 混沌工程实验示例-无服务器架构 总结混沌工程发展历程天花 天花是一种由天花病毒引起之人类传染病 天花主要透过空气传播 最早的天花在公元前3世纪埃及木乃伊中发现(已死去逾三千年的法老拉美西斯五世)十八世纪的欧洲,估计每年有40万人死亡接种与疫苗最早出现的天花预防法为接种,成功接种的人可建立持久的免疫力,因患上天花而死的机会亦会降低;若失败,接种者会染上天花,并可能将之散播。居住在英格兰郊区

2、的爱德华詹纳医生发现了牛痘(一种对人类较为温和的痘病毒)能用以预防天花。世界卫生组织于1980年正式宣布扑灭天花,使之成为首个于世上绝迹的人类传染病。https:/en.wikipedia.org/wiki/Edward_Jenner疫苗与混沌工程 受控实验,准备故障注入方式(疫苗)将故障(抗原)注入(人体)系统 了解(人体)系统抵御故障(抗原)的行为(产生抗体)真实故障(病菌)发生时,已建立抵御故障(病菌)的能力和信心(消灭)过去当前未来过去当前未来?灾备技术混沌工程韧性系统灾备技术1978 Sungard 至 Mainframe 系列Recovery Point Objective即恢复时

3、间目标,主要指当发生灾难或紧急事件时,业务系统所能容忍的停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。Recovery Time Objective即数据恢复点目标,主要指当发生灾难或紧急事件时,业务系统所能容忍的数据丢失量。RPORTO混沌工程2010年 Kolton Andrus 在 Amazon 内部开发了可用性测试工具 Gremlin2010年 Netflix 内部开发了 AWS 云上随机终止 EC2 实例的混沌实验工具 Chaos Monkey2011年 Netflix 释出了其猴子军团工具集 Simian Army2012年 Netflix 向社区

4、开源由 Java 构建 Simian Army,其中包括 Chaos Monkey V1 版本2014年 Netflix 开始正式公开招聘 Chaos Engineer2014年 Netflix 提出了故障注入测试 FIT,利用微服务架构的特性,控制混沌实验的爆炸半径2015年 Netflix 释出 Chaos Kong,模拟AWS区域中断的场景2015年 Netflix 和社区正式提出混沌工程的指导思想 Principles of Chaos Engineering2016年 Kolton Andrus 创立了 Gremlin,正式将混沌实验工具商用化2017年 Netflix 开源 Cha

5、os Monkey 由 Golang 重构的 V2 版本,集成 CD 工具 Spinnaker 2017年 Netflix 释出 ChAP 混沌实验自动平台,可视为应用故障注入测试 FIT 的加强版2017年 由 Netflix 前混沌工程师撰写的新书“混沌工程”在网上出版2017年 Russell Miles 创立了 ChaosIQ 公司,并开源了 chaostoolkit 混沌实验框架混沌工程实验的设计方法混沌工程实验目标韧性架构冗余性扩展性不可变基础设施无状态应用基础设施即代码避免级联故障转移切换重试退避超时机制幂等操作服务降级拒绝服务服务熔断实验需求和对象(迭代)实验可行性评估观测指标

6、设计实验场景环境设计实验工具平台框架选型实验计划和沟通实验执行指标搜集环境清理与恢复实验结果分析问题追踪流水线集成混沌工程实践混沌工程可行性评估模型混沌工程实验成熟度等级成熟度等级1级2级3级4级5级架构抵御故障的能力无抵御故障的能力一定的冗余性冗余且可扩展已使用可避免级联故障的技术已实现韧性架构实验指标设计无系统指标监控实验结果只反映系统状态指标实验结果反映应用的健康状况指标实验结果反映聚合的业务指标可在实验组和控制组之间比较业务指标的差异实验环境选择只敢在开发和测试环境中运行实验可在预生产环境中运行实验未在生产环境中,用复制的生产流量来运行实验在生产环境中运行实验包括生产在内的任意环境都可

7、以运行实验实验自动化能力全人工流程利用工具进行半自动运行实验自助式创建实验,自动运行实验,但需要手动监控和停止实验自动结果分析,自动终止实验全自动的设计、执行和终止实验实验工具使用无实验工具采用实验工具使用实验框架实验框架和持续发布工具集成工具支持交互式的比对实验组和控制组故障注入场景爆炸半径范围只对实验对象注入一些简单事件,如突发高CPU高内存等等可对实验对象进行一些较复杂的故障注入,如EC2实例终止、可用区故障等等对实验对象注入较高级的事件,如网络延迟对实验组引入如服务级别的影响和组合式的故障事件可注入如对系统的不同使用模式、返回结果和状态的更改等类型的事件环境恢复能力无法恢复正常环境可手

8、动恢复环境可半自动恢复环境部分可自动恢复环境韧性架构自动恢复实验结果整理没有生成的实验结果,需要人工整理判断可通过实验工具的到实验结果,需要人工整理、分析和解读可通过实验工具持续收集实验结果,但需要人工分析和解读可通过实验工具持续收集实验结果和报告,并完成简单的故障原因分析实验结果可预测收入损失、容量规划、区分出不同服务实际的关键程度混沌工程实验接纳指数接纳指数描述1级公司重点项目不会进行混沌工程实验;只覆盖了少量的系统;公司内部基本上对混沌工程实验了解甚少;极少数工程师尝试且偶尔进行混沌工程实验。2级混沌工程实验获得正式授权和批准;由工程师兼职进行混沌工程实验;公司内部有多个项目有兴趣参与混

9、沌工程实验;极少数重要系统会不定期进行混沌工程实验。3级成立了专门的混沌工程团队;事件响应已经集成在混沌工程实验框架中以创建对应的回归实验;大多数核心系统都会定期进行混沌工程实验;偶尔以Game Day的形式,对实验中发现的故障进行复盘验证。4级公司所有核心系统都会经常进行混沌工程实验;大多数非核心系统也都会经常进行混沌工程实验;混沌工程实验是工程师日常工作的一部分;所有系统默认都要参与混沌工程实验,不参与需要特殊说明。具体可行性评估问卷回答可行性评估问题表(基于实验成熟度等级的8个方面)架构抵御故障的能力 实验指标设计 实验环境选择 实验自动化能力 实验工具使用 故障注入场景(爆炸半径范围)

10、环境恢复能力 实验结果整理观测指标的设计 指标类型业务性指标:价值最大,探测难度最大 Netflix SPS 业务指标应用层指标:健康状况基础设施指标:较易获取,只反映基础设施的运行状况 指标对照:应定义指标的稳定状态进行对照如无法准确定义稳定状态,则使用多个指标的阈值联合进行对照 指标观测和记录系统SPS:Netflix关键业务指标Audible 关键业务指标故障注入场景设计故障注入场景具体描述依赖型故障AWS托管服务异常:ELBS3/DynamoDB主机型故障EC2实例异常终止,EC2实例异常关闭,EBS磁盘卷异常卸载,RDS数据库实例故障切换,ElastiCache实例故障切换,操作系统

11、内故障CPU、内存、磁盘空间、IOPS 占满或突发过高占用,大文件,只读系统,系统重启,熵耗散,网络故障网络延迟,网络丢包,DNS解析故障,DNS缓存毒化,VIP移动,网络黑洞,服务层故障不正常关闭连接,进程被杀死,暂停启用进程,内核奔溃,请求拦截型故障异常请求,请求处理延迟,故障注入对象微服务架构无服务器架构单体架构调用链可追踪的单体架构高中低实验工具的选择工具名称最新版本项目维护状态主要构建语言涉及场景特定依赖ChaosMonkey2.0.22016年后不再功能开发Go终止 EC2 实例依赖于SpinnakerSimianArmy2.5.3已退役Java终止EC2实例关闭EC2实例阻断网络

12、流量卸载磁盘卷CPU/IO/磁盘空间突发过高杀进程路由失效DNS失效网络丢包网络延迟DynamoDB故障无特定依赖实验工具的选择工具名称最新版本项目维护状态主要构建语言涉及场景特定依赖orchestrator3.0.14活跃Go纯MySQL集群故障场景无特定依赖kube-monkey0.3.0只发布了一个正式版本Go杀K8S Pods针对K8S集群chaostoolkit1.1.0活跃Python实验框架,可集成多个IaaS或PaaS平台,可使用多个故障注入工具定制场景,可与多个监控平台合作观测和记录指标信息通过插件形式支持多个IaaS/PaaS,包括AWS/Azure/Google/K8SC

13、haoSlingr无正式版本项目停滞成只读状态Python安全注入试验框架,目前只支持端口变更场景依赖于AWSLambdaPowerfulSeal2.0.1活跃Python杀K8S Pods杀容器杀虚拟机支持OpenStack/AWS/本地机器drax0.4.0停滞Go杀Mesos任务支持DC/OS实验工具的选择工具名称最新版本项目维护状态主要构建语言涉及场景特定依赖pod-reaper2.3.0停滞Go杀K8S Pods针对K8S集群muxy0.0.6停滞Go网络代理,模拟网络故障 无特定要求toxiproxy2.1.4活跃Go网络代理,模拟网络故障 无特定要求Pumba0.6.3活跃Go杀

14、停删容器暂停容器内进程网络延迟网络丢包网络带宽限流依赖于Dockerblockade0.4.0停滞Python杀容器网络终端网络延迟网络丢包网络分区依赖于Dockerchaos-lambda0.3.0停滞Python杀自动伸缩组的EC2实例依赖于Lambda实验工具的选择工具名称最新版本项目维护状态主要构建语言涉及场景特定依赖namazu0.2.1停滞Go文件系统故障网络故障Java功能调用故障针对类Zookeeper分布式系统chaos-monkey-spring-boot2.0.2活跃Java应用延迟异常处理内存过高依赖于SpringBoot框架byte-monkey1.0.0停滞Java

15、异常处理应用延迟依赖于JavaGomJabbar无正式版本发布停滞Java优雅粗暴关闭实例无害远程执行命令流量控制依赖于RunDeck或Ansibleturbulence0.8停滞Go杀虚拟机CPU/RAM/IO过高网络分区网络丢包网络延迟依赖于BOSHchaosblade0.0.2活跃Go实验框架,目前支持JVM 无特定依赖Gremlin自动化平台实验环境的设计和准备风 险模拟生产流量真实生产流量分支生产环境测试环境开发环境混沌工程实验示例无服务架构的挑战 无服务器架构的函数数量庞大 每个函数都要正确配置和安全控制 无服务器架构引入大量的托管中间件服务每种托管的中间件服务都有自己特有的故障模

16、式托管特性,用户无法管控故障发生时,用户可以做的事非常有限选定故障场景不合理的超时设置观测指标 响应的延迟时间 差错统计 完成请求响应的百分比场景:超时设置超时设置方案实验环境爆炸半径分析爆炸半径分析爆炸半径分析爆炸半径分析注入细节注入细节注入细节注入细节注入配置未注入时注入后工具代码总结与展望混沌工程实验目标韧性架构冗余性扩展性不可变基础设施无状态应用基础设施即代码避免级联故障转移切换重试退避超时机制幂等操作服务降级拒绝服务服务熔断实验需求和对象(迭代)实验可行性评估观测指标设计实验场景环境设计实验工具平台框架选型实验计划和沟通实验执行指标搜集环境清理与恢复实验结果分析问题追踪流水线集成混沌工程实践混沌工程实验最佳实践成熟度等级5级架构抵御故障的能力实现韧性架构实验指标设计可在实验组和控制组之间比较业务指标的差异实验环境选择包括生产在内的任意环境都可以运行实验实验自动化能力全自动的设计、执行和终止实验实验工具使用工具支持交互式的比对实验组和控制组故障注入场景爆炸半径范围可注入如对系统的不同使用模式、返回结果和状态的更改等类型的事件环境恢复能力韧性架构自动恢复实验结果整理实验结果可预测收入损失、容量规划、区分出不同服务实际的关键程度

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2019年AWS云上混沌工程实践之对照实验设计和实施.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部