作者:铭少

混沌工程是什么

体系架构经历了单机到分布式,再到现在的云原生架构,其复杂度不断上涨,问题定位的难度也随之上涨。面临随时都可能发生的毛病,有没有什么的办法能很好处理这个窘境。

混沌工程(Chaos Engineering)在分布式体系上进行试验的学科,经过主动注入毛病的方式,提前发现体系的薄弱点,推动架构的改善,最终完成事务耐性。然后防止毛病在线上运行环境上发生。

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

这儿拿云原生架构来举例说明,为什么混沌工程能处理体系架构中存在的问题。云原生架构准则和混沌工程准则是可以找到对应联系,以服务化准则说明,服务化准则其根本便是服务怎么办理的问题,也便是判别上下游服务之间强弱依靠联系的问题。经过混沌工程,可以经过将请求定位到详细机器,再缩小到详细机器上的运用,不断最小化爆破半径,经过在运用之间注入毛病,判别上下游服务是否正常,来判别其强弱依靠联系。

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

混沌工程的方针是完成耐性架构,这儿包含两个部分:耐性体系和耐性安排。耐性体系具有冗余性、扩展性、不可变基础设施、无状况运用、防止级联毛病等。耐性安排包含高效交付、毛病预案、应急呼应机制等。高度耐性的体系也会呈现预期之外的毛病,所以耐性的安排能补偿耐性体系缺失的部分,经过混沌工程构建极致的耐性架构。

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

混沌工程便是经过主动注入毛病的方式,提前发现体系的薄弱点,推动架构改善,最终完成事务耐性。引入混沌工程对于不同职能的人而言,其事务价值有所不同:

  • 架构师:能协助其验证架构的容错才能
  • 开发/运维:能进步其毛病的应急效率
  • 测试:协助其提早暴露线上问题,下降毛病复发率
  • 产品/设计:提示客户运用体验

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

怎么落地混沌工程

对于企业或事务怎么对混沌工程进行落地?有无东西或渠道能协助其快速落地?

ChaosBlade 是一款遵循混沌试验模型的混沌试验履行东西,具有场景丰富度高,简单易用等特色,支撑多渠道、多语言环境,包含 Linux、Kubernetes 和 Docker 渠道,支撑 Java、NodeJS、C++、Golang 语言运用。支撑 200 多个场景,3000 多个参数。是一款用于端侧的毛病注入东西,但在事务进行落地时,会存在以下几个问题:

  • 毛病注入进程怎么可视化
  • 怎么同时对多个集群或主机进行毛病注入?
  • 怎么拿到整体演练的统计信息
  • ……

所以在 ChaosBlade 之上还需要渠道层,对混沌工程履行东西进行办理与演练编列。

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

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

开源渠道和注入东西的整体架构如下,首要包含几个组成模块:

  • ChaosBlade-Box Console :混沌试验用户界面
  • ChaosBlade-Box:Server 后端服务,首要包含演练场景的编列和安全管控、混沌工程东西布置(ChaosBlade、LitmusChaos…)、支撑探针办理和多维度试验
  • Agent:探针,首要有(ChaosBlade-Box)Server端进行建联并坚持心跳、上报 K8s 相关数据、演练指令下发通道等功能
  • ChaosBlade:布置在事务的主机或 K8s 集群内,在端侧进行演练的东西

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

新版 ChaosBlade-Box 渠道是一个面向多集群、多环境、多语言的云原生混沌工程渠道。支撑国际化中英文切换,支撑大局命名空间,使得同一用户可根据自己需求,设置不同的大局命名空间,如:测试空间、沙盒空间和线上空间等。供给主动化的东西布置,简化东西装置步骤,进步履行效率。渠道支撑不同环境的探针装置和演练,如主机和 Kubernetes,其中 Kubernetes 环境下支撑 Node、Pod、Container 维度下的演练。在 Kubernetes 环境下会主动搜集集群内的 Pod 相关数据,并在运用办理中进行一致办理,这样简化用户演练查询步骤,无需去集群内检查要演练运用的 Pod 名或 Container 名。并支撑一键迁移到企业版,按需将社区版的演练数据同步到企业版。

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

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

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

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

以下是在新版 ChaosBlade-Box 渠道上进行一次演练的全进程,支撑顺序履行、阶段履行两种流程编列,顺序履行指的是多个演练场景依次生效,阶段履行值得是多个演练场景同时生效。经过多种安全策略确保演练得到康复,如手动处罚和主动中止,主动中止经过在演练装备的时分设置超时参数来进行装备,这样即便渠道和探针(Agent)失联,无法进行手动中止时,也能在超时时间到达的时分,主动康复毛病。

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

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

新版优势是什么

此次发布的新版相较于老版,前端界面和企业版进行一致,简化运用习惯的切换本钱,更为完善的国际化中英文切换,并支撑大局命名空间的切换;后端供给了更为流通的演练编列,完善的运用办理,并加强了对探针的管控,并支撑一键迁移到企业版;加强了探针的功能,供给了更加完善的 API,支撑多环境布置且支撑在不同环境作为演练通道,支撑主动装置卸载,并搜集并上报数据简化演练流通。

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

相关链接

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

developer.aliyun.com/topic/middl…

MSE 注册装备中心专业版首购享 9 折优惠,MSE 云原生网关预付费全标准享 85 折优惠。