Skip to main content

One post tagged with "chaosblade"

View All Tags

· One min read
张斌斌(@binbin0325)

转自:https://mp.weixin.qq.com/s?__biz=Mzg3MzgxMjc3NA==&mid=2247484031&idx=1&sn=4bfc81c1ee268dc0c8d529a4b5fc9949&chksm=cedb0436f9ac8d202f021e6b3e635e08573ce29d14591c9376f7594a623983ebd87103d915f6&token=1141223089&lang=zh_CN#rd 来源:微信公众号(柠檬汁Code)

1. 什么是混沌工程

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

-《混沌工程原理》http://principlesofchaos.org/

混沌工程是一门在系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力以及信心。

在2010 年 Netflix 从物理机基础设施迁移到 AWS 过程中,为保证 EC2 实例故障不会对业务造成影响,其团队开发出了杀 EC2 实例的工具,这也是混沌工程的雏形。

混沌工程的行为:通常是通过主动制造故障的方式来观察目标服务的稳定性,从而不断的发现服务的潜在性风险

混沌工程的目标:根据已发现的稳定性风险,建设优化策略,不断的提高服务的稳定性。

2. 为什么需要混沌工程

随着业务的发展,系统的架构也会随之更新迭代,特别是在分布式系统架构下服务数量变多,调用链路变长,服务间的依赖关系日渐复杂。对于单个服务的故障很难评估出对整个系统的影响,在系统高速迭代的过程中,如何持续性的保证系统的稳定性一直受到很大的挑战。

混沌工程的思想是通过主动的注入故障,提前发现系统中的异常点,当发现异常点后即可对其进行改进,从而不断的增强系统的稳定性。

这里从四个角色来说明混沌工程的重要性:

实施混沌工程可以提早发现生产环境上的问题,提升故障应急处理效率、梳理服务间的强弱依赖关系、验证预案有效性等等,逐渐建设具有韧性的高可用系统。

3. 混沌工程产品

目前收集在CNCF全景视图混沌工程分类下的开源产品:

  • 其中Chaos Mesh是由PingCAP团队开源的一款云原生混沌工程平台,Chaos Mesh 起源于 TiDB 的核心测试平台

  • 另一款ChaosBlade混沌工程平台本文将重点介绍

4. ChaosBlade-混沌之刃

4.1 介绍

ChaosBlade 中文名混沌之刃,起初是由阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,提供了丰富的故障注入场景。

后来在2021年重磅开源混沌工程平台ChaosBlade Box,ChaosBlade-Box是一款面向多集群、多语言、多环境,阿里开源的云原生混沌工程控制台。主要功能有:提供混沌实验用户界面、混沌工程工具部署(ChaosBlade、LitmusChaos...)、支持实验场景管理和多维度实验等

ChaosBlade是故障注入工具集,基于统一的故障模型,对目标发起攻击,目前支持的实验场景如下:

ChaosBlade按照不同的故障场景按照领域封装成不同的项目,目前包含的项目:

  • chaosblade:混沌实验管理工具,包含创建实验、销毁实验、查询实验、实验环境准备、实验环境撤销等命令,是混沌实验的执行工具,执行方式包含 CLI 和 HTTP 两种。提供完善的命令、实验场景、场景参数说明,操作简洁清晰。

  • chaosblade-spec-go: 混沌实验模型 Golang 语言定义,便于使用 Golang 语言实现的场景都基于此规范便捷实现。

  • chaosblade-exec-os: 基础资源实验场景实现。

  • chaosblade-exec-docker: Docker 容器实验场景实现,通过调用 Docker API 标准化实现。

  • chaosblade-exec-cri: 容器实验场景实现,通过调用 CRI 标准化实现。

  • chaosblade-operator: Kubernetes 平台实验场景实现,将混沌实验通过 Kubernetes 标准的 CRD 方式定义,很方便的使用 Kubernetes 资源操作的方式来创建、更新、删除实验场景,包括使用 kubectl、client-go 等方式执行,而且还可以使用上述的 chaosblade cli 工具执行。

  • chaosblade-exec-jvm: Java 应用实验场景实现,使用 Java Agent 技术动态挂载,无需任何接入,零成本使用,而且支持卸载,完全回收 Agent 创建的各种资源。

  • chaosblade-exec-cplus: C++ 应用实验场景实现,使用 GDB 技术实现方法、代码行级别的实验场景注入。

4.2 使用方式

Chaosblade 是一个二进制的工具包,可以在命令行中直接执行blade命令来创建故障,以CPU故障举例:

# 已创建 CPU 满载实验举例
blade create cpu load

# 返回结果如下
{"code":200,"success":true,"result":"beeaaf3a7007031d"}

# code 的值等于 200 说明执行成功,其中 result 的值就是 uid。使用 top 命令验证实验效果
Tasks: 100 total, 2 running, 98 sleeping, 0 stopped, 0 zombie
%Cpu0 : 21.3 us, 78.7 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 20.9 us, 79.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 20.5 us, 79.5 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 20.9 us, 79.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

其他故障场景在这里就不一一列举了,想了解更多故障场景使用方法可参考:https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/

4.3 小结

ChaosBlade 本质上是一个故障注入的工具集,它提供了故障注入,故障销毁,状态查询等多种能力,也支持多种故障场景例如:基础资源、java、docker、k8s等。

但是缺点也比较明显,它没有可视化的界面,也不能对故障场景进行管理,多个故障注入也没有编排能力,每一次故障注入都需要先到目标机器上安装ChaosBlade等等,这对于真正的落地使用混沌工程来说还是有很多挑战的。

5. ChaosBlade Box

5.1 介绍

为了解决上面提到的问题,在2021年重磅开源混沌工程平台ChaosBlade-Box,提供统一的可视化界面,并提供演练场景,经验库,应用管理,探针管理,演练编排等功能。

5.2 UI

以下是在ChaosBlade-Box平台上进行一次演练的全过程,支持串行、并行两种流程编排,通过多种安全策略保证演练得到恢复,如手动触发和自动停止,自动停止通过在演练配置的时候设置超时参数来进行配置,这样即便平台和探针(Agent)失联,无法进行手动停止时,也能在超时时间到达的时候,自动恢复故障。

5.3 小结

ChaosBlade Box是混沌工程演练平台,主要解决了ChoasBlade工具集的痛点,提供可视化管理故障、编排执行故障的能力,并支持探针管理从此不再需要到每一个节点上安装ChoasBlade,大大提升故障注入的效率以及易用性。

6. ChaosBlade-架构

在ChasoBlade Box开源后,ChaosBlade的整体架构中主要包括以下几个组件:

  • ChaosBlade-Box Console:ChaosBlade可视化组件,主要提供一套用户友好的Web界面,用户可以通过该界面进行混沌工程实验的编排与操作管理。

  • ChaosBlade-Box Server:核心逻辑组件,主要负责混沌工程实验的管理与编排,探针与应用管理。包括组件,Chaos Engine:演练引擎,包括流程编排、安全管控、演练报告等功能;Chaos Runner:演练执行器,兼容多种执行工具;Chaos Experinece:演练经验库等。

  • Agent:核心逻辑组件,部署在用户终端的主机或Kubernetes集群内,主要负责和ChaosBlade-Box Server建联上报心跳并作为命令下发通道。

  • ChaosBlade:主要执行工具,能在主机和Kubernetes等不同环境上执行故障注入,能对系统网络设备、文件系统、内核及系统上运行的应用等进行故障干扰。

7. 总结

通过混沌工程可以主动发现系统的中的潜在问题,从而对其进行优化,不断的提升系统的稳定性。ChaosBlade是一款遵循混沌工程理念的开源产品,其中主要包含ChaosBlade Tool(提供丰富的故障场景注入能力)以及ChaosBlade Box提供可视化的混沌工程实施平台。

8. 作者介绍

张斌斌(Github 账号:binbin0325,公众号:柠檬汁Code)Sentinel-Golang Committer 、ChaosBlade Committer 、 Nacos PMC 、Apache Dubbo-Go Committer。目前主要关注于混沌工程、中间件以及云原生方向。

· One min read
蔡铭霞(铭少,@MandssS)

ChaosBlade is an open source chaos engineering project of Alibaba in 2019. It includes chaos engineering experimental tool chaosblade and chaos engineering platform chaosblade-box. It aims to help enterprises solve high-availability problems in the cloud-native process through chaos engineering. The experimental tool chaosblade supports 3 large system platforms, 4 programming language applications, involving more than 200 experimental scenarios and more than 3000 experimental parameters, which can finely control the scope of the experiment. The chaos engineering platform chaosblade-box supports the hosting of experimental tools. In addition to the hosted chaosblade, it also supports the Litmuschaos experimental tools. There are more than 40 registered companies, of which the ICBC, China Mobile, Xiaomi, JD.com and other companies have landed and used it.image.png

After nomination and discussion of all Maintainers, the community is pleased to announce, CHAO YUANNING(GitHub ID: @ID:Yuaninga ,CMCC · CMChaos Chaos Engineering Platform )Officially promoted to ChaosBlade Community Maintainer. In the past period of time, student Chao Yuanning actively and actively participated in the discussions and contributions of the ChaosBlade community. He not only participated in the improvement of the official website document construction, but also actively participated in the contribution of bug fixes and features of multiple modules, and submitted as many as 25 PRs involving chaosblade-operator, chaosblade-exec-os, and chaosblade-website. Meet the community's expectations for continued contributions to Reviewer. Congratulations Yuan Ning! For details, see promotion Maintainer pr Maintainer Certificate:

Message from the new Maintainer:

_I am honored to be promoted to ChaosBlade Community Maintainer. In the future, I will try my best to fulfill the responsibility of Maintainer and work together to build ChaosBlade. I firmly believe that ChaosBlade will be stronger with the joint efforts of everyone. Here you can exchange questions and answers, improve your skills and challenge technical difficulties. Whether you are a novice or a Daniel, as long as you have time, enthusiasm and willingness, you are welcome to join the community, participate in contributions and embrace ChaosBlade.


ChaosBlade has been adhering to the idea of open source since the project was launched. The current community development and ecological construction are inseparable from the joint construction of various enterprises and community students. At present, we are in a critical stage of development. The open source contribution team is actively recruiting contributors. We hope that more students will participate in our open source construction and participate in community construction and code contribution:

· One min read
蔡铭霞(铭少,@MandssS)

ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 ChaosBlade 和混沌工程平台 ChaosBlade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。实验工具 ChaosBlade 支持 3 大系统平台,4 种编程语言应用,共涉及 200 多的实验场景,3000 多个实验参数,可以精细化的控制实验范围。 混沌工程平台 ChaosBlade-Box 支持实验工具托管,除已托管 ChaosBlade 外,还支持 Litmuschaos 实验工具。已登记使用企业 40 多家,其中已在工商银行、中国移动、小米、京东等企业中落地使用。 image.png

经过全体 Maintainer 提名与讨论,社区很高兴地宣布,晁元宁(GitHub ID: @ID:Yuaninga ,中国移动磐基PaaS平台)正式晋升为 ChaosBlade 社区 Maintainer 。晁元宁同学在过去的一段时间,积极、活跃地参与到 ChaosBlade 社区讨论与贡献,不仅发表多篇文章,更是积极参与到多个 module 的 bug fix 和 feature 的贡献中来,提交了多达 25 个 PR,涉及 chaosblade-operator、chaosblade-exec-os 和 chaosblade-website 等多个项目中。满足社区对 Reviewer 持续贡献的期望。恭喜元宁! 具体可见其 Maintainer 的 promotion Maintainer pr Maintainer 证书:

新晋 Maintainer 寄语:

_很荣幸晋升为ChaosBlade社区Maintainer,在以后我将努力践行Maintainer贡献者职责,和大家一起共同建设ChaosBlade。我坚信在大家的共同努力下 ChaosBlade 一定会更加强大。这里可以交流答疑、可以提升技术、可以挑战技术难点,无论你是新手还是大牛,只要你有时间,有热情,有意愿,欢迎加入社区、参与贡献、拥抱 ChaosBlade ~~~


ChaosBlade自项目发起以来,就秉持着开放的开源思想,目前的社区发展于生态建设更是离不开各个企业社区同学的共建。目前我们更是在发展的关键阶段,开源贡献小组正在火热招募贡献者,希望更多的同学参与到我们的开源建设当中来,一起参与到社区的建设和代码贡献中来:

· One min read
蔡铭霞(铭少,@MandssS)

ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 ChaosBlade 和混沌工程平台 ChaosBlade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。实验工具 ChaosBlade 支持 3 大系统平台,4 种编程语言应用,共涉及 200 多的实验场景,3000 多个实验参数,可以精细化的控制实验范围。 混沌工程平台 ChaosBlade-Box 支持实验工具托管,除已托管 ChaosBlade 外,还支持 Litmuschaos 实验工具。已登记使用企业 40 多家,其中已在工商银行、中国移动、小米、京东等企业中落地使用。 image.png

经过全体 Reviewer 提名与讨论,社区很高兴地宣布,晁元宁(GitHub ID: @ID:Yuaninga ,中国移动磐基PaaS平台)正式晋升为 ChaosBlade 社区 Reviewer 。晁元宁同学在过去的一段时间,积极、活跃地参与到 ChaosBlade 社区讨论与贡献,不仅参与完善了官网文档建设,更是积极参与到多个 module 的 bug fix 和 feature 的贡献中来,提交了多达 11 个 PR,涉及 chaosblade-operator、chaosblade-exec-os 和 chaosblade-website 等三个项目中。满足社区对 Reviewer 持续贡献的期望。恭喜元宁! 具体可见其 Reviewer 的 promotion Reviewer pr Committer 证书:

新晋 Committer 寄语:

很荣幸加入到 ChaosBlade 社区的 Reviewer 队伍,在以后我将和大家一起共同建设 ChaosBlade ,做更多的 PR 贡献和审查工作。我坚信在大家的共同努力下 ChaosBlade 一定会更加强大。这里可以交流答疑、可以提升技术、可以挑战技术难点,无论你是新手还是大牛,只要你有时间,有热情,有意愿,欢迎加入社区、参与贡献、拥抱 ChaosBlade ~~~


ChaosBlade自项目发起以来,就秉持着开放的开源思想,目前的社区发展于生态建设更是离不开各个企业于社区同学的共建。目前我们更是在发展的关键阶段,开源贡献小组正在火热招募贡献者,希望更多的同学参与到我们的开源建设当中来,一起参与到社区的建设和代码贡献中来:

· One min read
叶飞(@tiny-x)

ChaosBlade

随着云原生的发展,云原生应用一致性、可靠性、灵活编排的能力让大部分企业选择将应用往云上迁移,但同时云基础设施在稳定性、高可用、可观测方面也接受着强大的考验。 ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中提供业务连续性保障。 ChaosBlade Operator 是 Kubernetes 平台实验场景的实现,将混沌实验通过 Kubernetes 标准的 CRD 方式定义,很方便地使用 Kubernetes 资源操作的方式来创建、更新、删除实验场景,包括使用 kubectl、client-go 等方式执行,同时也可以使用 chaosblade cli 工具执行。

· One min read
张斌斌(@binbin0325)

ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。

目前支持的场景有:基础资源、Java 应用、C++ 应用、Docker 容器以及 Kubernetes 平台。该项目将场景按领域实现封装成单独的项目,不仅可以使领域内场景标准化实现,而且非常方便场景水平和垂直扩展,通过遵循混沌实验模型,实现 ChaosBlade cli 统一调用。

不过Java场景下的故障注入目前有一些性能问题,主要体现在故障注入时会让CPU的使用率大幅度抖动,严重情况下可能会导致CPU的使用率100%。这种情况对于线下服务的影响还好,但是对于线上服务就比较严重了,因为CPU的使用率较高有可能会导致服务的整体性能变差,从而影响接口的耗时。

通过对ChaosBlade Java 场景的性能优化,使CPU在故障注入时的抖动得到了有效的控制,不会再出现CPU使用率达到100%的抖动,经过测试在线上8C,4G,QPS 3K左右的服务实例上注入Dubbo 自定义抛异常的故障,CPU的使用率可以控制在40%左右的瞬时抖动范围内,性能整体提升近2.5倍。

本文将会详细的介绍影响性能的问题点以及是如何对这些问题进行优化的。

· One min read
蔡铭霞(铭少,@MandssS)

在2020.11.25 AWS发生了服务大面积故障,造成了多个云产品服务受影响,不到一个月的时间内谷歌发生了那年的第三次大规模宕机,造成了波及20亿用户,损失170万美元的巨大损失。 系统架构经历了单机 到 分布式,再到现在的云原生架构,其复杂度不断上涨,问题定位的难度也随之上涨。面对随时都可能发生的故障,有没有什么的办法能很好解决这个困境。 混沌工程(Chaos Engineering)在分布式系统上进行实验的学科,通过主动注入故障的方式,提前发现系统的薄弱点,推进架构的改进,最终实现业务韧性。从而避免故障在线上运行环境上发生。 image.png

· One min read
蔡铭霞(铭少,@MandssS)

image.png

1. Preface

  • What Is ChaosBlade-Box? ChaosBlade-Box is an open-source cloud-native Chaos Engineering console of Alibaba Cloud for multiple clusters, languages, and environments. The main features include a unified chaos experiment user interface, Chaos Engineering tool deployment (such as ChaosBlade and LitmusChaos), and the support for experimental scenario management and multi-dimensional experiments.

  • What Is ChaosBlade? ChaosBlade is an easy-to-use, efficient, and open-source Chaos Engineering experimental tool of Alibaba Cloud, which conforms with the experimental model. It supports multi-platform, multi-language environment, and more than 200 drill scenarios, such as host system -> container -> Kubernetes cluster -> common components (Elasticsearch, Redis, and MySQL) -> application (Java, Golang, C++, and NodeJS), and over 3,000 parameters.

  • What Is Chaos Engineering? Chaos Engineering is a discipline that conducts experiments on distributed systems. Chaos Engineering helps detect weak points of systems in advance, promotes the improvement of the architecture, and finally realizes business resilience by actively injecting faults.

Since 2021, major enterprises have paid attention to and invested in the research and development of Chaos Engineering. ChaosBlade (an open-source Chaos Engineering tool from Alibaba) has officially become a CNCF Sandbox project. A new version of the ChaosBlade-Box was released to help users of open-source projects implement Chaos Engineering better. The following sections describe the features of the new version.

· One min read
蔡铭霞(铭少,@MandssS)

image.png

1. 前言

  • ChaosBlade-Box是什么?

    ChaosBlade-Box是面向多集群、多语言、多环境,阿里开源的云原生混沌工程控制台。主要功能有:统一混沌实验用户界面、混沌工程工具部署(ChaosBlade、LitmusChaos...)、支持实验场景管理和多维度实验等。

  • ChaosBlade是什么?

    ChaosBlade是遵循实验模型、简单易用、功能强大的,阿里开源混沌工程实验工具。支持多平台、多语言环境,支持从 主机系统-> 容器 -> k8s集群 -> 常用组件(ElasticSearch\Redis\Mysql...) -> 应用 (Java\Golang\C++\NodeJS...)等200多个演练场景,3000多个参数。

  • 混沌工程是什么?

    混沌工程(Chaos Engineering)是在分布式系统上进行实验的学科,通过主动注入故障的方式,提前发现系统的薄弱点,推进架构的改进,最终实现业务韧性

2021年起进入混沌工程元年,各大公司纷纷关注并投入到混沌工程的研发当中。阿里巴巴开源的混沌工程工具ChaosBlade正式成为CNCF Sandbox项目。为帮助开源用户更好地落地混沌工程,发布新版ChaosBlade-Box,以下主要介绍此次发布新版本的功能及特性。

· One min read
肖长军(穹谷,@xcaspar)

ChaosBlade is Alibaba's open-source chaos engineering project created in 2019. It has been added to CNCF Sandbox. At first, ChaosBlade was a multi-environment and multi-language chaos engineering experimental tool but developed into a multi-cluster, multi-environment, and multi-language chaos engineering platform called chaosblade-box. The platform supports experimental tool hosting and automatic tool deployment. The user's energy is focused on solving high-availability problems in the cloud-native process through chaos engineering and a unified user experiment interface. This article introduces ChaosBlade in detail from three stages, including the abstraction of the chaos experimental model, the open-source process of the chaos experimental tool, and the update of the chaos engineering platform.

· One min read

转自:https://mp.weixin.qq.com/s/jHopgbHmWCuF0JHv7Z7Erg

为什么阿里巴巴、工商银行、中国移动、华泰证券……都在关注混沌工程?

自从 Netflix 开源 Chaos Monkey,越来越多的国内公司看到了混沌工程在建立系统在生产环境中信心的能力,开始尝试通过混沌工程提高可靠性。阿里巴巴作为国内较早对外输出混沌工程能力的企业,早在 2012 年就开始在电商业务上,尝试通过故障注入技术去解决微服务的依赖问题。

应用层追求更全面、更便利、更快捷的服务,倒逼技术层面系统越来越复杂,可供观测和持续维护的难度不断加大,错综相连的软件服务节点越发依赖技术手段和能力。随着分布式和云原生技术成为主流技术趋势,混沌工程也随之备受关注。由于混沌工程自身特性,#难以量化度量几乎成为业内共识,但对于企业混沌工程建设的成熟度,也需要探讨衡量标准。#

如今,随着中国信通院成立了国内首个混沌工程实验室,混沌工程在国内的发展走到了新阶段。为此,InfoQ 和阿里云资深技术专家中亭,聊了聊混沌工程在阿里巴巴的技术实践。

· One min read
叶飞

欢迎参加开源软件供应链点亮计划 - 暑期 2021(以下简称 暑期 2021)是由 中国科学院软件研究所 与 openEuler 社区 共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。我们将联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。

· One min read
肖长军(穹谷,@xcaspar)

在分布式系统架构下,服务间的依赖日益复杂,很难评估单个服务故障对整个系统的影响,并且请求链路长,监控告警的不完善导致发现问题、定位问题难度增大,同时业务和技术迭代快,如何持续保障系统的稳定性和高可用性受到很大的挑战。我们知道发生故障的那一刻不是由你来选择的,而是那一刻来选择你,你能做的就是为之做好准备。所以构建稳定性系统很重要的一环是混沌工程,在可控范围或环境下,通过故障注入,来持续提升系统的稳定性和高可用能力。
本文会着重介绍什么是混沌工程,为什么需要混沌工程以及混沌工程相关工具与实践。如有遗漏或错误,欢迎补充指正。

· One min read
郭旭东(@sunny0826)

前言

在上篇文章中,我们介绍了如何使用 ChaosBlade Operator 对 node 资源进行混沌实验。从本章将继续对 Kubernetes Container 资源的混沌实验进行讲解,同时也配套了 katacode 交互式教程,读者可用通过 katacode,在浏览器上操作真实的 Kubernetes 和 ChaosBlade,同时本篇也是系列文章的倒数第二篇,实践内容的最后一篇。

· One min read
郭旭东(@sunny0826)

前言

在上篇文章中,我们介绍了如何使用 ChaosBlade Operator 对 pod 资源进行混沌实验。从本章将继续对 Kubernetes Node 资源的混沌实验进行讲解,同时也配套了 katacode 交互式教程,读者可用通过 katacode,在浏览器上操作真实的 Kubernetes 和 ChaosBlade。

chaosblade.io 官网已经正式上线。

· One min read
郭旭东(@sunny0826)

前言

随着微服务的盛行以及容器技术的普及,借助 Kubernetes 的容器编排能力,部署一套分布式系统的难度也越来越低。但随之而来的是越来越复杂的系统,以及越来越难的系统可靠性测试,有时仅仅是一个接口的故障,就可能导致整个系统的雪崩。在雪崩中,找到那个最初故障的接口也十分困难,因为到处都在报错。

为了解决这些问题,除了不断减少服务的耦合,建立强大的监控系统以及设置熔断、限流等策略等方式,这时混沌工程就出现了。

· One min read
肖长军(穹谷,@xcaspar)

导读:随着云原生概念的兴起,越来越多的系统服务在往云原生演进,在演进阶段如何保障系统的稳定性和高可用性,是每个系统负责人都要关注的问题,通过混沌工程可以很好的解决这个问题。ChaosBlade 是阿里巴巴开源的一款混沌工程实验执行工具,其易用性和丰富的场景受到大家的广泛关注。本文整理自阿里巴巴技术专家肖长军(穹谷)在 QCon 全球软件开发大会(上海站)2019 上的演讲,他围绕云原生架构介绍了 ChaosBlade 的设计、特性与实践,以及如何基于 ChaosBlade 搭建一个自动化的混沌实验平台。

· One min read

转自:https://juejin.cn/post/6844903879814053901 来源:稀土掘金

Chaosblade是什么?

Chaosblade是遵循混沌工程(Chaos Engineering)原理的实验工具,用于模拟常见的故障场景,帮助提升分布式系统的可恢复性和对故障的容错性。 Chaosblade是建立在阿里巴巴近十年故障测试和演练实践基础上,结合了集团各业务的最佳创意和实践。 目前支持的演练场景有操作系统类的 CPU、磁盘、进程、网络,Java 应用类的 Dubbo、MySQL、Servlet 和自定义类方法延迟或抛异常等以及杀容器、杀 Pod,具体可执行 blade create -h 查看。 好了,上面的介绍是从Chaosblade的github主页抄的。 github主页地址:chaosblade-github 说白了,Chaosblade是一个故障模拟工具,可以模拟比如服务器CPU满了、磁盘满了、网络慢、Dubbo某个服务响应时间长、jvm中某个方法抛出异常、调用Mysql慢等等。所以这个工具对于大公司来说是非常非常有用的,因为可以提前模拟出各种各样的故障,从而保证系统的高可用与稳定。