混沌工程 | 你所不知道的 ChaosBlade 那些事

  • 时间:
  • 浏览:1
  • 来源:uu快3app赚钱_uu快3大小计划注册

此实验模型完全描述如下:

目前的混沌实验主要含高故障模拟,让人们都 一般对故障的描述如下:

以上项目都遵循混沌实验模型定义实验场景,另有有一个多不仅实现实验场景水平领域扩展,否则每个场景领域单独一有有一个多项目,使用该领域下标准土措施 去设计实现场景,全都很方便的实现领域内场景垂直扩展。

都可不可不都可以通过这四每段来描述现有的故障场景,所有让人们都 抽象出了一有有一个多故障场景模型,也称为混沌实验模型

chaosblade-operator 项目是针对 Kubernetes 平台所实现的混沌实验注入工具,遵循上述混沌实验模型规范化实验场景,把实验定义为 Kubernetes CRD 资源,将实验模型中的四每段映射为 Kubernetes 资源属性,很友好的将混沌实验模型与 Kubernetes 声明式设计结合在同去,依靠混沌实验模型便捷开发场景的同去,又都可不可不都可以很好的结合 Kubernetes 设计理念,通过 kubectl 不可能 编写代码直接调用 Kubernetes API 来创建、更新、删除混沌实验,否则资源情况表都可不可不都可以非常清晰的表示实验的执行情况表,标准化实现 Kubernetes 故障注入。除了使用上述土措施 执行实验外,还都可不可不都可以使用 chaosblade cli 土措施 非常方便的执行 kubernetes 实验场景,查询实验情况表等。

遵循混沌实验模型实现的 chaosblade operator 除上述优势之外,还都可不可不都可以实现基础资源、应用服务、Docker 容器等场景复用,大大方便了 Kubernetes 场景的扩展,全都在符合 Kubernetes 标准化实现场景土措施 之上,结合混沌实验模型都可不可不都可以更有效、更清晰、更方便的实现、使用混沌实验场景。

下面通过一有有一个多具体的案例来说明 chaosblade-operator 的使用:对 cn-hangzhou.192.168.0.205 节点本地端口 40690 访问模拟 300% 的网络丢包。

使用 yaml 配置土措施 ,使用 kubectl 来执行实验

通过上述介绍,都可不可不都可以看出在设计 ChaosBlade 项目初期就考虑了云原生实验场景,将混沌实验模型与 Kubernetes 设计理念友好的结合在同去,不仅都可不可不都可以遵循 Kubernetes 标准化实现,还都可不可不都可以复用有些领域场景和 chaosblade cli 调用土措施 ,所谓的历史包袱根本不位于 :-)。

前面也提到了遵循混沌实验模型实现的实验场景,可通过 yaml 文件来描述,上层实验平台都可不可不都可以自动感知实验场景的变更,无需平台再做开发,达到实验平台与实验场景解耦的目的,使让人们都 都可不可不都可以更加专注于混沌实验平台本身的开发上。下面拿 AHAS Chaos 平台举例来说明如何基于混沌实验模型和 ChaosBlade 构建混沌实验平台。

不可能 直接删除此 blade 资源

使用此模型都可不可不都可以很清晰表达出以下实施混沌实验时要明确的疑问:

都可不可不都可以看了:

销毁实验:

ChaosBlade 项目才然后刚结束了,欢迎开源爱好者在使用 ChaosBlade 过程中产生的任何想法和疑问,都都可不可不都可以通过 issue 不可能 pull request 的土措施 反馈到 Github 上。

除了上述本身土措施 调用外,还都可不可不都可以使用 kubernetes client-go 土措施 执行,具体可参考:https://github.com/chaosblade-io/chaosblade/blob/master/exec/kubernetes/executor.go 代码实现。

除了实验场景相关项目,还有相关的文档项目:

不可能 执行失败,会返回完全的错误信息;不可能 执行成功,会返回实验的 UID:

混沌工程领域已提出多年,混沌工程社区的每一有有一个多人都贡献着所有人 所有的力量来完善整个混沌工程领域体系,尤其是混沌工程理论的提出推动了整个混沌工程领域快速发展。让人们都 在阿里巴巴结构实践混沌工程全都年,深知落地混沌工程之路充满各种挑战,也知道注入混沌实验全都 混沌工程中的一环,混沌工程转过身的思考、落地方案和实践经验也是不得劲要的一每段。让人们都 全都 想把让人们都 认为好用的结构工具奉献给社区,然后 将刚才提到的实践经验也通过各种渠道分享给让人们都 ,让人们都 都可不可不都可以将此工具与实践经验相结合,作为企业落地混沌工程的一有有一个多入手点,同去推进混沌工程领域的进步,仅此而已。

上述完全介绍了 ChaosBlade 工具的设计和转过身的思考,以及将混沌实验模型与各领域标准实现相结合的优势,欢迎对高可用架构感兴趣的各位加入到 ChaosBlade 社区中来,加入到混沌工程社区中来。总而言之,ChaosBlade 相信:开源世界中,任何帮助都是贡献。

通过以上内容都可不可不都可以很清晰的看出混沌实验的运行情况表,执行以下命令停止实验:

除实验场景外,都是以下规划:

ChaosBlade 的负责人阿里巴巴技术专家肖长军(穹谷)与阿里巴巴混沌工程平台、阿里云应用高可用服务-故障演练产品负责人李晶磊(孙巨)即将在QCon全球软件开发大会(北京站)2020展开为期一天的角度培训,给让人们都 完全介绍混沌工程本身和相关平台工具以及混沌工程在阿里巴巴结构的发展,并通过具体案例分享实施混沌工程的价值,不容错过。QCon目前正在8折报名中,识别二维码或点击阅读原文了解内容大纲。

让人们都 执行的实验是对其中一有有一个多 provider 服务实例注入调用 mk-demo 数据库延迟的故障,都可不可不都可以看了上图左下角,有些全都 对 demo 数据库注入延迟的命令,都可不可不都可以看出命令非常简洁清晰,比如很明确的表达出让人们都 的实验目标是 mysql,让人们都 的实验场景是做延迟,中间全都是什么数据库的匹配器,比如表,查询类型,还有控制实验的影响条数等等,使用 ChaosBlade 都可不可不都可以很有效的控制实验的爆炸半径。执行这条命令就都可不可不都可以对这台机器的 provider 服务注入故障,让人们都 都可不可不都可以看了我注入故障然后,这里有些图全都 我立刻收到了钉钉的报警,没法有些 case 是符合预期的 case,否则即使符合预期的case,也是有价值的,时要相关的开发和运维人员是要去排查延迟的疑问根因并恢复,能够提高故障应急强度。

chaosblade 的中文使用文档:https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn

此模型具有以下特点:

前面提到 ChaosBlade 项目是遵循混沌实验模型设计,不仅繁杂了实验场景定义,否则都可不可不都可以很方便的扩展场景,否则通过 chaosblade cli 工具都可不可不都可以统一调用,便于构建上层的混沌实验平台。下面通过实验模型的推导、介绍、意义和具体的应用来完全介绍此模型。

chaosblade 项目本身使用 Golang 构建,解压即用,工具采用 CLI 土措施 执行,使用简单,具备完善的命令提示。根据 chaosblade-spec-go 项目对混沌实验模型的定义,解析遵循混沌实验模型实现的实验场景 yaml 描述,将实验场景转换为 cobra 框架所支持的命令参数,实现变量参数化、参数规范化,否则将整个实验对象化,每个实验对象都是有个 UID,方便管理。

此模型具有以下的意义:

可通过以下命令查询实验情况表:

阿里巴巴结构从最早引入混沌工程外理微服务的依赖疑问,到业务服务、云服务稳态验证,进一步升级到公共云、专有云的业务连续性保障,以及在验证云原生系统的稳定性等方面积累了比较充足的场景和实践经验。否则当时混沌工程相关的开源工具位于场景能力分散、上手难度大、缺少实验模型标准,场景难以扩展和沉淀等疑问。什么疑问就会愿因不能自己实现平台化,你不能自己通过一有有一个多平台去囊括什么工具。全都让人们都 开源了 ChaosBlade 有些混沌工程实验执行工具,目的是服务于混沌工程社区,同去推进混沌工程领域的发展。

通过一有有一个多具体的实验场景来说明 chaosblade cli 的使用。

欢迎让人们都 加入,同去共建,不限于:

以上场景领域都单独封装成一有有一个多项目来实现,目前含高的项目如下:

ChaosBlade 项目托管在 Github 平台,放入 chaosblade-io 组织下,方便项目管理和社区发展。设计 ChaosBlade 初期就考虑了易用性和场景扩展的便捷性,方便让人们都 上手使用以及根据所有人 所有时要扩展更多的实验场景,遵循混沌实验模型提供了统一的操作简洁的执行工具,否则根据领域划分将场景实现封装成一有有一个多一有有一个多单独的项目,方便实现领域内场景扩展。目前含高的场景领域如下:

还都可不可不都可以编辑 yaml 文件,更新实验内容执行,chaosblade operator 会完成实验的更新操作。

执行实验:

ChaosBlade 社区在增强原有领域的同去,比如增强云原生领域场景,都是增加更多领域的场景,相似:

ChaosBlade 下的项目遵循此混沌实验模型设计,时要注意的是此模型定义了混沌实验场景如何设计,否则实验场景的具体实现每个领域各不相同,全都将 ChaosBlade 土措施 领域实现封装成所有人 所有独立的项目,每个项目根据各领域的最佳实践来实现,不仅能满足各领域使用习惯,否则还都可不可不都可以通过混沌实验模型来建立与 chaosblade cli 项目的关系,方便使用 chaosblade 来统一调用,各领域下的实验场景土措施 混沌实验模型生成 yaml 文件描述,暴露给上层混沌实验平台,混沌实验平台根据实验场景描述文件的变更,自动感知实验场景的变化,无需新增场景时再做平台开发,使混沌平台更加专注于混沌工程有些每段。以下分为基于混沌实验模型的 chaosblade cli 设计、基于混沌实验模型的 chaosblade operator 设计和基于混沌实验模型构建混沌实验平台三每段完全介绍混沌实验模型的应用。

通过上述,让人们都 都可不可不都可以使用以下句式来描述故障:不可能 某某机器(或集群中的资源,如 Node,Pod)上的哪个组件位于了什么故障,从而造成了相关影响。让人们都 都里可不可不都可以通过下图来看故障描述拆分:

作者信息:肖长军,阿里巴巴技术专家,花名穹谷,多年应用性能监控研发和分布式系统高可用架构经验,现专注于混沌工程领域,具备多年混沌工程研发和实践经验。开源项目 ChaosBlade 的负责人,阿里云应用高可用服务(AHAS)产品研发,混沌工程布道师。

使用 chaosblade cli 的 blade 命令执行

混沌实验模型的应用可归纳为以下几点:

查询实验情况表,返回信息如下(省略了 spec 等内容):