关于运维:业务系统故障率居高不下有哪些非常有效的治理大招

94次阅读

共计 4055 个字符,预计需要花费 11 分钟才能阅读完成。

一分钟精髓速览

聊稳定性治理的文章很多,但面对零碎的“各类疾病”,到底该从哪里着手能力空谷传声,怎么能力“药到病除”?置信在看这个问题时,大家会抱着“能不能学两招回去用”的心态浏览。
「TakinTalks 论道系列」第 3 期,咱们采访了 4 位资深从业人员,别离从 CTO、稳定性负责人、SRE 架构师、研发工程师等不同视角,去理解大家教训里比拟好用、可能落实的“独门秘籍”。

舒适揭示:本文约 4000 字,预计破费 7 分钟浏览;
后盾回复“交换”进入读者交换群。

去哪儿网 – 朱仕智

高级技术总监

稳定性治理,有哪些十分无效的大招?

* 全链路压测、混沌工程、品质左移 是被动预防危险最无效的三个伎俩

去哪儿网整个稳定性相干的工作都由我的团队负责落地实际,从集体角度来讲,我认为去哪儿历年来在品质保障上,尤其是大规模重大流动保障上,实际进去最无效的伎俩次要有以下三个。

第一个是全链路压测,它对电商型的零碎来说是一个绕不开的话题,只有零碎存在大规模的流量稳定,我认为全链路压测是必须要做的工作。

第二个是混沌工程,在抵挡失控、防止不确定上,它是十分不错的技术手段。通过混沌工程一系列的保障措施之后,在过来的近三年里,咱们再没有产生过任何因为中间件可靠性导致的故障了,这对咱们来说是十分大的提高。另外,现阶段很多问题的排查定位速度也有了质的飞跃,曾经从几十分钟降为 3 -5 分钟的程度。

第三个是品质左移,品质左移让去哪儿的重大故障缩小了很多。前段时间我看了一组数据,品质左移(包含一些品质稳定性保障)做完后,故障数同比曾经缩小了三分之二,即已降到了去年同期约 33% 的水准。
当然,稳定性治理的动作和产出之间,最终并不一定有间接的因果性,只能说具备很强的相关性。所以,想要获得什么样的成绩、打算做哪方面的投入,是须要依据企业的理论状况来评估的。

* 无奈齐全预防的故障,用 AIOps 来自动化剖析,进步解决速度

在去哪儿的故障曾经大幅缩小后,咱们目前正在着手进步故障解决的速度,AIOps 的被动发现和智能归因我认为是性价比最高的。通过上述的三种“被动防止”模式,咱们预防了大部分的故障,剩下 1/3 大多是变更型的问题,而这种变更型的问题较难预防,只能尽可能进步发现和解决速度。自动化智能剖析是咱们目前正在做的事。

从过来一个季度的落地成果看,利用智能剖析进步被动发现率比拟艰难,对于没有人工设置告警的场景,只有 30% 左右能够通过主动剖析的形式被动发现,当然这也阐明了咱们的剖析策略还须要继续优化。然而对于曾经发现问题,进行排障归因的阶段,有 78% 的问题是能够通过智能剖析正确归因的,这次要得益于咱们对大量关联数据的主动剖析,涵盖了宿主机、容器、利用、中间件、事件、链路等维度。

数列科技 – 陆学慧

联结创始人兼 CTO

稳定性治理,有哪些十分无效的大招?

* 十大业务流程梳理,把无限的精力投入到最外围的“20 条链路”下来

在稳定性治理里,我感觉应该做的第一件事件就是梳理十大业务流程,其最次要的作用,就是把公司可能投出来的最外围的资源投到最外围的业务下来。大多数企业在稳定性上都不会投入太多的人力,那么无限的精力到底该投到哪里去?假如有 5000 个接口,难道都要搞吗?不可能的,只有保障外围的那 20 个接口不出问题即可。

当然,在一开始没有工具的状况下的确会耗点工夫,但它依然是投入产出比最高的方法。十年前阿里外部提出了几个大的技术策略,可用性是其中之一,在没有工具撑持的状况下,咱们过后的做法就是大家都去梳理十大业务流程,把十大业务流程保住,剩下的链路不去投入太多精力,年底整体的可用性的确晋升了很多。所以我感觉梳理十大业务流程应该是最无效的方法。

* 外围业务流程做全链路压测,是流动必备的大招,确保在老板关注的大节点上不出大问题

把十大业务流程梳理进去后,就能够去做全链路压测了。在具体做法和工具上,有很多成熟的教训可供参考,也有很多方法去落地。我认为把这两招做完后,再搞大型流动就根本不会有什么问题了,即老板关注的大节点上,有方法可能把控,做到成竹在胸,所以这一招我认为也是比拟成熟的能够去落地的“大招”。

* 公布之前提交变更注销,抓好变更是落实稳定性标准的外围

我记得《Google SRE》那本书外面也提到过,60% 的故障都是变更引起的。实践上说,变更这件事件抓得越粗疏,出问题的危险就越小,但思考到投入的人力、精力和落地可行性,我认为抓好一点就够了,即做好线上变更注销(可参考阿里变更管控平台 ChangeFree)。
“不注销,负全责”,简略讲,就是规定做线上变更前,必须在零碎平台中注销,并写下操作步骤以及如何验证。从技术上讲,它就是一个表单,实现起来并不简单。对于提交变更,还能够对定责做约定,即如果没有提交变更单就公布变更,出了问题就由公布人担责;如果变更前提交了注销则无需担责。咱们常常在探讨稳定性标准要如何落地,其实规定不能定太多,规定太多大概率会无奈落地,我认为变更注销是落实稳定性标准十分外围的一点。

* 外围业务流程不依赖非核心节点,离开部署,保障十大业务流程的机器和数据独立

如果以上 3 点落实后还有余力,我认为在架构上还有一点值得投入——外围业务流程上不能依赖非核心的节点。梳理完十大业务流程后,肯定要判断链路上是否有咱们认为的非核心节点,如果有,那么应该把那些节点踢出去,或者把他们剥离进去,哪怕独自部署一套机器,也就是分组,其实提供的服务都一样,然而某一组机器就只给外围业务,其余机器能够由非核心业务混用,这样就能做好隔离。

以上四个方法我认为是在稳定性治理中性价比十分高的几点,如果能真正落实,我认为零碎稳定性根本会有 40% 的晋升,至多零碎不会呈现的大问题,也能有精力去继续优化小问题。

飞书 – 张相龙

资深研发工程师

稳定性治理,有哪些十分无效的大招?

新的架构和业务减少后,从技术上看,无非是前端到服务端,再到存储的调用过程,在这个过程中要做的就是如何去解决其中的稳定性问题,我认为有三点比拟重要。

** 第一,做好监控。

第二,把所有的强弱依赖梳理进去。

第三,对所有的强弱依赖和接口,在平台上做好 trace 跟踪、链路管理、数据分析,以及每一个节点流转上的成功率、失败率、SLA、PCT99 等各方面的监控和预警。**

你可能认为,这些动作看上去如同和业务没有关系?实际上,上线一个新的性能,它肯定是接口维度的,这个接口在平台上做户口注册,接口的 QPS、SLA、PCT99 等数据都能够在框架层面主动上报做统计分析,同时也会随着接口调用绘制出 trace 门路,并跟进 trace 门路失去强弱依赖,这样就实现了对接口在技术层面的所有和品质 & 性能相干指标的治理。
做好这些治理后,从问题产生,到疾速发现问题并告诉到相应的服务提供人,再到解决问题,就能够完满地闭环了,所以不论业务如何变动、变得多简单,并没有太大的影响。这样稳定性的保障工作,就曾经能够下沉到基建层面了。

浙江挪动 - 蒋统统

SRE 架构师

稳定性治理,有哪些十分无效的大招?

浙江挪动在近些年的架构演进中,一方面随着云原生行业的倒退,逐渐实现对外围业务零碎的微服务化以及容器化革新;另一方面,面对国家对国有企业发展国产化自主可控后行先试的策略要求,也在继续进行各类国产化软硬件的替换试错,包含数据库、存储、服务器、操作系统等等。因而咱们在长期的踩坑过程中也积淀了一些稳定性保障教训。

* SRE 参加到架构设计、入网管制、测试公布、应急抢修等各个环节,建设残缺的“护航体系”

传统的研发运维边界往往处在上线交付的工夫线上,而稳定性治理工作也都是作为预先的反向晋升工作,须要付出大量的工程老本和反复人力投入。因而咱们拓展了 SRE 的职责边界,将稳定性工作左移至软件生命周期的更前端,联结研发提前发展可观测性、稳定性等保障布局,建设起全局的平安生产“护航体系”。当初咱们 SRE 团队除了惯例的线上问题修复外,还会波及上线之前的测试公布,甚至再往前波及架构评审等的各个阶段 SRE 都会加入,如此能够全程参加故障的预防和管制。

* 在利用多活的根底上,建设笼罩业务、集群、网元的多层预案体系,进步应急团队抢修效率

架构团队当初做新的技术栈引入,或者新的架构变更等等,都有相应的架构评审或架构治理,在这种状况下,咱们设了比拟多规定,比方链路梳理、强弱依赖梳理、耦合点剖析等等。还有更重要的是,会在多活分片的根底上看整个链路环节是否有相应的业务开关,并对每个节点做预案管制,在链路上预埋相应的预案开关,在交付到应急团队时就能依据相应的预案伎俩及时处理。

那么如何去评估最终的成果?外围零碎架构治理后,实践上不容许再呈现 G4(浙江挪动外部的故障危险等级)以上故障,即不应呈现客户或者业务受审达到较强水平的故障。

* 构建独立的应急零碎,做“多活”的备份,对外围业务做兜底保障

咱们尝试构建了一个齐全独立的应急零碎,和所有生产立体进行解耦,不和现有生产立体处于同一个机房。比方,浙江挪动的生产立体,目前是杭州 + 宁波两地多核心的架构,那么应急零碎就在金华从新构建。同时,这个应急立体零碎和生产立体零碎是不一样的,在原有的多活架构中,比方杭州和宁波的机房中可能利用部署截然不同,然而在应急立体零碎中,咱们只保留了最低水平的服务状态。咱们基于 BASE 实践对所有外围业务进行拆解,只把重点依赖的服务在应急零碎中从新集成,并将前台受理流程极简化,而且这部分应急数据和生产的数据是不做实时同步要求的,容许有损。因为前台用户在业务受理的过程中,大多数只关怀前台的业务动作是否失常。在真正面临所有生产立体不可用的极其状况下,应急零碎会主动启用并疏导用户进入该立体持续办理业务,而等到生产立体的能力复原后,再主动将所有应急数据同步回生产零碎保障业务数据最终一致性。

增加助理小姐姐,凭截图收费支付以上所有材料

并收费退出「TakinTalks 读者交换群」

申明:本文由公众号「TakinTalks 稳定性社区」联结社区专家独特原创撰写,如需转载,请后盾回复“转载”取得受权。

本文由博客一文多发平台 OpenWrite 公布!

正文完
 0