可观测性之旅的4个演进阶段

已知/未知矩阵对于理解你的可观测性方案的实施情况非常有帮助。

译自 The 4 Evolutions of Your Obseryvability Journey,作者 Hazel Weakly。

在进行可观测性之旅时,每个公司都会经历几个具体的阶段。了解这些阶段是如何随着可观测性实践的成熟而展开和形成的,可以帮助您识别何时会遇到某些类型的挑战,以及何时会真正需要某些工具和实践来帮助应对这些挑战。

也就是说,当您与他人交流此事时,您可能会发现很难解释您是如何知道自己处于旅程中的哪个阶段,或者很难阐明您遇到的问题。通常,人们表示很难对此达成共识,这时助记符和心智模型就可以派上用场了。

特别是已知/未知矩阵可以帮助您了解自己处于可观测性旅程的哪个阶段。

在已知/未知矩阵中,我们有四个阶段:已知已知、已知未知、未知已知和未知未知。每个阶段对应于在操作系统时处理三个非常关键任务的不同方式:提出问题、了解系统和解释您学到的内容。

简而言之,这三个任务几乎涵盖了我们在平台工程、可观测性、站点可靠性工程 (SRE) 工作、DevOps 等方面所做的一切。因此,让我们来仔细看看它们,看看如何使用该矩阵来帮助了解您所处的阶段并与他人分享这种理解。

已知已知

“已知已知” 用于描述您在可观测性旅程中所处的阶段,是第一个阶段。您知道您要问什么问题,以及您在看什么。在这里,您希望能够回顾过去,并问:“发生了什么事?”

一些例子:

  • 网站错误数量激增。在哪里,如何发生的,为什么?
  • 最新版本的移动应用程序崩溃次数增多。它只在最新版本中出现错误吗?
  • 我们的身份验证服务完全中断,但仅限于一个地理区域。这是什么意思?

尽管这是第一个阶段,但这实际上是最难的阶段之一。大多数公司和大多数工程师从未超越过这个阶段,而且您将遇到的几乎所有工具和供应商都主要关注这个阶段。这是因为这个阶段完全取决于是否有能力提出关于过去的 meaningful 问题,事实证明,“meaningful” 是一个难以理解的概念。

如果这还不够,那么弄清楚如何让您的工具和系统让您提出这些问题就更难了。难怪大多数人会困在这里,并且会发现很难解释为什么这仅仅是旅程的开始。

毕竟,如果这么多公司在没有做到这一点的情况下也能取得巨大的成功,您可能会怀疑是否有必要一开始就进行这种可观测性之旅。

已知已知是关于调查的。

说实话,如果您不能充分阐明为什么可观测性之旅对公司至关重要,那么您将永远无法完成这段旅程。人的理解和共同的动机必须放在首位。

如果您有以下情况,则表明您处于此阶段:

  • 您会问调查性问题,例如“嘿,在……期间发生了什么?”
  • 您主要通过推断和探索系统来学习,而不是通过预测和预期来学习。
  • 您使用历史记录构建叙述。

让我们来分解一下。

调查性问题是您使用这些系统进行的主要分析类型。您正处于探索阶段,即学习阶段,其中最重要的是弄清楚为什么、如何、什么以及在哪里。事实证明,基本问题可能真的很难回答。您不能总是说这是 DNS 然后就置之不理;您必须能够弄清楚什么以及如何

这意味着您将花费大量时间来推断和探索系统。您不会真正了解系统的预测性,但这是工程师对系统及其行为建立深刻直觉的地方。学习它!玩它!戳东西!这是一个实验和发现的领域。在这里,最合适的工具是那些可以提供即时和增量反馈的工具。

您如何分享您学到的东西的结果?通过写一篇叙述。特别是使用历史记录。事件回顾应该在这里让人感到宾至如归,尤其是带有时间戳的东西。

已知未知

已知未知可以用来描述第二阶段。之所以这么说,是因为我们正在研究我们知道自己不知道的事情,但我们试图了解自己对这些未知事物的理解程度,而如果这些是未知的未知事物,我们甚至不知道从哪里开始。

如果说第一阶段是大多数可观测性工具所在的地方,那么这就是服务水平目标 (SLO) 的时代;这也是可观测性开始以“是,而且”的方式表述的阶段。可观测性?是的,还有性能监控、SLO、开发者体验、用户体验以及……

在具备了弄清楚可以询问过去系统中发生的事情的能力之后,您现在可能主要关注统计问题和开发更全面的关联性。

示例包括:

  • 我们的端点通常很快(在 200 毫秒内响应),但多慢才算太慢?
  • 我们更新了一些依赖项,现在我们的网站突然快了 60%。这……没问题吧?
  • 我们在不同平台上的初始响应时间分布差异很大,以至于当我们添加移动 SLO 时,我们所有的警报都失效了。我们如何解释这一点?

仅仅知道某件事是否发生是不够的,您现在还想找出它有多不正常。在这里,您将了解到,异常好与异常坏对系统来说同样危险。

已知未知是关于分析的。

如果您符合以下条件,则说明您处于此阶段:

  • 您会问统计问题,例如“……有多不寻常?”
  • 您主要通过预测和预期来学习,而不是通过实验或玩耍来学习。
  • 您围绕着惊喜和新奇的情绪来构建叙述。

让我们来分解一下。

统计问题是这里的主要分析类型,而不是调查性问题,因为您试图弄清楚系统随着时间的推移是如何运行的,这样您就可以开始预测其行为。当然,您仍然在摸索和探索,但是当您开始拥有统计洞察力来支持关于更改发生后系统会发生什么的假设时,您就处于第二阶段。这就是为什么一个允许您关联非常不同的数据流、进行一些数字运算,然后用人工注释来注释它的工具在这里最终变得如此有价值的原因。

此外,这里最有趣的发展之一是您的事件报告发生了变化:它们不再关注发生了什么,而是开始关注它有多不寻常或令人惊讶。

如果您曾经读过一份回顾报告,其中提到“我们对这种行为感到惊讶,所以我们进行了深入研究”,那么您就会亲眼看到可观测性之旅的这个阶段。尽管我们的警报告诉我们,问题出在其他方面,但我们还是首先调查了令人惊讶的事情。”

未知已知

我们正在步入一个有趣的领域。这是可观测性之旅的第一阶段,我们从“我们一无所知”开始。这个阶段,未知已知,是指能够预测如果某些事件发生,系统将如何运行。这就是故障注入和用户实验发挥作用的地方。

示例:

  • 如果我们关闭一个可用区会发生什么?
  • 我们的应用程序支持故障转移,但它真的有效吗?
  • 我们的用户满意度计划效果如何?我们可以引入故障并查看客户支持是如何受到影响的吗?
  • 在我们的移动应用程序中,超过一定规模的无线 (OTA) 更新是否会影响转化率?

我们知道我们要对系统做什么,但我们不知道系统做了什么或将要做什么。真令人兴奋!

未知已知是关于实验的。

如果您符合以下条件,则说明您处于此阶段:

  • 您会问实验性问题,例如“如果我们……会发生什么?”
  • 您主要通过实验和玩耍来学习,而不是通过建模或意义建构来学习。
  • 您围绕着实验和学习来构建叙述。

因为实验是这里的主要分析方法,所以我们正在做的是测试系统的边界,并找出它们在哪里以及它是如何运行的。您可以将其视为慢慢地发展理解涌现行为并能够处理它的所有先决条件方面的专业知识(插入伏笔)。

随着您在这里的成熟,开发人员不会进行所有的实验;功能标志也可以用于 A/B 测试、内容个性化和营销漏斗。您应该让公司的每个人都参与到这个阶段,因为实验都是关于学习的,而学习必须以跨学科的方式进行分享,才能最大限度地提高效率。

未知未知

这就是您开始尝试理解系统未来必要形态以及如何在人与计算机之间有效权衡的地方。错误预算开始发挥作用,数据驱动的“足够好”目标得以实现,SLO 和服务水平协议 (SLA) 之间的联系从“感觉驱动”转变为“预测驱动”。

以下是一些有趣的例子:

  • 哪些代码库是最大的业务连续性风险?因此,我们的 SLA 需要达到什么标准?
  • 哪个销售渠道最有效,系统弹性如何影响这一点?
  • 在两个季度内,以下哪项的投资回报率 (ROI) 更高:构建更多公共功能还是为客户成功团队投资内部工具?
  • 我们移动应用性能的哪个方面 会影响 日活跃用户 (DAU) 率?

用可持续发展和系统思维先驱 Donella Meadows 的话说:您正在 与系统共舞

未知的未知因素就像跳舞一样。

如果您遇到以下情况,则说明您正处于这个阶段:

  • 您会提出建模问题,例如“为了实现……,我们的系统需要是什么样子?”
  • 您通过建模、意义建构和跨学科知识共享来学习。
  • 您围绕社会技术动态的相互作用构建叙述。

当您到达这个阶段时,您会感到奇怪,因为您会觉得自己根本没有进行可观察性。事实上,可观察性、开发者体验、平台工程、产品驱动增长以及许多其他事情最终都会在这里汇集。事实证明,当市场和您的系统都很复杂时,您需要培养理解紧急行为的专业知识。从本质上讲,这就是整个可观察性之旅的意义所在:超越命令与控制或预测与控制的限制性范式来理解系统。

旅程即将开始

好了,您已经了解了四个阶段,以及如何将它们串联成一个叙述,让公司中的每个人(而不仅仅是工程师)都能理解您将遇到的挑战类型以及在共同应对这些挑战时所需的工具。

回顾一下:

  1. 已知已知: 调查

    • 如果您想问“在……期间发生了什么?”,那么您就处于这个阶段。
    • 您需要能够快速、交互式地查询数据的工具。
  2. 已知未知: 分析

    • 如果您想问“……有多奇怪?”,那么您就处于这个阶段。
    • 您需要能够关联许多不同来源的工具。
  3. 未知已知: 实验

    • 如果您想问“如果我们这样做会发生什么?”,那么您就处于这个阶段。
    • 您需要能够让公司中的每个人都进行实验并分享结果的工具。
  4. 未知未知: 共舞

    • 如果您想问“为了实现……,系统需要是什么样子?”,那么您就处于这个阶段。
    • 在这里,您需要一种系统思维的文化(抱歉,这里没有工具)。

缺少的一件重要事情是理解踏上这段旅程的动机,将其与理解您所处的位置以及需要去往何处联系起来。它之所以缺失,是因为一个重要的原因:它必须由您自己来书写。您的故事和动机将成为推动您全面了解整个公司系统的关键能量。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注