Skip to main content

· 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慢等等。所以这个工具对于大公司来说是非常非常有用的,因为可以提前模拟出各种各样的故障,从而保证系统的高可用与稳定。