写点什么

旅游搜索巨头 SkyScanner 提升系统可观测性,将工程技术成本降低 90%

作者:Matt Saunders

  • 2025-05-27
    北京
  • 本文字数:1705 字

    阅读完需:约 6 分钟

大小:835.99K时长:04:45
旅游搜索巨头SkyScanner提升系统可观测性,将工程技术成本降低90%

新冠疫情为旅游搜索巨头Skyscanner的工程团队提供了一个审视其可观测性技术栈的机会。Skyscanner 曾撰文分享他们如何通过一个系统彻底改造其技术可观测性技术栈,提升了工程师的工作效率和旅行者的用户体验。


根据最近发表的一篇工程博文,Skyscanner 于 2020 年开始了这一转型之旅,当时旅游业处于停滞状态,面临着前所未有的中断。Skyscanner 的工程团队抓住这一特殊时期,深入挖掘并修复了其监控系统中的薄弱环节。


Skyscanner 工程团队在博文中写道:“我们面临的挑战远不止是成本问题,也不仅仅是小团队运营该平台的复杂性。我们明白,我们需要解决的最重要的问题是提升全体工程师对其服务的理解和操作能力,增强他们的信心,然后可靠地将 1.1 亿用户与每月超过 1200 个航班、酒店和租车合作伙伴联系起来。”


Skyscanner 之前的可观测性架构较为复杂,包含了一些专业供应商提供的系统和基于开源技术(如 OpenTSDB、Prometheus 和多个ELK技术栈)的内部系统。这种碎片化的架构给需要跨平台理解和解决这些问题的工程师造成了麻烦。



为了应对这些挑战,Skyscanner 制定了一项新的战略,围绕两个关键原则展开:采用 OpenTelemetry 作为服务监控和数据传输的统一标准,并将 New Relic 作为统一的数据存储和分析后端。


我们全力支持 OpenTelemetry 所倡导的高质量、标准化、可移植且无处不在的遥测愿景。展望未来,它将是 OpenTelemetry 原生的,而非依赖 APM 代理,我们已经为此做好了准备。


OpenTracing 和 OpenTelemetry 的 API 设计简洁明了,这使得 Skyscanner 能够在短短几周内通过简单地升级库的版本号迁移超过 300 个微服务。这迅速降低了工程师的认知负担,消除了在多个可观测性平台之间切换上下文的需求。标准化还为跨服务和框架更好地关联跟踪信息、指标、日志和事件带来了可能性。


一个令人意想不到的结果是团队在遥测方面的方法发生了文化层面的转变。当意识到数据收集和存储需要耗费的成本时,许多团队主动寻找更高效的方法。


工程团队表示:“我们发现一些团队希望找到更优的遥测使用方式。当他们亲眼目睹这些新方法带来的好处后,他们被说服了,并开始依赖跟踪信息,而不是冗长的日志记录或高基数指标。一些团队因此将他们的遥测成本降低了超过 90%!”


为了进一步推广新的可观测性技术栈,Skyscanner 启动了“可观测性大使”计划,在团队中发掘能够将可观测性最佳实践引入其领域的工程师。Skyscanner 还举办使用官方 OpenTelemetry 演示的可观测性游戏日,使系统调试变得更加有趣和吸引人。



Skyscanner 还重新审视其服务等级目标(SLO)实现方案,将技术可观测性方面的新能力与影响旅行客户的实际业务结果联系起来。Skyscanner 不再只关注 API 响应代码等技术指标,还从直接与用户体验相关的信号中驱动 SLO。


通过访问客户端遥测数据,我们可以从直接与我们的用户相关的信号中驱动 SLO,例如“有多少次航班搜索显示了有效结果?”


这种新的可观测性方法彻底改变了 Skyscanner 管理跨领域依赖关系和促进团队协作的方式。“我们不仅将可观测性用作技术工具,还作为社会技术工具,帮助我们理解我们的系统并做出数据驱动的决策,”工程团队总结道,“我们基于证据做出承诺,而不是基于直觉。”


Skyscanner 并不是唯一一家利用 OpenTelemetry 重新定义 SLO 驱动方式的公司。NOFire AI 的一篇文章进一步丰富了这方面的主题,特别是在 OpenTelemetry 的变革性影响以及从传统监控向智能可观测性转变方面。这篇文章还强调了 OpenTelemetry 如何通过消除碎片化、孤立的方法来实现统一的可观测性,这些孤立的方法此前对于组织来说并无助益。NOFire 认为,服务等级目标应该关注用户体验,而不是技术指标,这与 Skyscanner 从关注 API 响应代码转向以用户为中心的有意义信号(例如“有多少次航班搜索显示了有效结果?”)的转变不谋而合。


NOFire 还进一步引入了 AI 驱动的事件解决机制。Skyscanner 通过以人为中心的举措(例如“可观测性大使”计划)实现文化层面的转型,而 NOFire 建议使用生成式 AI 自动发现根本原因并生成可操作的解决方案,这可能会消除对手动仪表盘探索的需求,而手动探索正是这两家公司都面临的痛点。


【声明:本文由 InfoQ 翻译,未经许可禁止转载。】


查看英文原文https://www.infoq.com/news/2025/05/skyscanner-observability/

2025-05-27 19:001

评论

发布
暂无评论

Java | Map集合两种遍历方式

陌上

Java 编程 10月月更

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

“程”风破浪的开发者|一起来看看北大才女刘媛媛珍藏已久的学习方法吧!一定要点进来

跟着飞哥学编程

学习方法 “程”风破浪的开发者

服务器故障用什么软件解决好?大家有推荐的吗?

行云管家

高可用 服务器 ha

排障最后一公里,“融合”型的日志平台应该如何建设?

嘉为蓝鲸

运维 监控 日志 可观测性 告警

滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列

小小怪下士

Java spring 面试 JVM

Apache Linkis 介绍

一道圣光

计算中间件 大数据 开源 数据计算 10月月更

华为开发者大会 2022即将举办 HarmonyOS开发者用“代码”创造无限可能

极客天地

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

JavaScript LeetCode

js对象和原型、原型链的关系

hellocoder2029

JavaScript

SAP | 在ABAP中如何使用方法

暮春零贰

SAP 方法调用 10月月更

JavaScript刷LeetCode拿offer-链表篇

Geek_07a724

JavaScript LeetCode

js异步编程的三种模式

hellocoder2029

JavaScript

Java | Map集合的子类

陌上

Java 编程 10月月更

JavaScript刷LeetCode拿offer-二叉树层序遍历篇

Geek_07a724

JavaScript LeetCode

开源代码安全 | 微软是如何应对开源代码安全问题的?

龙智—DevSecOps解决方案

开源 开源代码

uniapp 提示 打包时未添加 push模块

源字节1号

软件开发 前端开发 后端开发 小程序开发

js进阶手写常见函数

hellocoder2029

JavaScript

JavaScript模板字符串与es6中let的用法

何极光

ES6 let 模板字符串 10月月更

Java | HashMap和哈希表数据结构

陌上

Java 编程 10月月更

嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)

矜辰所致

Ubuntu20.04 嵌入式Linux 10月月更

MobLink for Flutter

MobTech袤博科技

flutter ios android

新闻贴 | KaiwuDB 受邀亮相中国 1024 程序员节

KaiwuDB

JavaScript刷LeetCode拿offer-经典高频40题

Geek_07a724

JavaScript LeetCode

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

企业上云选择哪家好?需要考虑哪些因素?

行云管家

公有云 企业上云 云厂商

ITSM | 对话龙智资深技术顾问,探讨ITSM实践如何从过去转向未来

龙智—DevSecOps解决方案

ITSM ITSM解决方案

半导体初创公司如何加速成功?

龙智—DevSecOps解决方案

IP IP管理

DevOps下测试的生存之道

嘉为蓝鲸

DevOps 测试

云原生时代的应用端到端可观测体系如何构建?

嘉为蓝鲸

运维 监控 可观测性 告警

信用卡监管精细化,强化用户风险防范意识并驱动银行规范管理

易观分析

银行 信用卡

旅游搜索巨头SkyScanner提升系统可观测性,将工程技术成本降低90%_后端_InfoQ精选文章