• 混沌工程平台 ChaosBladeBox 新版重磅发布


    作者:铭少

    混沌工程是什么

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

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

    1.png

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

    2.png

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

    3.png

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

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

    4.png

    如何落地混沌工程

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

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

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

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

    5.png

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

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

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

    6.png

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

    7.png

    8.png

    9.png

    10.png

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

    11.png

    12.png

    新版优势是什么

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

    13.png

    相关链接

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

    https://developer.aliyun.com/topic/middleware/developer/summit

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

  • 相关阅读:
    Java 对象头
    JVM类加载过程
    final,static,this,super关键字汇总
    进程与线程通信
    数据库三范式
    接口与抽象类区别
    TF1.x + RTX 3090 训练PWCNet 踩坑
    spring boot jpa 配置多数据源 报错 datasource循环依赖
    springboot 配置 jasypt加密,应用于配置文件数据库密码加密形式展现
    Redis基础入门:五大数据类型有哪些?
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/16435371.html
Copyright © 2020-2023  润新知