《架构师》2021年9月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

推荐文章 | Article

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

作者 张俊宝

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

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

1 改变认知是第一步

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

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

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

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

2 难,必须做的规模化演练

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

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

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

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

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

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

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

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

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

采访嘉宾简介:

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