第 4 章. 利用事件度量改进规模化 SRE
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
无论您的服务是希望增加下一打用户还是下一个十亿用户,您迟早都要讨论在服务扩展的过程中需要在哪些方面投入多少资金以保持可靠性。在本章中,我们将通过一个来自 Microsoft Azure 的案例研究,介绍如何使用事件指标来确定投资重点。它应用了我们在各种服务可靠性方面学到的经验,从初创公司到企业服务,一直到云规模。Azure 是一个特别好的案例研究,因为其巨大的规模、增长和产品的多样性放大了典型的可靠性主题。我们将展示如何利用数据和一些创新技术来分析和报告这些主题,从而帮助我们推动改进。
良性循环的拯救:如果你不测量它...
与任何问题管理工作一样,我们首先要查看数据。然而,当我们去做这件事时,却发现我们有成千上万的数据源、服务遥测、事件管理指标、部署指标,等等。事实上,我们有如此多的数据源需要查看,以至于在决定查看哪些数据以及以何种顺序解决问题时变得非常棘手。在研究了业内最佳实践并咨询了专家之后,我们最终确定了一个称为良性循环的系统(如图 4-1 所示),作为我们改进工作的基础。良性循环创建了一个框架,我们可以利用这个框架,通过检测故障的速度来了解监控的有效性,通过衡量根本原因分析(RCA)流程和修复情况来了解从故障中吸取教训的效果,以及修复错误的速度。然后,我们可以查看我们的代码质量和部署速度,以了解我们完成整个周期的速度有多快。
图 4-1. 良性循环
作为 SRE,我们知道每一分钟的停机时间都很重要,因此我们首先要找到关键指标,以了解我们在响应和修复事件方面的效率。这意味着我们首先必须定义具有代表性的指标,然后就定义和开始/结束时间达成一致。让我们深入了解一下我们选择的指标,以及为什么我们认为它们如此重要:
- 检测时间 (TTD)
检测时间是指从影响开始到操作员看到事件发生的时间。我们在客户首次发现影响时开始计数,即使我们的监控没有检测到影响。这通常与违反服务级别协议(SLA)的时间相同。
信不信由你,TTD 是需要手动采取缓解措施的事件的最重要指标。这一指标决定了监控的质量和准确性。如果不了解客户的痛苦,就无法开始恢复过程,当然也就无法启动自动化响应或缓解。也许更重要的是,您无法向客户传达您知道问题所在并正在努力解决的信息。TTD 所面临的挑战是如何平衡监控灵敏度,以便快速、准确地发现所有客户问题,同时又不会因为不影响客户的问题而不断打断工程师的工作。
- 参与时间 (TTE)
这是指从检测到适当的工程师参与的时间。这在事件发生期间可能很难确定,有时甚至在事件发生后也很难确定。在战争的迷雾中很难回过头来看单个工程师的情况,因此可以用第一个到达现场的工程师来估算。这个指标对于考察我们如何有效地调动响应非常重要,它既包括分流时间(确定严重程度和所有权),也包括升级和调动响应人员的时间。有很多方法可以改进这一点;自动升级和寻呼系统、对值班的明确预期、随叫随到的支持模式,甚至改进的监控都有助于确保警报在第一时间传递给正确的值班工程师。
- 修复时间 (TTF)
这是响应者缓解问题所需的时间。
如图 4-2 所示,所有这些指标加在一起(TTD + TTE + ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access