写点什么

eBay 改造“2.5 亿次访问”页面:工作效率翻倍、变更成功率飙升

  • 2023-08-08
    北京
  • 本文字数:1070 字

    阅读完需:约 4 分钟

eBay改造“2.5亿次访问”页面:工作效率翻倍、变更成功率飙升

eBay整合了负责提供“查看商品”页面的服务——该页面每天加载超过 2.5 亿次——去除了重复代码,提高了开发人员的工作效率。结果,他们的团队速度翻了一番,现在甚至可以每天将变更部署到该页面,并且变更失败率降低了许多。

 

在经历了十年的自然增长之后,eBay 用于支撑“查看商品”页面的代码库已经变得相当难以维护,因为需要将更改复制到 4 个支撑平台(桌面、移动 Web、iOS 和 Android)上。这导致一次页面更改需要花费数周的时间,而部署最多一个月才能进行一次。



图片来源:https://tech.ebayinc.com/engineering/how-ebay-modernized-the-most-important-page-on-our-platform/

 

团队决定解决这个问题,并一致同意改进关键的DevOps指标(参见 Nicole Forsgren、Jez Humble 和 Gene Kim 在Accelerate 一书中的定义)。新架构需要将现有的 3 个服务整合到一个 View Item Experience Service 中,以支持不同的平台,增强所有平台的用户体验,消除重复代码,提高开发体验和生产力。

 

为了实现增量迁移,在替换现有架构时需要引入一个新的服务。该服务开始时只负责代理数据,然后逐渐迁移并合并所有平台的业务逻辑。最后,升级客户端使其使用新服务,并停用遗留服务。

 

为了做好变更准备,团队一开始时曾试图分析遗留代码并编写文档。事实证明,这个过程非常缓慢而有挑战性。因此,他们改变了策略,集中精力快速了解了遗留模块,获得了一个高级视图,然后基于此对现有的功能进行了逆向,并编写了描述新实现的文档。为了进一步简化流程,他们将后端更改与面向用户的更改解耦,使得后端团队可以加速后续的迁移。

 

eBay(买家体验工程)副总裁Lakshimi Duraivenkatesh及其协同开发者描述了这项现代化工作的成果:

这些改进最终将速度提高了 200%。更好的是,我们立马在项目的模块迁移阶段看到了这种提升。从第一个模块到最后一个模块,每个模块的迁移都会带来相应的速度提升。随着项目接近完成,我们在新产品改进方面的的工作量已经减少了 50%(以天为单位)。

 

团队超额完成了所有初始目标,变更失败率变得非常低(即使部署更频繁)。与此同时,变更的交付时间和平均恢复时间(MTTR)也大大减少了。



图片来源:https://tech.ebayinc.com/engineering/how-ebay-modernized-the-most-important-page-on-our-platform/

 

新的业务逻辑实现使用了新的现代化技术栈和更快的自动化管道。更好的文档、更干净的代码则改善了开发体验,降低了团队新成员的上手难度。

 

原文链接:

https://www.infoq.com/news/2023/06/ebay-view-item-page-rework/


相关阅读:

eBay平台自动升级解决方案

eBay和Lastminute采用契约测试来驱动架构演进

2023-08-08 08:002294

评论

发布
暂无评论
发现更多内容

这一年,像踏码进货一样!

小傅哥

Java 小傅哥 技术成长 平台羊毛

Java 多线程上下文传递在复杂场景下的实践

vivo互联网技术

Java 架构 编程语言 多线程高并发

如何理解Linux系统SSH协议和原理

Changing Lin

Linux 2月春节不断更

Java之五种遍历Map集合的方式

华为云开发者联盟

Java 对象 Iterator 内容合集

领域的边界,一个小讨论

李小腾

领域驱动设计 DDD

智能对联模型太难完成?华为云ModelArts助你实现!手把手教学

华为云开发者联盟

人工智能 modelarts mindspore Seq2Seq

工业互联网平台:将为“补链”“优链”“强链”提供有力保障

工业互联网

GitHub星标数超4.2万的火爆之作!

博文视点Broadview

MySQL字段类型最全解析

Simon

MySQL 数据库数据类型

话题讨论 | 你现在还会推荐亲朋做程序员吗?

石云升

话题讨论 2月春节不断更

最基础的3道java面试题,你真的答得上来吗

田维常

面试

如何理解平行宇宙

陈东泽 EuryChen

科普 物理 平行宇宙 平行世界

专访京东科技张亮:本土开源需形成吸纳开发者的靶心

京东科技开发者

开源

任务悬赏系统软件开发

v16629866266

博文视点算法书单|让算法学习不再难

博文视点Broadview

分盘存储:实现数据库备集群备份文件分散存储

华为云开发者联盟

数据库 数据 容灾 集群 分盘存储

💻 一文读懂两台计算机之间是如何通信的

飞天小牛肉

面试 计算机网络 2月春节不断更

软件架构模式之事件驱动架构

架构精进之路

软件架构 七日更 28天写作 2月春节不断更

五种C语言非数值计算的常用经典排序算法

华为云开发者联盟

算法 记录 C语言 排序 非数值计算

PowerApps画布应用编码规范和指南

Changwei™

低代码 企业应用 Power Platform PowerApps

两个高频设计类面试题:如何设计HashMap和线程池

yes

面试 hashmap 线程池

运动健身市场越来越大,你的客户却越来越少?

IoT云工坊

人工智能 App 物联网 健身房 智能健身房

DIY一款能随周围环境变化的智能灯泡,求婚必备!

IoT云工坊

人工智能 物联网 人脸识别 sdk IoT App

python subprocess-更优雅的创建子进程

jeffery

Python

科普篇:新冠疫苗解读

石云升

28天写作 2月春节不断更 新冠疫苗

勿让 Docker Volume 引发 Terminating Pod

黄久远

Docker 云计算 Kubernetes 容器 云原生

单例模式原来是这么简单?!

后台技术汇

28天写作 2月春节不断更

作业二

KYoKO

WireGuard 教程:使用 DNS-SD 进行 NAT-to-NAT 穿透

硅基新手村

wireguard

第二章作业二

LouisN

谁再把IDEA的Project比作Eclipse的Workspace,我就跟谁急

YourBatman

eclipse IntelliJ IDEA Project Workspace

eBay改造“2.5亿次访问”页面:工作效率翻倍、变更成功率飙升_性能优化_Rafal Gancarz_InfoQ精选文章