Booking.com 团队通过改进后端和前端显著提升交付性能
Booking.com 的金融科技业务团队通过一系列后端和前端的改进,成功将交付性能提升了一倍,这一成果通过 DORA 指标进行了衡量。团队采用了 Micro Frontends (MFE) 模式,将原本单一的前端应用程序分解为多个可以独立部署的微前端应用。
新团队的成立与继承的架构
2022 年年中,Booking.com 成立了一个新的工程团队,负责金融领域的多个流程。该团队继承了部分平台架构,包括一个使用 Perl 和 JavaScript(基于 Vue 框架)编写的单体前端应用程序,以及一个依赖多个其他微服务的 Java 后端服务。
面临的挑战与改进措施
团队很快发现,对现有代码库进行修改并部署到生产环境中存在风险且耗时。为了提升交付频率,团队决定采用 DORA 提出的 DevOps 指标来跟踪交付过程的关键性能指标。工程师们开始记录交付速度指标(部署频率和变更的交付时间)以建立基线,并选择了定制的可靠性/稳定性指标(如服务可用性和未解决的缺陷数量)来替代 DORA 的变更失败率和平均恢复时间。从 2023 年 3 月到 11 月,团队的关键交付速度指标提升了两倍,而质量和稳定性保持稳定。
后端代码质量的提升
在此期间,工程师们逐步提升了 Java 后端服务的代码质量。他们采用较小的合并请求(Pull Requests),以确保代码审查更加高效,并优先在团队成员之间进行。此外,开发人员改进了部署流程,逐步减少手动验证步骤,更多地依赖自动测试。最终,他们实现了完全自动化的部署,将部署时间从 40 分钟缩短到 4 分钟。
前端改进与 Micro Frontends 的应用
在前端方面,团队通过将单体应用拆分为 Micro Frontends 进行了改进,但改进效果并未如预期般迅速显现。通过调整代码审查流程并减少对外部专家审批的依赖,代码审查时间降至 8 分钟。随着代码审查速度的提升,团队转向更频繁但规模较小的部署,部署时间缩短至 1 小时。
团队采用的代码改进策略
Booking.com 的高级工程经理 Egor Savochkin 描述了团队在减少引入问题的风险并改进代码质量方面采取的策略。团队采用了“童子军规则”,在不停止所有功能开发的情况下,通过重构和测试自动化来提升代码质量。在实施变更或修复缺陷时,团队也会努力改进相关代码,这种改进可以是简单的单元测试添加或小规模的重构。
相关案例
此前,InfoQ 也报道了 eBay 如何通过重新设计“查看商品页面”显著提升其交付指标。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。