阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

跨越认知误区,向智能化混沌工程故障演练迈进

  • 2021-10-15
  • 本文字数:3109 字

    阅读完需:约 10 分钟

跨越认知误区,向智能化混沌工程故障演练迈进

“企业在什么阶段可以开始考虑实践混沌工程?”

 

“任何阶段都可以考虑实践混沌工程,特别是在开发、测试环境,越早引入混沌工程越好。”

智能化,从混沌工程实践起步

以上对话发生在 InfoQ 与中国工商银行技术专家的对话中。企业实践混沌工程,目的是为了提早发现系统和应用层面的问题。在中国工商银行软件开发中心高级研究员王炳辉看来,混沌工程实施的阶段越早越好。他认为,企业在任何阶段都可以考虑实践混沌工程,但是对于生产环境应用混沌工程则需要审慎。

 

“首先业务系统本身应该具备一定的高可用能力,不应出现对一个节点注入故障就会对整个应用产生影响;其次需要具备较为完善的监控体系,即在实施混动工程过程中发生了意外情况,也可快速准确定位问题;最后要有较为完善的应急预案体系,假使混动工程对应用产生了不可逆的影响,也能在最短时间内恢复系统。当企业能满足以上三个前提时,我们认为就可以开始考虑在生产环境实施混动工程了。”不过,企业在生产环境实施混动工程,应该遵循先在非重点敏感场景进行试点,然后再逐步在重点敏感应用实施。

 

如何启动混沌工程?首先需要考虑三个问题:需求是什么?要建设一个什么样的平台?应用在生产上是否已经达到可实施混动工程的前提要求?王炳辉认为,明确需求是第一位的。“如果只是一个较小的企业或者实现一个小验证点,最简单的方式就是引入一个开源的故障测试工具,并在对应的场景去做相应的验证。”

 

中国工商银行为例,底层的故障注入分为多个模块,涉及虚拟机、容器、物理机,不同类型的目标服务器对应的演练内容和方法都不一样,通过到各个项目组去抽调对系统底层架构比较了解的人,一起探讨需求,确定最终要实现的功能和需要吸纳的人,最后再去构建平台。

混沌工程的实践误区

就算满足了混沌工程实践必备的前置要求,实践过程中也很容易走到误区。据王炳辉观察,混沌工程故障演练是一个特别容易重实践而轻理论的事情,一开始很多企业可能会热衷于故障演练平台能力的建设,实施各类的故障演练,发现问题,解决问题,然后一直如此循环。

 

“这样确实在初期可以得到比较好的成效,但是后来会发现随着应用系统的稳定性逐步提升,原来的这种粗放模式能发现的问题就越来越少了,混沌工程的故障注入慢慢变得像测试人员的常规的测试案例。来一个场景,就把一套故障注入的测试案例往上一套,测试通过了就认为可用性较好。这样会带来一个问题,开发人员在设计和开发过程中,会下意识的对于常规性的混沌测试场景进行能力加强或者规避。从而使得演练效果看起来很好,但实际并没有达到预期的情况。”

 

在他看来,混沌工程是理论性很强的一门学问,需要对不同的平台和应用进行全面系统的混沌测试设计,不同的系统的薄弱环节很有可能是不一样的,因此对应的混沌测试内容也应有所差异,特别是跨平台,跨系统的业务线,这类业务场景的链路较长、甚至存在异构系统之间的调用,要通过混沌工程发现整个业务链路的潜在弱点,要求测试人员具备较高的混动工程场景案例设计能力。

混沌工程金融行业的特殊性

混动工程作为应用高可用水平非常重要的衡量手段,目前业界还没有统一的标准体系。因此中国工商银行在内部提出了一套工行应用高可用评价体系,根据应用的敏感程度设定不同的等级。


对于评价等级较高的应用,部分节点甚至园区级故障都不应影响正常业务交易。对于故障恢复时间,重点敏感应用相对普通应用的要求也会更加高一些。“因此工行这边的经验就是,可以先制定一套符合企业需求的混沌测试评级体系,然后根据不同的应用设定不同的评价阈值。”

 

具体到金融行业,王炳辉强调了金融行业和其他行业的区别:

1. 金融行业对应系统可靠性的要求会比传统非涉账类系统更高。

2. 金融系统的整体技术架构,可能会比新兴的互联网软件行业会更加的复杂,比如几个大行之前核心交易都是运行在大机系统上,现在逐步在做云计算和分布式转型,这些都是互联网企业不太会遇到的。

3. 金融行业相对互联网企业有着更加严格的监管要求。特别是涉及到客户信息,账目信息的系统,受到严格的监管。


因此,金融行业在实施混动工程过程中往往会更加的谨慎,不会轻易在生产环境去做混动测试,要确保所有混沌测试除了符合企业内部的制度要求之外,也要符合行业监管的政策法规。

智能化混沌工程故障演练是未来重要发展方向

 “虽然混沌工程从最初诞生到现在已经有十几年了,但是无论是国内还是国际,我们认为目前混沌工程整体都还处于发展初期。”王炳辉表示。绝大多数混沌工程工具或者产品还处于依靠工人进行故障注入的阶段,一些企业可能可以做到自动化进行故障注入和撤销。但是离智能化差距还非常远。比如通过智能感知技术架构或者业务架构,然后生成相应的故障演练任务并进行实施,同时还可以在实施过程中自动化监控相关的技术和业务指标,动态调整故障注入模式和撤销故障注入。

 

“目前国内无论哪家厂商,离这种完全摆脱对人工依赖的故障演练都还有很大差距,但是随着这几年国内各家企业对混沌工程的认知逐渐深入,混沌工程发展也非常的迅猛,我相信在未来几年,智能化混沌工程故障演练是混沌工程发展的一个重要的方向。”

 

什么是智能化混沌工程故障演练?可以根据应用的业务架构和技术架构,然后生成相应的故障演练任务并进行实施,同时还可以在实施过程中自动化监控相关的技术和业务指标,动态调整故障注入模式和撤销故障注入。

 

“目前工行的混沌工程故障演练平台用户是各个应用的测试人员,平台无法感知到目标服务器上运行的业务以及故障测试人员本次测试的目的。平台只知道测试人员进行了哪些混沌测试,但通过混沌测试去反推目标服务器运行的业务或者测试的目的往往是不准确的。因此混沌工程平台、业务应用、基础设施三者之间没办法良好互通,阻碍了混沌工程实现自动化,智能化。我们未来可能会重点关注这方面的解决方案。”王炳辉解释。

混沌工程不只有技术价值

混沌工程自诞生起,一直是行业热门话题,关于混沌工程的认知依然具有讨论热度。不同行业、不同企业、不同职位,对混沌工程的理解一直不尽相同。业务人员对混沌工程的理解,可能是上线之前验证业务的正确性和幂等性的一种手段;技术人员对混沌工程的理解,可能是验证系统架构容错能力,提高故障应急效率的一种手段;产品人员对混动工程的理解,可能是可作为提升用户体验的一种方式。

 

在中国工商银行软件开发中心高级研究员王炳辉看来,中国工商银行建设混沌工程故障演练平台,对分布式系统各个应用实施故障演练,根本目的还是为了提升工行系统的整体可靠性。“混动工程作为提升平台系统可靠性的一种比较常见的手段,是经过国内外众多厂商实践论证的。此外,混动工程也给我们传达了一种主动去制造发现并解决故障的思维,这种思维也是我们从事 IT 行业人员,特别是运维人员所必须具备的一种品质。”王炳辉强调,混沌工程带来的思维方式的改变,对中国工商而言意义较大。

 

采访嘉宾简介:

王炳辉,中国工商银行软件开发中心高级研究员,主导了中国工商银行 API 开放平台和分布式运维支撑体系的建设,主要负责 API 开放平台、分布式监控、混沌工程、流量录放、高可用保障等领域的研究及落地工作。


扫描下方二维码,进入有奖问答

参与国内首个混沌工程调研报告

为了解我国混沌工程发展全貌,中国信通院联合混沌工程实验室启动《中国混沌工程调查报告》问卷征集活动,深入探索我国系统稳定性现状及混沌工程使用情况、行业采纳度、技术成熟度及未来发展趋势,以期推动混沌工我国的概念普及,提升国内系统稳定性,促进软件质量发展。


本次调查问卷由中国信通院联合混沌工程实验室、infoQ、VCEC、中国云原生社区共同发起,参与问卷的用户有机会获得电脑包、文化衫等精美礼品,扫描上方二维码进入问卷。


混沌工程实验室成员包括:


2021-10-15 20:013299

评论

发布
暂无评论
发现更多内容

300行代码模拟cdn访问过程

蓝胖子的编程梦

CDN DNS CDN加速 CDN技术 #DNS

海外交友源码平台搭建:基础功能的实现(一)

山东布谷科技

软件开发、 源码搭建 海外市场 语音交友源码

蚂蚁集团自动化混沌工程 ChaosMeta 正式开源

ChaosMeta

高可用 混沌工程 故障演练 kubernetes 运维 混沌测试

软件测试/测试开发丨Pytest结合数据驱动-CSV

测试人

程序员 软件测试 自动化测试 csv pytest

高性能网络 SIG 月度动态:联合 IBM 就 SMC v2.1 协议升级达成一致,ANCK 率先完成支持

OpenAnolis小助手

开源 ibm 高性能网络 anck 龙蜥sig

模型当道 开源聚力|2023开放原子全球开源峰会开源大模型分论坛圆满收官

开放原子开源基金会

开源 大模型 开放原子全球开源峰会 开放原子

可观测性最佳实践 | 警惕!未知的风险正在摧毁你的系统

观测云

可观测性 运维监控 观测云 云原生可观测 可观测性用观测云

一文读懂ChatGPT的工作原理:大语言模型是个啥?它到底咋工作的?

禅道项目管理

#人工智能 ChatGPT AI 2022

Typora绿化版

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验

汀丶人工智能

人工智能 深度学习 强化学习 深度强化学习 6 月 优质更文活动

手牵手带你实现mini-vue | 京东云技术团队

京东科技开发者

Vue 数据绑定 vue2 企业号 6 月 PK 榜 双向数据绑定

详解4种模型压缩技术、模型蒸馏算法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

使用华为云AstroZero,不用一行代码,制作端午节加班申请模板

华为云PaaS服务小智

云计算 零代码 华为云

vivo 游戏黑产反作弊实践

vivo互联网技术

游戏黑产 游戏礼券

基于双层缓存(DLC)机制解决热点缓存并发重建问题

xfgg

Java' 6 月 优质更文活动

一种实现Spring动态数据源切换的方法 | 京东云技术团队

京东科技开发者

spring aop 企业号 6 月 PK 榜 数据源切换

细说敏捷测试-敏捷实战中的探索 | 京东云技术团队

京东科技开发者

敏捷开发 测试 敏捷测试 企业号 6 月 PK 榜

Java 中优雅的 RESTful API 设计:实现高效且易维护的接口

xfgg

Java RESTful API 6 月 优质更文活动

海南正规等级保护测评单位有哪些?叫什么名字?

行云管家

等保 等级保护 海南 等保测评单位

Java 内存与缓存管理:应对大数据场景的优雅高效策略

xfgg

Java 6 月 优质更文活动

Airtest图像识别测试工具原理解读&最佳实践 | 京东云技术团队

京东科技开发者

图像识别 移动开发 UI自动化测试 企业号 6 月 PK 榜 Airtest

AI+电力、大模型主题人工智能师资培训班重磅招募中

飞桨PaddlePaddle

人工智能 百度 paddle

TBB 开源库及并发 Hashmap 的使用

KaiwuDB

KaiwuDB TBB开源库 Hashmap使用

浅谈API安全

权说安全

API 安全

强化学习从基础到进阶-案例与实践[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验

汀丶人工智能

人工智能 深度学习 强化学习 深度强化学习 6 月 优质更文活动

随机2D形状周围层流预测!基于飞桨实现图形神经网络

飞桨PaddlePaddle

人工智能 百度 飞桨

基础设施SIG月度动态:ABS新增ISO、VHD镜像构建,自动热补丁制作流程正式上线

OpenAnolis小助手

镜像 基础设施 龙蜥社区 sig abs

观点碰撞燃爆会场|2023开放原子全球开源峰会区块链分论坛圆满落幕

开放原子开源基金会

区块链 开源 开放原子全球开源峰会 开放原子

龙智携手Atlassian亮相DevOps国际峰会:释放团队潜力,以协作挑战不可能

龙智—DevSecOps解决方案

DevOps ITSM ITSM软件 工作管理

IT自动化运维工具用哪款?需要考虑哪些因素?

行云管家

IT运维 自动化运维 IT自动化运维

跨越认知误区,向智能化混沌工程故障演练迈进_开源_张俊宝_InfoQ精选文章