一分钟精髓速览
中国信通院最新的调查报告显示,越来越多企业正在尝试通过混沌工程来进步零碎稳定性。试验的不同阶段,大家面临着不同的问题,咱们尝试从混沌工程推动的不同角度,为大家提供一些解题思路。
「TakinTalks 论道系列」第 4 期,咱们邀请了 4 位正在进行相干实际、钻研的从业人员,从不同视角分享对混沌工程的认识,在他们的教训中理解混沌工程如何推动、如何落地、如何避坑……
微信公众号后盾回复“交换”进入读者交换群。回复“报告”获取最新混沌工程钻研报告。
主持人:中国信通院最近颁布了两个调研后果:从 2021 年到 2022 年,许多企业尝试进行混沌工程;大部分企业依然只在测试环境中进行混沌工程,或者在预生产环境中进行。咱们想理解下,大家作为正在落地相干试验的企业,在实践中认为有哪些值得特地关注的点?(数据来自:《中国混沌工程调查报告(2022)》)
中国人寿 - 刘玢: 我想分享一下中国人寿在混沌工程落地时遇到的关键点和避坑点。在测试和开发环境中,咱们关注的是故障模拟能力。包含根底故障、中间件故障和利用故障等,因为利用故障很难复现,咱们通过组合故障来模仿和复现故障。而在准生产和生产环境中,咱们的关注点是在监控能力整合上,会更关注监控的及时性、全面性和平安管控等方面。中国人寿有很多监控零碎,比方硬件监控、网络监控、数据库监控、中间件监控、日志监控、利用监控、链路监控等等,但把这些监控整合起来,对接到混沌平台依然有难度。将来在生产环境中落地混沌工程,咱们则会关注如何管制爆炸半径。这须要及时、全面的监控数据反对。尽管目前还没有上生产,但咱们始终在致力摸索如何管制爆炸半径。曾经联合压测平台实现了一部分性能,但咱们仍需一直致力。
太保科技 - 刘强: 目前太保科技和中国人寿在混沌工程利用方面还有阶段性的差距,目前咱们还在测试环境摸索阶段。在这个阶段,我认为混沌文化理念的认同感是十分重要的。在金融行业中,业务连续性的要求十分高,特地是在太平洋保险成立太保科技后,原有团体的用户都变成了咱们的甲方,对可用性的要求更高,生产中断是不可承受的。因为在生产或者准生产环境注入故障,一旦管制不好,导致混沌试验造成了业务中断,这样对整个混沌工程的推广会是一个十分大的打击。所以第一个关键点就是,在企业里把混沌工程理念宣贯透彻。另外一个关键点就是混沌工程须要有及时中断的控制能力。混沌工程的目标是发现零碎中的问题,不论是在哪个环境中试验,发现问题就阐明零碎的强健性是不够的。为了防止产生零碎解体、服务不可用等更大问题影响到整个生产环境,须要有强有力的中断控制能力,同时也能够在小范畴内摸索和解决潜在的问题。
TakinTalks 社区 - 杨德华: 今年年初,其实我深度思考了这个问题,“为什么混沌工程在有些企业能做得好,但有些企业落地成果很个别”?外围起因我总结了次要有 3 个方面——高层器重度、落地做法、指标设定。高层的器重度这里不赘述,稳定性工作自身就是一个跨多团队的事件,有了下级的反对,推动会更加顺利。其次是落地做法,尽管有些企业明确了要推动混沌工程,外部也宣导了要晋升稳定性,然而理论执行中的做法区别还是比拟大的。比方是不是有足够的经费、制度上有没有保障、有没有设定 0-1-5-10 这样的具体指标等等。再比方只是在利用内试验,还是网络设备、利用内、利用于中间件、利用与利用之间等等都涵盖,不同的做法会影响到最终的成果。最初特地提一下指标设定。我认为技术实现层面的事件其实并不难,最要害的是在确定要做混沌工程后,肯定要设定一个 0-1-5-10 的指标,而后依据这样的指标去制订落地和保障计划以及拆解执行。要想把混沌工程推动上来,这个指标是十分重要的,不然对于我的项目的牵头人来说,混沌工程的价值会很难出现和表述。所以我认为从全局的角度来看,这三个点是推动混沌工程中十分值得关注的点。
主持人:很多企业的混沌工程都有参考信通院近两年的政策和规范领导文件,所以信通院对于阶段性落地的关键点应该是比拟有发言权的,海清老师这块您看看是否做些补充?
混沌工程实验室 - 王海清:我能够从整体行业视角来补充一些信息。信通院在做相干技术推广中,提倡大家在生产环境中去发展混沌演练,因为不论是测试环境还是准生产环境,无论如许仿真的环境都不可能和生产环境完全一致,只有在生产环境的演练才是最真实有效的,且测试环节和准生产环境的老本都很高。但理论状况是,因为恐怖试验失败带来更加不可控的危险,大多数企业在接收混沌工程时都抉择在测试环境中进行演练,这是能够了解的。
所以倡议在开始混沌工程的初期,尤其在组织外部分布式化革新之后,在零碎稳定性保障体系建设初期,能够先在开发环境中补齐显著破绽,而后再往仿真环境或预生产环境中发展。在金融机构中咱们确实还没有看到哪一家能十分好地在生产环境中发展混沌演练(证券行业除外,业务较为非凡)。尤其银行业,因为业务连续性要求极高,且无奈回滚,只能花较多经费放在仿真环境上。那么在仿真环境中咱们是倡议有重点地推动,先建设外围利用的仿真环境,因为做仿真演练,不论是架构还是经营体系,其中的老本是十分高的。如果肯定要投入,能够先从外围业务开始。当仿真业务无奈满足需要时,能够在生产环境审慎做演练尝试。此时,倡议能够在边缘系统中尝试,比方中国人寿的在客户节流动平台客户量较少或者简直没有流量时,在生产环境做一些故障注入的尝试。通过这种小范畴的尝试来逐渐建设试验信念。
除了技术上的建设,还须要在组织外部做一些文化上的宣贯工作,让大家接收失败,并通过失败向胜利迈进,这是零碎混沌工程的组织文化建设的重要性。
主持人:对于平台建设过程中如何把控整体的节奏和布局,包含团队须要具备哪些能力和应用哪些工具?咱们晓得信通院有一个混沌工程平台成熟度模型的评估规范,规范是否在以上这些方面有具体标准或领导呢?
混沌工程实验室 - 王海清: 我认为这个问题十分好。咱们实验室在混沌工程标准化方面的钻研较早,也曾经做得比拟深刻了。仅混沌工程方向,咱们目前已制订了两个规范——一个是面向供应商的平台能力要求,次要从技术框架的角度,去看怎么实现能力的梯度建设;另一个是成熟度模型,针对甲方的视角,从技术和成果角度推动混沌工程的应用。因为对于甲方来说,仅仅购买或建设平台是不够的,还须要在组织外部落地并让更多的团队承受和应用混沌工程。联合这两个规范,以及混沌工程文化的建设,我分享一些对这个问题的认识。(能够后盾私信“能力模型”,获取信通院混沌工程成熟度能力模型)
从技术角度来看,咱们建设混沌工程模型采纳了梯度化的办法。比方,最开始能够承受混沌工程没有工具,先采纳一些开源框架做尝试,随着大家认知度的回升或者对混沌理念的承受,能够逐渐驳回开源框架或者洽购商业化版本。在初期,如故障编排、场景梳理等等,都须要人工去实现,在利用加深的同时,也能够同步迭代自动化工具的程度。另一方面是故障报告,目前还没有看到有智能化的存在,但一些企业正在进行摸索。将来,咱们的预期是实现智能化,让零碎主动依据被测系统架构的变动生成相应的故障场景,验证零碎韧性和响应状况。从平台和工具的角度来看,咱们须要逐步完善自动化能力并进步智能化程度,以实现梯度化的倒退。
从成果角度来看,咱们的指标是在组织内推广混沌工程。为此,能够通过一些指标来辅助其落地。比方成立一个关注混沌工程利用状况的虚构组织,通过统计演练打算的实现水平、故障场景摸索水平、稳态指标笼罩水平、故障闭环水平和产品赋能水平等。通过量化这些指标并可视化数据,能够理解到不同团队的混沌工程应用状况,并依据试验发现的问题来评估外部零碎的平安运行程度。
另一方面,咱们也须要在组织建设方面进行致力,包含团队建设和文化建设。在团队建设方面,咱们能够激励工程师尝试混沌工程的开源工具,并逐步推广到小规模应用和专门的混沌工程团队。前期,咱们须要把混沌工程扩散到研发、测试和运维团队,并让业务线上的人员具备根底的混沌工程试验注入能力,从散兵游勇到正规军再到全民混沌的程度。通过这些组织建设措施,咱们能够进一步提高混沌工程的成熟度。文化建设也是采纳梯度化的办法。最后的阶段是没有这种文化的,组织外部须要本人去理解并晋升集体能力,如加入沙龙或在线技术分享等流动。当组织外部驳回混沌工程工具后,须要思考在组织外部构建文化。这能够通过定期的培训、操作培训、常识分享和混沌演练等流动来实现,如 Game Day 和红蓝反抗。这些流动能够帮忙组织外部晋升接收故障并应用故障来晋升稳固运行程度的理念。另外,还有一些例子,如华泰证券组织外部周期性地评比混沌演练次数或成果最好的团队、老师或技术专家。通过发展这些具体的流动,能够带动组织外部的混沌工程文化。
主持人:海清老师从监管方或政策制订方的角度聊到了大方向的节奏,具体到各家企业可能也会有一些不同的实际方法。后期理解到太保科技目前是在落地混沌工程的比拟晚期阶段,调研数据显示目前靠近 80% 的企业都是差不多在这一利用阶段的,所以咱们也想理解下太保以后的整体节奏,包含利用状况、团队建设和布局是怎么样的?
太保科技 - 刘强: 咱们并不是一开始就去建平台做工具,而是先理解并对混沌理念有了初步的意识,而后在本来负责业务连续性的团队中安顿了一两个人,从去年开始就在进行相似混沌工程的试验,即人工在生产零碎中制作有打算的毁坏。这样的毁坏是在责任团队不知情的前提下发展的,是相似红蓝反抗的理念。咱们通过这些流动找到了一些零碎上的高可用问题,并且在一段时间内获得了问题,也向下层展现了咱们每天进行的毁坏动作。首先查看零碎的全链路高可用机制是否存在,咱们发现有些高可用机制的确缺失,还有一些高可用机制尽管存在,但在咱们的毁坏中发现并未失效。当然,咱们进行的毁坏是有打算的,对生产零碎的影响根本能够忽略不计。通过这些伎俩和流动,能够让下层看到生产环境中依然存在许多危险隐患。因而,咱们须要工具和平台来将这些破坏性的工作变成日常工作,而不是仅依附人力来实现。这就是咱们去年一整年做的铺垫。
要让混沌工程正式落地,我认为的确是须要找一个契机。那咱们找的契机是什么呢?这两年咱们引入了一些新的技术架构进来,咱们通过演练发现了一些不欠缺的点,也为新建的技术平台带来了比拟大的帮忙。基于这样一个契机,咱们外部也造成了一个对混沌工程平台建设的统一认识,即混沌工程是一件十分有价值的事件。布局方面,咱们往年会在开发环境中先欠缺混沌平台,并造成可落地的场景。明年可能才会在失常的环境中推广和落地,生产环境可能还须要一些工夫。
主持人: 当企业实现了后期的立项铺垫,进入到测试环境、准生产环境的正式试验了,那这块的节奏又要怎么把控呢?咱们此前理解到,中国国寿的测试环境和准生产环境混沌试验是穿插进行的。刘玢老师是不是能够具体讲讲国寿这方面的教训?
中国人寿 - 刘玢: 正如您方才提到的,咱们的测试和准生产环境是穿插进行的。在推动这项工作时,咱们并不是齐全依照开发、测试、准生产和生产这个梯度来进行的,整体我认为能够分为三个阶段。最后有几个工程师先试玩,在失去比拟好的成果,向管理层汇报并失去认可后,咱们开始铺开做第二阶段的混沌试验。第三个阶段是最重要的,整个混沌工程做出肯定的成果后,咱们将其加到了研发核心的高可用成熟度模型中。这个模型包含灰度公布、在线压测、容量布局等等,咱们将混沌工程的故障演练退出到这个模型后,让它成为了一个标准化的高可用晋升动作。即从组织层面对钻研混沌工程的团队有加分,更加认可其高可用程度,团队也会认为混沌试验对其工作帮忙较大。这样就从文化理念上造成了共识,咱们认为此时是进入到了比拟成熟的阶段。
从队伍和能力建设方面来谈,咱们有一个虚构团队,混沌小组是其中的一部分,还有环境保护人员和部署团队的人员独特来做这个工作。其中最重要的角色是测试工程师,因为混沌工程理论有很多的工作和测试相似。包含发压、测试脚本的编写、故障复现等等,这些工作都是测试工程师来做的。架构师队伍也扮演着重要的角色,因为在做故障演练时,咱们须要对被演练的零碎以及其上下游周边零碎的架构有十分深刻的理解,这样才可能更接地气,疾速地推动整个工作。另一个重要的角色是负责文化理念共识建设的人员,咱们称为“混沌教练”。他的次要工作是向各个团队宣传混沌工程,并展现它的功效和成果。在初期阶段,这个角色十分重要,因为人们对于新事物的承受须要工夫。因而,混沌教练须要一直游说各个团队和产品经理,以便让他们了解咱们的工作并退出其中。
除此之外还有环境保护人员和部署人员。在混沌工程中,咱们须要一直搭建各种环境,并在呈现故障时疾速复原。因而,环境保护人员在整个团队中也扮演着十分重要的角色。虚构团队中还有部署团队,他们的主要职责是对各个系统进行部署和运维,并在生产故障时进行模仿和应急预案晋升。他们既是咱们的用户,也是整个团队中的重要成员。
综上所述,整个团队的人员和能力散布须要思考到各种不同的角色和职责,以便更好地实现混沌工程的各项任务。
中国信通院王海清: 我有一个特地感兴趣的问题,尤其是人寿和太保应该是偏差于金融行业,那么大家当初这个阶段施行混沌工程最大的痛点是什么?就是须要破费最多的工夫和精力来解决的问题是什么?
中国人寿 - 刘玢: 我想分享一下我的实在感触。这个感触不能称之为痛点,其实是我集体的困惑。目前咱们破费了大量工夫和精力来晋升爆炸半径管制和生产平安管控建设,但我最大的纠结点,是金融行业很少有公司将混沌工程利用于生产环境,而咱们却将大量工夫和精力投入到生产方面的能力建设中,我比拟放心投入不会带来预期的回报,因为上生产这条路充斥了崎岖。尽管咱们在发现问题和为产品团队提供价值方面做得很好,但最难解决的问题是如何使咱们的成绩在生产环境中失去充沛的利用。
太保科技 - 刘强: 咱们这边的一个难题是咱们在生产环境中进行混沌工程试验时左右为难——既心愿发现问题,又不心愿发现问题。因为发现问题意味着这次试验对生产环境会产生一些影响。而如果没有发现问题,这次试验就只能证实生产环境还能够,而没有获得更大的价值。这是一个左右为难的问题。刘玢老师提到的问题,我有一个想法,就是混沌工程试验既能够帮忙咱们找到生产环境中存在的隐患,也能够对开发测试环境产生踊跃的影响。通过在开发测试环境中寻找利用代码的问题,咱们能够帮忙应用程序的开发人员更好地开发他们的应用程序。这些实际在生产环境中未必可能执行,然而对应用程序的开发仍具备肯定的价值,我认为能够从这个角度去思考利用价值。(全文完)
「TakinTalks 稳定性社区」微信公众号后盾回复“交换”进入读者交换群。回复“报告”获取最新混沌工程钻研报告。
本文由博客一文多发平台 OpenWrite 公布!