超级图谱帮助 Booking.com 提高开发人员效率,发布速度提高 40%

+40%

使用 Apollo 加速发布速度

>25k

每年实验次数

>28

百万房源

Booking.com 成立于 1996 年,总部位于阿姆斯特丹,从一家小型荷兰初创公司发展成为全球领先的数字旅游公司之一。Booking.com 是 Booking Holdings Inc.(纳斯达克代码:BKNG)的一部分,其使命是让每个人都能更轻松地体验世界。

Booking.com 通过投资去除旅行摩擦的技术,将数百万旅行者与难忘的体验、各种交通方式和令人惊叹的住宿场所(从家庭到酒店等)无缝连接。

作为全球最大的旅游市场之一,无论是在成熟品牌还是小型企业家,Booking.com 都能使全球各地的酒店都能触达全球受众并发展业务。

挑战:不一致的客户体验和缺失的数据洞察

2019 年,Booking.com 正处于一项重大现代化计划的中间阶段:迁移到面向服务的架构。解决方案架构师 Matt Sexton 在这场现代化之旅的中间阶段加入了 Booking.com。

当他到达时,Booking.com 使用单体服务来执行数据处理、业务逻辑和 Web 的渲染,以及一个独立的用于 iOS 和 Android 应用程序的前端 RESTful 后端。这导致其工程团队重复工作并增加维护。正如马特所说:“维护成本要高得多。管理不同的路由意味着我们需要不同的协议处理和版本控制,因此更新我们的产品需要我们在所有使用它的不同客户端中多次复制更改。”

作为最早的在线旅行公司之一,Booking.com 面临着巨大的技术债务,代码是用 Perl 编写的。如果没有对 API 如何使用的洞察,几乎不可能清理这种技术债务。


“所有这些旧的字段,我们不知道哪些正在使用,哪些没有。而且,我们没有很好地了解谁在使用什么以及何时使用。那么,我们能删除什么?我们能去掉什么?我们没有办法回答这些问题。”

Matt Sexton 解决方案架构师,Booking.com


更糟糕的是,Booking.com 发现客户根据使用的客户端看到不一致的体验。

而且,作为一个团队,Booking.com 的工程部门热衷于实验。该部门以在任何给定时间运行 1000 个实验,每年运行超过 25,000 个实验而闻名1。然而,由于其单体架构的局限性,难以自信地确保他们正在跨所有平台推动学习。

采用超级图谱

从 Matt 之前使用 GraphQL 的经验来看,他知道 Booking.com 将是采用超级图谱的强有力候选者。特别是,Matt 想找到一种方法来解耦他们的前端和后端开发,并停止在多个客户端中重复相同的特性。他还想要更深入地了解他的 API 如何被使用。


“我们想从单体架构迁移到现代化的分布式架构,这使我们能够独立地部署新功能。当团队拥有更多自主权时,交付速度会大大提高。我们还想确保数据一致性,访问这些数据,并将所有客户端视为相同数据的同一消费者。”

Matt Sexton


然而,为了在 Booking.com 的规模上运行,他们需要一个解决方案,允许他们与数千名工程师安全地合作。首先,Matt 考虑过构建自己的图形管理平台,但他估计这可能需要 12 名工程师和 3 到 5 年的时间才能构建一个能够满足其规模和需求的稳健解决方案。因此,他决定采用 Apollo Studio 来帮助他的团队立即专注于扩展其超级图谱。

一旦 Matt 在内部获得了构建超级图谱的认可,他就开始向团队宣传其好处。对于后端团队,他重点介绍了在当前系统中删除字段的难度,以及在联邦化模型中,每个团队都可以拥有自己的子图谱 - 为他们提供了显著的自主权。

此前,Booking.com 一直难以跟踪其不同的数据模型和结构,因此他解释了图形的架构如何为所有功能提供一个唯一的事实来源。这引起了开发人员的共鸣,因为它将使契约测试更加高效。最后,他强调了超级图谱层如何使将来的迁移更加无缝的好处。“您可以将基于 Perl 的 REST 服务迁移到基于 Java 的 RPC,而不必要求所有客户端更新其代码,”Matt 说。

为了进行转换,他们需要一种安全且增量的方式进行迁移。首先,他们将搜索和酒店页面分离,并开始通过图形请求他们的数据。图形建立起来后,他们举行了一场内部技术交流会,使用图形的开发人员分享了他们的工作变得多么轻松和快速。这帮助图形在整个组织中获得关注。下一阶段是将住宿和交通业务部门引入相同的技术堆栈。使用联邦化图形这样做,将允许这两个服务在业务范围内互相通信,从而进一步提高效率。

使用超级图加速速度、提高弹性和消除技术债务

采用超级图后,**Booking.com 的发布速度提高了 40%**。Matt 将此归因于联邦方法带来的自主权以及自动化和 CI/CD 集成。


在某些情况下,团队发布功能的速度几乎翻倍,而我们的现代化之旅甚至还没有结束。我们还有很多方法可以改进开发人员体验,从而提高交付频率。我们只会越来越快。

Matt Sexton


他们从超级图中看到的另一个好处是提高了可靠性:


我们已经看到超级图在人们推送错误模式时防止错误的益处。它可以阻止愚蠢的错误发生,让开发人员充满信心。它真正开始帮助开发人员前进,并且他们对体验感到更加满意,因为他们可以在不破坏东西的情况下进行构建。后者对我们来说是超级图最重要的优势之一。

Matt Sexton


Booking.com 正在通过 Apollo Studio 提供的字段级指标开始消除技术债务。通过这些指标,他们可以准确地看到客户使用哪些字段,从而自信地清理掉未使用的和实验性的字段。

下一步

虽然 Booking.com 的超级图每月已经处理数十亿次操作,但他们仍在扩展其用例。他们正在考虑将 iOS 和 Android 应用迁移到超级图。目前,他们有一个用于移动设备和网络的搜索服务,正如 Matt 所说,“它是相同的搜索,为什么不把它们整合在一起呢?”超级图将加速此项目,同时也有助于解决版本控制的挑战。Booking.com 还正在探索合同如何通过图无缝地将数据暴露给第三方合作伙伴。

1 “构建实验文化”,HBR

下一个故事

分享文章

Instagram