写点什么

用尽一切手段降低 MTTR,混沌工程在华泰证券的落地实践

  • 2021-08-27
  • 本文字数:2634 字

    阅读完需:约 9 分钟

用尽一切手段降低MTTR,混沌工程在华泰证券的落地实践

InfoQ 在做混沌工程系列访谈时发现,企业对混沌工程的认知普遍存在两种情况:一种是企业不了解混沌工程,武断地认为用不上;一种是企业对混沌工程抱有太多期待,对投入产出比的容忍度较低。

 

检索混沌工程的实践新闻,关联词都是“大公司”、“生产环境”、“失控”,看上去似乎是大公司的热闹,也并不那么安全。InfoQ 网站上 4 月发布的《对混沌工程的五个常见误解》每周都挂在周热榜上。混沌工程从诞生至今 11 年,为什么一篇认知相关的文章,依然有这么高的热度?

改变认知是第一步


“其实用不用混沌工程,思考一个核心问题:不管是否使用混沌工程,故障该来总会来的,不会因为技术栈和业务敏感的差异而有所不同。为了让故障真正来临时能应对得更从容一些,应该提前尝试一下类似的破坏实验。从讳疾忌医逐步走向小范围的可控实验、开放性的大规模生产环境实验,信心是逐渐树立的,关键要走出第一步,并且持续走下去,当然这个过程中,混沌平台本身的可靠性便利性也是非常重要的。”华泰证券信息技术部运行保障中心运维平台开发团队负责人邱朋谈到。

 

认知,是混沌工程进入企业,需要跨过的第一个槛。

 

关注混沌工程最应该关注什么?邱朋认为,最需要关注的是效能,即在关注和计划使用混沌工程时,首先要考虑对混沌工程的定位是什么?对它的投入计划是什么样子?计划收获什么?混沌工程是主动增强系统稳定性的优秀实践,但不是万能的,另外对它思想上的认知、投入力度、SRE的配合参与度都会很大程度影响它的效果。

 

“认知上的改变,要先认可稳定性不是通过前期的设计开发或者后期运维、分析,就能彻底发现隐患、消除风险的,必须秉持’从生产中来,到生产中去’的思路,反复对生产环境进行可控的实验,验证系统在可能发生的场景下的表现以及运维人员应对的有效性,才能通过实战检验系统、检验应急能力。特别是金融行业偏稳态,相关负责人这块的认知和思维上的转变是很关键的。”

难,必须做的规模化演练

 

根据华泰证券的经验,混沌工程实践过程中另一大难点是规模化的演练。企业前期在试点范围内开展时,平台本身的便利性、稳定性相对是不足的,此时可以通过人员的针对性辅导和支持解决,一旦取得一些成效并计划规模化推广覆盖时,平台的问题就会批量爆发,且此时没有足够的人力支撑,容易陷入批量的负向反馈声音中,无论从平台使用的人还是平台开发的人,很容易陷入负面或对立的情绪。在真正规模化推广时,需要预先做好孵化和预热。

 

据邱朋介绍,华泰证券建设了故障演练可观测能力的一体化集成、一键式演练、演练场景库、演练知识库、自动化报表等能力提升便捷性。2021 年上半年,华泰证券开展了保卫波特姆行动,从行情、账户的贴身式辅导,通过试点树立信心,逐渐扩充到理财、交易以及其他 300+核心业务系统的负责人自助化演练,最多的时候一天自助化演练 272 次,期间未因开展混沌工程导致业务受损,反而发现了近百个优化点。

 

并且由于行业特殊性,华泰证券在进行混沌工程实践时,尤其需要注意一些问题。由于证券行业的高稳态要求,首先是不可能直接在生产环境进行实验的,特别是交易类的业务场景。比较可行的方案是在测试或仿真环境,控制爆炸半径及迅速停止实验;在逐渐通过测试环境的少量业务系统的试点,混沌工程平台也基本稳定之后,在一些非核心业务且可靠性比较良好的系统进行生产环境的开展;逐步积累信心之后,通过专项的行动进行规模化推广,同时配套自动化的集成的可观测性手段,以及演练过程的可视化、演练报告的自动化生成和评价能力,能大幅度降低 SRE 的精力投入,也能最大化降低推行的阻力。

混沌工程是整个运营保障工具体系中的一环

 

换句话说,混沌工程是整个运营保障工具体系中的一环,而不是一个割裂的平台。

 

“一旦业务卡顿,我们可以第一时间发现,从而进行及时处置。后续业务能处理,响应时间比较长,基本上没有超时,就是卡。系统进程端口是正常的,系统响应部分超时或者全部超时,长时间没有应答,或者会有超时的重试,所以是业务卡顿、业务无响应、业务完全故障和全链路的故障,我们总结下来,所有故障无外乎是这几种。”华泰证券资深稳定性工程专家王帅介绍到。

 

华泰证券稳定性功能架构包括演练管理、故障演练、演练自动化和演练评价四个功能。上文提到华泰证券在 2021 年上半年做的保卫波特姆行动,所谓波特姆就是 Bottom。华泰证券不断探测系统运行底线,发现技术风险。通过建立故障演练模型、故障矩阵和运维联动,对历史故障进行回放,做系统化的地毯式的演练覆盖。

 

如果以混沌工程能力熟练度的 4 个阶段(入门、简单、高级、熟练)评价,在邱朋看来,目前小部分大型互联网企业已经在此领域的世界范围内走得比较靠前,并且开源共享了部分混沌工程能力,大部分企业处于简单阶段:使用工具化的手段可以自助式进行故障的注入,通过手工观察和结果整理获得反馈,部分具备了分组试验对比的能力。如果从应用度看(暗中进行、适当投入、正式采用、成为文化),绝大多数企业还处于“暗中进行”阶段:对重要项目不采用、只覆盖少量系统、组织内部感知不强、早期使用者偶尔进行混沌实验。

 

目前行业是否有通用解决方案?邱朋告诉 InfoQ:“从故障构造能力(特别是计算资源层面)已经比较通用,业内有开源了部分混沌工程技术以及提供了商用化的高可用方案(如 AHAS、ChaosBlade等),可以考虑集成或使用;对于业务层面的故障分析和构造,以及一体化、智能化的混沌工程建设上,可能各家的方案会有不同,建设的进度也不尽相同,像数据丢失损坏的故障构造方案、带载流量下的故障演练、一体化监控处置能力集成的故障演练等能力,华泰是根据自己的特点进行规划和建设的。” 


采访嘉宾简介:

邱朋,华泰证券信息技术部运行保障中心运维平台开发团队负责人,从事运营商、互联网、证券行业软件开发及运维 12 年,具备丰富的运维体系建设和平台落地经验,目前专注于证券金融行业下智能化、一体化的运行保障平台体系建设和 SRE 技术运营的数字化转型。


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

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

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


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


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


2021-08-27 16:004224

评论

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

数据可视化系列教程之组件通信

云智慧AIOps社区

前端 JavaScrip 可视化数据

软件测试 | 测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测吧(北京)科技有限公司

测试 bug

iOS端如何实现带UI截屏分享

MobTech袤博科技

ios

软件测试 | 测试开发 | 测试工程师用 Shell 定位 Bug 的正确姿势

测吧(北京)科技有限公司

测试 bug

软件测试 | 测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

测吧(北京)科技有限公司

软件测试 测试 软件测试和开发

关于QPalette的使用

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~

测吧(北京)科技有限公司

软件测试 测试 offer

Python 教程之数据分析(6)—— 数据分析的数学运算

海拥(haiyong.site)

Python 9月月更

Qt | 关于对象树和元对象的相关问题

YOLO.

c++ qt 9月月更

直播预告 | PolarDB-X 动手实践系列——PolarDB-X 数据导入导出功能

阿里云数据库开源

MySQL 数据库 阿里云 云原生 PolarDB-X

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

测吧(北京)科技有限公司

测试 自动化测试

字节跳动A/B实验背后的秘密:样本量计算

字节跳动数据平台

数据分析 前端 ab测试 统计原理

软件测试 | 测试开发 | 智能遍历测试在回归测试与健壮性测试的应用

测吧(北京)科技有限公司

软件测试 测试

Qt | 文件信息 QFileInfo

YOLO.

c++ qt 9月月更

高并发下的网络 IO 模型设计

C++后台开发

后台开发 reactor 高并发 epoll 网络io模型

Python 教程之数据分析(5)—— 使用 Python 进行数据分析和可视化 | 第 2 套

海拥(haiyong.site)

Python 9月月更

MySQL系列——约束、存储引擎、事务

胖虎不秃头

MySQL 数据库· 9月月更

软件测试 | 测试开发 | 测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

测吧(北京)科技有限公司

软件测试 测试 offer

基于Hudi的湖仓一体技术在Shopee的实践

Shopee技术团队

Hudi LakeHouse 湖仓一体

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

测吧(北京)科技有限公司

测试 测试用例

字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案

字节跳动终端技术

ios xcode swift LLVM 客户端

MySQL系列——表的创建、插入、修改、删除数据

胖虎不秃头

MySQL 数据库 9月月更

望繁信科技携手复旦大学教育发展基金会,齐心共助公益慈善义拍

望繁信科技

Qt | 关于样式表的使用 QStyleSheet

YOLO.

c++ qt 9月月更

Qt | 关于容器类的一些总结

YOLO.

c++ qt 9月月更

软件测试 | 测试开发 | 测试人生 | 入行未满3年拿下AI领域上市公司30W+ offer,他靠的是什么?

测吧(北京)科技有限公司

软件测试 测试

Qt | 文件操作 QFile

YOLO.

qt 9月月更

【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务快应用卡片接入指南(上)

荣耀开发者服务平台

JavaScript 前端 UI 安卓 honor

离谱了!京东T7手写「并发编程知识手册」,从原理到项目实战详解

了不起的程序猿

Java 并发编程 java程序员 java面试 java编程

Qt | Qt中的一些使用在容器类上的算法

YOLO.

c++ qt 9月月更

MySQL系列——索引、视图、DBA常用命令、数据库设计三范式

胖虎不秃头

MySQL 数据库· 9月月更

用尽一切手段降低MTTR,混沌工程在华泰证券的落地实践_技术管理_张俊宝_InfoQ精选文章