eBay在重新设计其最重要页面后,团队效率翻倍

eBay 现代化 View Item 页面的工程实践

eBay 针对其每日加载量超过 2.5 亿次的 View Item 页面进行了服务整合,旨在消除代码重复并提高开发者的生产力。通过这一现代化改造,eBay 实现了团队效率的翻倍提升,并能够以更低的变更失败率每天部署页面更新。

背景与挑战

在过去十年的有机增长过程中,eBay 的 View Item 页面代码库变得难以维护。由于需要在四个平台(桌面、移动网页、iOS 和 Android)上同步进行代码更改,页面的变更需要数周时间才能完成,且部署频率最多每月一次。

解决方案

为了应对这一挑战,eBay 团队决定改进关键 DevOps 指标,并参考了《Accelerate》一书中定义的标准。新的架构方案将原本为不同平台开发的三个服务整合为一个统一的 View Item Experience Service,从而消除了代码重复,并提升了开发者的体验和生产力。

实施过程

  1. 增量迁移:团队首先引入了一个新的服务,该服务最初仅作为数据代理,随后逐步迁移和整合所有平台的业务逻辑。最终,客户端更新为使用新服务,并逐步淘汰了旧有服务。
  2. 代码分析与文档:团队最初尝试通过分析和记录旧有代码来为变更做准备,但这一过程缓慢且具有挑战性。因此,他们转而专注于对旧有模块进行快速调查,生成高层摘要,并通过反向工程记录新实现。
  3. 解耦后端与用户界面变更:为了进一步简化流程,团队将后端变更与用户界面变更解耦,使后端团队能够更快地完成后续迁移。

成果

eBay 的买方体验工程副总裁 Lakshimi Duraivenkatesh 及其团队总结了现代化改造的成果:

  • 效率提升:团队在模块迁移阶段立即实现了 200% 的效率提升,每个模块的迁移都带来了相应的效率增长。
  • 工作量减少:项目接近完成时,新功能改进的工作量减少了 50%。
  • 部署频率与失败率:团队超越了所有初始目标,实现了非常低的变更失败率,即使部署频率大幅增加,同时显著缩短了变更的交付时间和平均恢复时间(MTTR)。

技术栈与自动化

新的业务逻辑实现采用了现代化的技术栈和更快的自动化流水线。更好的文档和清晰的代码不仅改善了开发者的体验,还使新成员的加入更加顺畅。

总结

eBay 通过服务整合和现代化改造,成功解决了 View Item 页面的维护难题,显著提升了开发效率和部署频率,同时降低了变更失败率和恢复时间。这一实践为其他大型平台提供了有价值的参考。

阅读 27
0 条评论