混沌工程平台 ChaosBlade-Box 新版重磅发布

作者:铭少

混沌工程是什么

系统架构经历了单机到分布式,再到现在的云原生架构,其复杂度不断上涨,问题定位的难度也随之上涨。面对随时都可能发生的故障,有没有什么的办法能很好解决这个困境。

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

 title=

这里拿云原生架构来举例说明,为什么混沌工程能解决系统架构中存在的问题。云原生架构原则和混沌工程原则是可以找到对应关系,以服务化原则说明,服务化原则其根本就是服务如何治理的问题,也就是判断上下游服务之间强弱依赖关系的问题。通过混沌工程,可以通过将请求定位到具体机器,再缩小到具体机器上的应用,不断最小化爆炸半径,通过在应用之间注入故障,判断上下游服务是否正常,来判断其强弱依赖关系。

 title=

混沌工程的目标是实现韧性架构,这里包含两个部分:韧性系统和韧性组织。韧性系统具有冗余性、扩展性、不可变基础设施、无状态应用、避免级联故障等。韧性组织包含高效交付、故障预案、应急响应机制等。高度韧性的系统也会出现预期之外的故障,所以韧性的组织能弥补韧性系统缺失的部分,通过混沌工程构建极致的韧性架构。

 title=

混沌工程就是通过主动注入故障的方式,提前发现系统的薄弱点,推进架构改进,最终实现业务韧性。引入混沌工程对于不同职能的人而言,其业务价值有所不同:

  • 架构师:能帮助其验证架构的容错能力
  • 开发/运维:能提高其故障的应急效率
  • 测试:帮助其提早暴露线上问题,降低故障复发率
  • 产品/设计:提示客户使用体验

 title=

如何落地混沌工程

对于企业或业务如何对混沌工程进行落地?有无工具或平台能帮助其快速落地?

ChaosBlade 是一款遵循混沌实验模型的混沌实验执行工具,具有场景丰富度高,简单易用等特点,支持多平台、多语言环境,包括 Linux、Kubernetes 和 Docker 平台,支持 Java、NodeJS、C++、Golang 语言应用。支持 200 多个场景,3000 多个参数。是一款用于端侧的故障注入工具,但在业务进行落地时,会存在以下几个问题:

  • 故障注入过程如何可视化?
  • 如何同时对多个集群或主机进行故障注入?
  • 如何拿到整体演练的统计信息
  • ...... 

所以在 ChaosBlade 之上还需要平台层,对混沌工程执行工具进行管理与演练编排。

 title=

ChaosBlade-Box 是面向多集群、多语言、多环境,开源的云原生混沌工程控制台。

开源平台和注入工具的整体架构如下,主要包括几个组成模块:

  • ChaosBlade-Box Console :混沌实验用户界面
  • ChaosBlade-Box:Server 后端服务,主要包括演练场景的编排和安全管控、混沌工程工具部署(ChaosBlade、LitmusChaos...)、支持探针管理和多维度实验
  • Agent:探针,主要有(ChaosBlade-Box)Server端进行建联并保持心跳、上报 K8s 相关数据、演练命令下发通道等功能
  • ChaosBlade:部署在业务的主机或 K8s 集群内,在端侧进行演练的工具

 title=

新版 ChaosBlade-Box 平台是一个面向多集群、多环境、多语言的云原生混沌工程平台。支持国际化中英文切换,支持全局命名空间,使得同一用户可根据自己需求,设置不同的全局命名空间,如:测试空间、沙盒空间和线上空间等。提供自动化的工具部署,简化工具安装步骤,提高执行效率。平台支持不同环境的探针安装和演练,如主机和 Kubernetes,其中 Kubernetes 环境下支持 Node、Pod、Container 维度下的演练。在 Kubernetes 环境下会自动收集集群内的 Pod 相关数据,并在应用管理中进行统一管理,这样简化用户演练查询步骤,无需去集群内查看要演练应用的 Pod 名或 Container 名。并支持一键迁移到企业版,按需将社区版的演练数据同步到企业版。

 title=

 title=

 title=

 title=

以下是在新版 ChaosBlade-Box 平台上进行一次演练的全过程,支持顺序执行、阶段执行两种流程编排,顺序执行指的是多个演练场景依次生效,阶段执行值得是多个演练场景同时生效。通过多种安全策略保证演练得到恢复,如手动处罚和自动停止,自动停止通过在演练配置的时候设置超时参数来进行配置,这样即便平台和探针(Agent)失联,无法进行手动停止时,也能在超时时间到达的时候,自动恢复故障。

 title=

 title=

新版优势是什么

此次发布的新版相较于老版,前端界面和企业版进行统一,简化使用习惯的切换成本,更为完善的国际化中英文切换,并支持全局命名空间的切换;后端提供了更为流畅的演练编排,完善的应用管理,并加强了对探针的管控,并支持一键迁移到企业版;加强了探针的功能,提供了更加完善的 API,支持多环境部署且支持在不同环境作为演练通道,支持自动安装卸载,并收集并上报数据简化演练流畅。

 title=

相关链接

中间件开发者大会地址(演讲稿 PDF 可下载):

https://developer.aliyun.com/...

MSE 注册配置中心专业版首购享 9 折优惠,MSE 云原生网关预付费全规格享 85 折优惠。


阿里巴巴云原生
关注云原生技术趋势,输出最优质云原生内容
957 声望
256 粉丝
0 条评论
推荐阅读
多层网关已成过去,网关多合一成潮流,网关改造正当时丨Higress 正式发布 1.0 版本
K8s 通过 Ingress / Gateway API 将网关标准化,逐步将安全网关、流量网关、微服务网关内聚,解决从单体到微服务到云原生多层网关的复杂度,合久必分,分久必合,多层网关已成过去,网关多合一成潮流,成为 K8s ...

阿里云云原生阅读 149

Apache APISIX 结合 Authing 实现集中式身份认证管理
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX 不仅支持插件动态变更和热插拔,而且拥有众多实用的...

API7_技术团队1阅读 2.5k

Kubernetes Gateway API 深入解读和落地指南
Kubernetes Gateway API 是 Kubernetes 1.18 版本引入的一种新的 API 规范,是 Kubernetes 官方正在开发的新的 API,Ingress 是 Kubernetes 已有的 API。Gateway API 会成为 Ingress 的下一代替代方案。Gateway A...

Rainbond2阅读 433

Apache APISIX 助力便利充电创领者小电,实现云原生方案
原文链接业务背景小电作为国内共享充电宝服务平台,目前还处于初创阶段。从运维体系、测试环境等方面来讲,当下产品的业务主要面临了以下几个问题:VM 传统模式部署,利用率低且不易扩展开发测试资源抢占多套独立...

API7_技术团队1阅读 1.6k

Higress GitHub star 突破 1k,来自社区开发者和用户的寄语
不知不觉间,Higress 从去年11 月云栖大会宣布开源,已经过去了 5 个月的时间。这期间,Higress 一共完成了 136 个 PR 的合并,发布了 9 个 Release,收获了 25 位社区 Contributor。在这里向 Higress 一路同行的...

阿里云开发者阅读 3.6k

vue项目部署到阿里云服务器(windows - Nginx代理)
项目构成:前端:vue+vant-ui,数据库:mysql,后端:node.js部署方式:nginx代理一,首先要拥有自己的服务器,阿里,腾讯都可以,我用的是阿里的购买方式省略...购买完成后,会跳到实例界面,也就是你的服务器实...

墨城2阅读 780

Serverless部署应用并使用Cloudflare加速和支持HTTPS
Serverless 是一种云计算模型,它使开发人员能够构建和运行应用程序,而无需关心底层的服务器基础设施。在传统的应用程序开发中,开发人员需要管理服务器的配置、扩展和维护等任务。而在 Serverless 模型中,这些...

MartinDai2阅读 791

957 声望
256 粉丝
宣传栏