Chaosblade:云原生架构下的混沌工程实践课件_第1页
Chaosblade:云原生架构下的混沌工程实践课件_第2页
Chaosblade:云原生架构下的混沌工程实践课件_第3页
Chaosblade:云原生架构下的混沌工程实践课件_第4页
Chaosblade:云原生架构下的混沌工程实践课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自我介绍ChaosBlade:

云原生架构下的混沌工程探索与实践肖长军阿里巴巴技术专家自我介绍ChaosBlade:云原生架构下的混沌工程探索1自我介绍肖长军,花名穹谷,阿里巴巴高可用架构团队多年应用性能监控研发和分布式系统高可用架构经验阿里云AHAS、APDS

产品核心开发开源项目ChaosBlade

负责人混沌工程布道师自我介绍肖长军,花名穹谷,阿里巴巴高可用架构团队2自我介绍目录混沌实验工具

ChaosBlade面向云原生的混沌工程实践混沌实验平台

AHAS

Chaos自我介绍目录混沌实验工具ChaosBlade3自我介绍阿里巴巴混沌工程演进2012EOS ୩୧ׁᩢ2012ݶउ਻ᅒ ෙᗑᄍᕞ2018ACP2016MonkeyKing ඳᵑᄍᕞ2015ᡡ!ᡡ!ᡡ! ୑ࣈग़ၚ20192018لํԯ $+$62019ӫํԯ

Ⴐငਫḵଘݣ自我介绍阿里巴巴混沌工程演进2012EOS ୩୧ׁᩢ20124自我介绍ChaosBlade

开源的背景上手难度大难于控制爆炸半径使用方式不统一平台适配难度大缺少实验模型场景难于沉淀缺少场景规范很难扩展场景能力分散自我介绍ChaosBlade开源的背景上手难度大难于控制5自我介绍ChaosBlade

的定位与特点ChaosBlade(混沌之刃)是一款遵循混沌实验模型,简单易用,功能强大的混沌实验工具Github地址:/chaosblade-io/chaosblade场景丰富度高使用简洁,易于理解动态加载,无侵入场景扩展方便自我介绍ChaosBlade的定位与特点ChaosBlad6自我介绍ChaosBlade

的基石-混沌实验模型实验靶点:实验的组件实验范围:集群、机器、Pod规则匹配器:匹配条件实验行为:具体执行的实验规则TargetScopeMatcherAction简洁,层次清晰通俗易懂四层,边界清晰通用,覆盖目前所有故障场景基础资源、应用、容器或

serverless

架构易实现,实验场景共建简单定义清晰的接口规范语言、领域无关可以扩展多语言、多领域实现自我介绍ChaosBlade的基石-混沌实验模型实验靶点:7自我介绍ChaosBlade

丰富的实验场景基础资源应用服务容器服务云平台chaosblade-exec-oschaosblade-exec-jvmchaosblade-exec-cpluschaosblade-exec-nodejschaosblade-exec-golangchaosblade-exec-dockerchaosblade-exec-k8schaosblade-exec-aliyunchaosblade-exec-awskubernetes…ECSOSSFC…rocketmq/notifydubbo/hsf/httpService

Mesh网关监控度量分布式跟踪分布式事务消息RPC

框架服务发现缓存熔断限流定时任务web容器数据库语言本身druid/tddl/mysql/postgresqlnacostair/redissentinelquartzservletdubbo/hsfscgatewayprometheuseagleeyeseataCPU

负载、内存占用、网络延迟/丢包/阻塞、杀进程、宕机、重启、磁盘填充、IO

Hang、IO

burn、shell脚本调用延迟、异常、超时打标识别投递延迟、异常、超时、重发调用延迟、异常、超时调用延迟、异常、超时、修改返回值限流失效、异常请求延迟、异常连接池满、调用延迟、异常动态脚本能力(java&groovy),内存溢出,进程

CPU负载,指定类和方法做延迟、异常、修改返回值、修改参数同基础资源场景、删、停容器杀

POD、停止

POD、kubelet

异常、断网、删容器、容器服务异常、etcd异常等;容器内应用进程、基础资源场景自我介绍ChaosBlade丰富的实验场景基础资源应用服务8自我介绍ChaosBlade

简洁易用完善的命令提示CLI

方式执行 Web

方式执行自我介绍ChaosBlade简洁易用完善的命令提示CLI9自我介绍ChaosBlade

整体架构设计开箱即用,无需安装支持命令提示所有变量参数化所有参数规范化模块化,支持动态扩展对象化,方便管理基础资源演练执行器…K8s演练执行器命令初始化Yaml解析器模型实现解析器CLI

命令转换器命令注册(Cobra)实验模型对象NameDescNoArgsRequeiredNameShortDescLongDescExampleActionsFlagsPreExecutorNameShortDescLongDescExampleMatchersFlagsExecutor解析JavaYamlJava执行器C++YamlC++执行器……自我介绍ChaosBlade整体架构设计开箱即用,无需安装10自我介绍ChaosBlade

实践案例bladecreatemysql

delay--time

600--database

demo--table

d_discount--sqltype

select--effect-percent

50实验场景:数据库调用延迟监控指标:慢

SQL

数,告警信息期望假设:慢

SQL

数增加,钉钉群收到慢SQL

告警混沌实验:对

demo-provider

注入调用

mk-demo数据库延迟故障监控指标:慢

SQL

数增加,钉钉群收到告警问题排查:通过

ARMS

慢调用链路排查备注:应用架构拓扑图来自于阿里云

AHAS

产品告警和链路跟踪来自于阿里云

ARMS

产品自我介绍ChaosBlade实践案例bladecreat11自我介绍ChaosBlade

实践案例实验场景:数据库调用延迟监控指标:慢

SQL

数,告警信息期望假设:慢

SQL

数增加,钉钉群收到慢SQL

告警混沌实验:对

demo-provider

注入调用

mk-demo数据库延迟故障监控指标:慢

SQL

数增加,钉钉群收到告警问题排查:通过

ARMS

慢调用链路排查备注:应用架构拓扑图来自于阿里云

AHAS

产品告警和链路跟踪来自于阿里云

ARMS

产品自我介绍ChaosBlade实践案例实验场景:数据库调用延12自我介绍混沌工程的价值流程人员验证系统的高可用性-架构师提升故障的应急效率-开发&运维提早暴露线上问题,降低故障复发率-测试提升用户体验-产品&设计系统韧性-提升系统容错、容灾能力基础能力-具备可监控、可灰度、可回滚运维高可用-提升监控运维系统的高可用能力故障应急-故障等级划分的合理性,联系人的有效性,紧急预案的可行性故障复盘,故障统计,问题持续演练验证-故障管理自我介绍混沌工程的价值流程人员系统故障应急-故障等级划分的合13自我介绍云原生时代下,混沌工程的价值是什么?自我介绍云原生时代下,混沌工程的价值是什么?14自我介绍云原生架构下的稳定性挑战云设施微服务容器服务网格Serverless自我介绍云原生架构下的稳定性挑战云设施微服务容器服务网格Se15自我介绍云原生时代下,通过混沌工程推进“云原生”化自我介绍云原生时代下,通过混沌工程推进“云原生”化16自我介绍面向云原生场景的ChaosBlade

实现方案ChaosBlade

CRChaosBladeOperatorPodContainerChaosBladeVolumeChaosBladePodChaosBladeNodeapiVersion:chaosblade.io/v1kind:

ChaosBlademetadata:name:

cpu-loadspec:experiments:-scope:

nodetarget:cpuaction:

loaddesc:“cpu50%

load”flags:-name:

cpu-percentvalue:

“50”applyscope:

nodescope:

containerscope:

podmountsidecar声明式实验场景配置自我介绍面向云原生场景的ChaosBlade实现方案Cha17自我介绍面向云原生架构的ChaosBlade

实践案例实验场景:随机删除业务

Pod,验证业务的稳定性监控指标:业务指标和

Pod数期望假设:业务不受影响,Pod

副本数在预期之内混沌实验:随机删除包含system=demo

标签的Pod,同类

Pod

删除数量为1验证结果:业务受影响,不符合预期apiVersion:chaosblade.io/v1kind:

ChaosBlademetadata:name:random-delete-podsspec:experiments:

scope:podtarget:podaction:

deletedesc:“deletebusinesspods

randomly”flags:

name:modevalue:

randomname:

countvalue:

“1”Matchers:name:

selectorvalue:

“system=demo”

name:

groupKeyvalue:

“app”自我介绍面向云原生架构的ChaosBlade实践案例实验场18自我介绍混沌实验平台AHAS

Chaos自我介绍混沌实验平台AHASChaos19自我介绍AHAS

Chaos

平台设计理念集成&被集成操作简洁编排灵活专家经验自我介绍AHASChaos平台设计理念集成&被集成操作简20自我介绍AHAS

Chaos

平台架构设计上层业务平台模块流程引擎底层能力基础设施日常演练突袭演练攻防演练资损演练上云演练…权限管理机器集群管理应用管理标签管理演练空间演练管理演练运行演练通知演练推荐演练计划场景分类场景检索场景扩展场景配置演练报表流程编排流程执行节点扩展小程序ChaosBlade应用高可用服务

AHAS阿里云

ACK自建的

Kubernetes阿里云

ECS非

ECS自我介绍AHASChaos平台架构设计上层业务平台模块流21自我介绍面向云原生架构的AHAS

Chaos

实践案例实验场景:调用数据库延迟,验证

Pod的水平扩容能力监控指标:业务

RT

和Pod数期望假设:业务

RT

会短暂的升高,但很快恢复混沌实验:对指定的业务

Pod做数据库端口访问延迟自我介绍面向云原生架构的AHASChaos实践案例实验场22自我介绍自我介绍23自我介绍ChaosBlade:

云原生架构下的混沌工程探索与实践肖长军阿里巴巴技术专家自我介绍ChaosBlade:云原生架构下的混沌工程探索24自我介绍肖长军,花名穹谷,阿里巴巴高可用架构团队多年应用性能监控研发和分布式系统高可用架构经验阿里云AHAS、APDS

产品核心开发开源项目ChaosBlade

负责人混沌工程布道师自我介绍肖长军,花名穹谷,阿里巴巴高可用架构团队25自我介绍目录混沌实验工具

ChaosBlade面向云原生的混沌工程实践混沌实验平台

AHAS

Chaos自我介绍目录混沌实验工具ChaosBlade26自我介绍阿里巴巴混沌工程演进2012EOS ୩୧ׁᩢ2012ݶउ਻ᅒ ෙᗑᄍᕞ2018ACP2016MonkeyKing ඳᵑᄍᕞ2015ᡡ!ᡡ!ᡡ! ୑ࣈग़ၚ20192018لํԯ $+$62019ӫํԯ

Ⴐငਫḵଘݣ自我介绍阿里巴巴混沌工程演进2012EOS ୩୧ׁᩢ201227自我介绍ChaosBlade

开源的背景上手难度大难于控制爆炸半径使用方式不统一平台适配难度大缺少实验模型场景难于沉淀缺少场景规范很难扩展场景能力分散自我介绍ChaosBlade开源的背景上手难度大难于控制28自我介绍ChaosBlade

的定位与特点ChaosBlade(混沌之刃)是一款遵循混沌实验模型,简单易用,功能强大的混沌实验工具Github地址:/chaosblade-io/chaosblade场景丰富度高使用简洁,易于理解动态加载,无侵入场景扩展方便自我介绍ChaosBlade的定位与特点ChaosBlad29自我介绍ChaosBlade

的基石-混沌实验模型实验靶点:实验的组件实验范围:集群、机器、Pod规则匹配器:匹配条件实验行为:具体执行的实验规则TargetScopeMatcherAction简洁,层次清晰通俗易懂四层,边界清晰通用,覆盖目前所有故障场景基础资源、应用、容器或

serverless

架构易实现,实验场景共建简单定义清晰的接口规范语言、领域无关可以扩展多语言、多领域实现自我介绍ChaosBlade的基石-混沌实验模型实验靶点:30自我介绍ChaosBlade

丰富的实验场景基础资源应用服务容器服务云平台chaosblade-exec-oschaosblade-exec-jvmchaosblade-exec-cpluschaosblade-exec-nodejschaosblade-exec-golangchaosblade-exec-dockerchaosblade-exec-k8schaosblade-exec-aliyunchaosblade-exec-awskubernetes…ECSOSSFC…rocketmq/notifydubbo/hsf/httpService

Mesh网关监控度量分布式跟踪分布式事务消息RPC

框架服务发现缓存熔断限流定时任务web容器数据库语言本身druid/tddl/mysql/postgresqlnacostair/redissentinelquartzservletdubbo/hsfscgatewayprometheuseagleeyeseataCPU

负载、内存占用、网络延迟/丢包/阻塞、杀进程、宕机、重启、磁盘填充、IO

Hang、IO

burn、shell脚本调用延迟、异常、超时打标识别投递延迟、异常、超时、重发调用延迟、异常、超时调用延迟、异常、超时、修改返回值限流失效、异常请求延迟、异常连接池满、调用延迟、异常动态脚本能力(java&groovy),内存溢出,进程

CPU负载,指定类和方法做延迟、异常、修改返回值、修改参数同基础资源场景、删、停容器杀

POD、停止

POD、kubelet

异常、断网、删容器、容器服务异常、etcd异常等;容器内应用进程、基础资源场景自我介绍ChaosBlade丰富的实验场景基础资源应用服务31自我介绍ChaosBlade

简洁易用完善的命令提示CLI

方式执行 Web

方式执行自我介绍ChaosBlade简洁易用完善的命令提示CLI32自我介绍ChaosBlade

整体架构设计开箱即用,无需安装支持命令提示所有变量参数化所有参数规范化模块化,支持动态扩展对象化,方便管理基础资源演练执行器…K8s演练执行器命令初始化Yaml解析器模型实现解析器CLI

命令转换器命令注册(Cobra)实验模型对象NameDescNoArgsRequeiredNameShortDescLongDescExampleActionsFlagsPreExecutorNameShortDescLongDescExampleMatchersFlagsExecutor解析JavaYamlJava执行器C++YamlC++执行器……自我介绍ChaosBlade整体架构设计开箱即用,无需安装33自我介绍ChaosBlade

实践案例bladecreatemysql

delay--time

600--database

demo--table

d_discount--sqltype

select--effect-percent

50实验场景:数据库调用延迟监控指标:慢

SQL

数,告警信息期望假设:慢

SQL

数增加,钉钉群收到慢SQL

告警混沌实验:对

demo-provider

注入调用

mk-demo数据库延迟故障监控指标:慢

SQL

数增加,钉钉群收到告警问题排查:通过

ARMS

慢调用链路排查备注:应用架构拓扑图来自于阿里云

AHAS

产品告警和链路跟踪来自于阿里云

ARMS

产品自我介绍ChaosBlade实践案例bladecreat34自我介绍ChaosBlade

实践案例实验场景:数据库调用延迟监控指标:慢

SQL

数,告警信息期望假设:慢

SQL

数增加,钉钉群收到慢SQL

告警混沌实验:对

demo-provider

注入调用

mk-demo数据库延迟故障监控指标:慢

SQL

数增加,钉钉群收到告警问题排查:通过

ARMS

慢调用链路排查备注:应用架构拓扑图来自于阿里云

AHAS

产品告警和链路跟踪来自于阿里云

ARMS

产品自我介绍ChaosBlade实践案例实验场景:数据库调用延35自我介绍混沌工程的价值流程人员验证系统的高可用性-架构师提升故障的应急效率-开发&运维提早暴露线上问题,降低故障复发率-测试提升用户体验-产品&设计系统韧性-提升系统容错、容灾能力基础能力-具备可监控、可灰度、可回滚运维高可用-提升监控运维系统的高可用能力故障应急-故障等级划分的合理性,联系人的有效性,紧急预案的可行性故障复盘,故障统计,问题持续演练验证-故障管理自我介绍混沌工程的价值流程人员系统故障应急-故障等级划分的合36自我介绍云原生时代下,混沌工程的价值是什么?自我介绍云原生时代下,混沌工程的价值是什么?37自我介绍云原生架构下的稳定性挑战云设施微服务容器服务网格Serverless自我介绍云原生架构下的稳定性挑战云设施微服务容器服务网格Se38自我介绍云原生时代下,通过混沌工程推进“云原生”化自我介绍云原生时代下,通过混沌工程推进“云原生”化39自我介绍面向云原生场景的ChaosBlade

实现方案ChaosBlade

CRChaosBladeOperatorPodContainerChaosBladeVolumeChaosBladePodChaosBladeNodeapiVersion:chaosblade.io/v1kind:

ChaosBlademetadata:name:

cpu-loadspec:experiments:-scope:

nodetarget:cpuaction:

loaddesc:“cpu50%

load”flags:-name:

cpu-percentvalue:

“50”applyscope:

nodescope:

containerscope:

podmountsidecar声明式实验场景配置自我介绍面向云原生场景的ChaosBlade实现方案Cha40自我介绍面向云原生架构的ChaosBlade

实践案例实验场景:随机删除业务

Pod,验证业务的稳定性监控指标:业务指标和

Pod数期望假设:业务不受影响,Pod

副本数在预期之内混沌实验:随机删除包含system=demo

标签的Pod,同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论