ASOS

使用 Grafana Cloud 缩短 MTTR:ASOS 可观测性堆栈内幕

在线时尚和美妆零售商 ASOS 拥有超过 2300 万全球活跃客户——有些人可能在寻找参加目的地婚礼的那双完美鞋子,另一些人可能在寻找那件必备的复古连衣裙。但无论他们的购物清单上有什么,所有 ASOS 客户都在寻找并期望获得无缝的在线零售体验。

为了不断提供这种体验,ASOS 工程团队依赖 Grafana Cloud 进行实时可观测性。

ASOS 首席工程师主管 Dylan Morley 表示:“我们绝对能够及时应对发生的事件。针对我们的许多面向客户的旅程(即客户在我们的网站上执行的常见操作旅程)设置了告警。如果这些旅程中的任何一个未能按预期工作,负责提供支持软件的一线支持和平台团队都会收到告警。一旦出现问题,我们几乎能立即知晓。”

更重要的是,Grafana Cloud 使 ASOS SRE 团队能够获得他们在复杂微服务环境中所需的端到端可见性。

ASOS 网站可靠性工程师 Fahri Ulucay 表示:“由于基于微服务,我们在年初存在一些可观测性空白,我们的目标是弥合这些系统之间相互交接的空白。有了 Grafana Cloud,这是我们的团队能够带来的一项成果——对不同系统中的订单和信息流有一个全面的视图。”

如今,约 800 名 ASOS 工程师使用 Grafana 仪表盘。除了缩短 MTTR 外,Grafana Cloud 在多个方面帮助 ASOS 推进了其可观测性战略——从使用即开即用的 Kubernetes 监控 仪表盘节省时间,到通过 Grafana Cloud Metrics 降低成本。

但要完全理解 ASOS 从 Grafana Cloud 中获得的益处以及期望未来看到的益处,了解他们从何而来会很有帮助。

为什么 ASOS 从 Grafana OSS 迁移到 Grafana Cloud

在 2015 年从本地 Windows 环境迁移到 Microsoft Azure 后,ASOS 工程团队在大规模可观测性方面遇到了一些挑战。

他们将日志和指标存储在 Azure 存储账户中,并使用多个开源工具聚合数据以实现环境的集中视图。但 Morley 解释说,当团队试图响应网站上的事件时,却被延迟所困扰。

他说:“当我们在尝试观察高峰期时,问题就显现出来了——当许多人在系统上运行查询时,你会开始看到系统变慢。随着我们规模扩大并产生更多遥测数据,我们开始看到数据摄取端到端延迟变长,以便进行查询。”

为了解决这一挑战并获得他们所需的近实时可观测性,团队于 2017 年转向了 Grafana OSS。他们选择 Grafana 的原因之一是 ASOS 的性能测试团队已经使用它进行数据可视化。更重要的是,Grafana 支持广泛的数据源——值得注意的是,包括针对 Azure Monitor 的数据源,这使得工程团队能够获取他们在 Azure 中的所有遥测数据并在 Grafana 中进行可视化。

Azure Service Bus template dashboard utilizes Azure Monitor metrics, enabling consolidated viewing of data from all Service Bus instances.

Azure Service Bus 模板仪表盘利用 Azure Monitor 指标,实现对所有 Service Bus 实例数据的集中查看。

Morley 说:“从那时起,Grafana 在整个公司内的使用变得更加普遍。人们开始采用它作为显示遥测数据的主要仪表盘解决方案。”

除了可视化之外,Grafana OSS 还帮助改善了延迟问题。在 Grafana 之前,团队需要 10 到 15 分钟才能访问他们排除故障所需的指标。有了 Grafana,团队能够利用 Azure 改进的摄取管道和内置遥测功能,并战略性地将端到端延迟目标设定为一分钟。

鉴于 Grafana OSS 的优势,ASOS 对该平台的采用迅速增长。他们在多个地理区域运行 Grafana 以实现地理冗余,并管理着他们自己的大规模 Graphite 实例。随着采用的增长,工程团队达到一个临界点,他们希望继续利用 Grafana 的价值,同时摆脱更新和维护的开销——特别是时间序列数据存储。因此,在 2022 年 1 月,他们决定迁移到 Grafana Cloud。

Morley 说:“[Grafana Cloud] 意味着我们可以专注于可观测性——充分发挥平台的作用——而无需自行运行它。”

访问 Grafana Enterprise 插件 是 ASOS 从 Grafana OSS 转向 Grafana Cloud 的另一个关键益处。

Morley 说:“当我们自己运行 Grafana 时,我们需要查询 New Relic 和 ServiceNow,所以我们构建了一些内部版本的插件——但所有这些都伴随着维护的开销。Enterprise 插件的一个好处是我们可以弃用 [我们现有的插件],直接利用 Grafana Cloud 提供的功能,减少我们需要拥有和维护的代码。”

Grafana Cloud 如何帮助 ASOS 缩短 MTTR、降低成本等等

通过转向 Grafana Cloud,ASOS 工程团队知道他们将能够以所需的规模获得所需的实时洞察。

团队受益匪浅的一个方面是使用了 Grafana Cloud Metrics——Grafana Cloud 中完全托管、高度可伸缩的指标服务,由 Grafana Mimir 提供支持——作为 Prometheus 数据存储。

在实施 Grafana Cloud Metrics 之前,团队使用 Azure Container Insights for AKS 收集 Prometheus 指标并将其存储在 Azure Log Analytics 中。但他们注意到,当他们从 Grafana 向 Azure Monitor 和 New Relic 数据源发出大量查询时,有时会达到速率限制,这会导致仪表盘出现超时错误。于是,团队进行了调整,转而将 Prometheus 指标发送到 Grafana Cloud Metrics。

与此同时,他们还开始预聚合常用的数据点,将数百万条记录转化为少量 Prometheus 时序。这些努力相结合,显著降低了超时风险,并缩短了团队的 MTTR。

ASOS 首席网站可靠性工程师 Adam Watson 表示:“对于所有支持团队——主要事件团队和应用支持团队——我们在过去一年里的焦虑程度降低了。我认为很大程度上是因为对我们的服务有了更好的了解,遥测数据更易于获取,并且能够快速找到正确的团队。”

除了保持正常运行时间外,Grafana Cloud Metrics 还帮助团队降低了成本。

Morley 说:“以 Prometheus 格式存储这些数据更便宜。因此,通过将一些日志偏移到指标并将其移至 Grafana Cloud Metrics,我们得以节省了大量资金。”

Grafana Cloud 中的 Kubernetes 监控 对 ASOS 来说是另一项无价的服务。特别是,开箱即用的可视化和预配置仪表盘使团队能够更快地分析数据并洞察他们在 Azure Kubernetes Service 中运行的约 123 个 Kubernetes 集群的健康状况。它还有助于集中和统一公司与 Kubernetes 相关的可观测性工作;在采用之前,团队手动构建自己的仪表盘来独立监控他们的集群。

Morley 说:“现在我们有一个中心仪表盘,可以使用模板化解决方案监控任何人的集群——这非常出色。”

与此同时,Grafana 中广泛支持的数据源继续支撑着公司的整体可观测性战略。使用 New Relic、Prometheus、Azure Monitor、Azure Data Explorer 和其他重要系统的数据源,为 ASOS 在数据可视化方面开辟了无限可能。

Morley 说:“能够通过可视化来使用来自多个数据源的遥测数据——这是一个非常强大的功能。无论我们想要什么数据源,我们都可以在其上进行可视化。”

展望未来:Grafana SLO

SLOs at a glance: Our RAG dashboard condenses Grafana SLO data, providing a clear overview of estate health and error budget status.

SLO 一览:我们的 RAG 仪表盘浓缩了 Grafana SLO 数据,清晰概述了整体状态和错误预算状态。

至于 ASOS 及其可观测性之旅的下一步,团队正在开始利用 Grafana SLO——这个 Grafana Cloud 应用程序可帮助工程团队快速设置服务级别目标。最终目标是使用 Grafana SLO 框架的两个组件——SLO 和 SLI——创建一个主要基于 错误预算 的告警系统。

Watson 说:“我们想通过 Grafana SLO 使用一些燃尽率告警,并将它们显示在一个大屏幕上,以便所有人都能看到。”

Morley 补充说:“我们还想克服因尝试监控过多信号而导致的告警疲劳。转向 SLI 和错误预算方法对我们的团队将非常有益。”

启用 Grafana SLO 后,ASOS 团队希望专注于最重要的事情:可靠性和提供积极的用户体验。

Morley 说:“我们始终致力于让流程尽可能优化。我们的团队在这里真正发挥作用,帮助构建最好的产品。”

ASOS logo
行业
零售/电子商务
公司规模
3,000+
总部
英国伦敦