赞
踩
重点介绍了云原生背景下运维转型的思考,围绕着整个 DevOps 交付链,贴近业务不断输出运维的能力与价值。这篇内容我想谈谈 DevOps 的下半段,通过我们的构建服务稳定性保障实践,利用 SRE 的思想与方法,不断去冲刺稳定性的终极目标: “提升 MTBF(平均故障时间间隔)、降低 MTTR(故障平均修复时间)”,很多小伙伴会有疑问,DevOps 与 SRE 到底是什么样的关系?在 Google 出版的第二本书《The Site Reliability Workbook》的第一章节 ,已经明确给出了这个问题的解释,一行代码胜千言:“class SRE implements interface DevOps”,即 SRE 是 DevOps 的一种实现方式,也是 Google 在运维领域的一种具体实践。个人也比较认同这个解释,也深受启发,不得不佩服 Google 大佬的抽象与总结能力,放眼国内运维行业的发展历程,也潜移默化在形成自己的发展路径,实践与 Google 提出的 SRE 具有异曲同工之妙,缺少的是进一步做抽象,形成一套完整的方法论体系。本文的出发点也是站在巨人肩膀之上,结合自身业务服务场景,思考在云原生背景下,运维转型还有多少种可能性,本文或许只给出其中一种答案吧。
我们因地制宜,根据 IEG 海量在线营销的业务场景,引入 SRE 度量的机制、定制 SRE 准则,以及打造较为完备的工具链体系,以下是团队构建的玄图-SRE 稳定性建设全景图:
图2.1 - 玄图-SRE稳定性建设全景图
在这个体系中,云原生环境下的 IAAS 或 PAAS,我们关注的是 MTTF (Mean Time To Failure,平均无故障时间),这个能力由基础设施团队来保障。
全景图的中间是我们的玄图 SRE 体系,采用蓝鲸多级编排组装体系中的各种能力项,MTBF 列意为平均故障时间间隔,可以理解成稳定性保障的事前与事后,在这个环节中,我们在原有基础上扩展出两个核心能力,其中一个是“混沌实验”,旨在通过主动注入服务故障,提前发现并解决系统存在的隐患,提升系统的韧性;另一个为“全链路压测”,模拟真实的并发数及用户访问,通过自动拓扑图快速找到影响性能模块,定位问题根源。MTTR 列意为故障平均修复时间,这里我们拆解了 5 个步骤,分别做下解释:
这个环节作为稳定性保障的“事中”尤为重要,其中可观测性作为下一代的质量监控的代表,通过强化分布式服务的日志、链路、指标的关联,缩短发现问题、解决问题的时间,可以极大缩短 MTTR 中 MTTL 的耗时。
在实践 SRE 过程中,我们总结并提炼了“SRE 8 准则”,来指导我们的日常运维工作。有了这 8 个准则,就很清楚我们需要具备什么样的能力与工作方法,来达成什么样的工作目标,同时也延伸出下面介绍的 SRE 工具链。首先简单介绍我们的 SRE 8 准则,下面简要进行剖析:
量化目标是一切工作的起点,所有运维工作都以围绕 SLO(服务水平目标)指标的定制、执行、跟踪、反馈来展开。其中定制与执行因各业务形态的差异,此处不进行展开,指导的原则是选择合适的 SLI(Service Level Indicator,服务等级指标),设定对应的 SLO。梳理与采用业务侧关注的 SLI 指标,目标值达成一致即可。我们具体的 SLI 采集实践见第一篇文章的云原生应用监控 章节,其中关于识别 SLI Google 提出 VALET 法,分别是 Volume、Availability、Latency、Error 和 Ticket 的首字母,这 5 个单词就是我们选择 SLI 指标的 5 个维度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。