2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:002487

评论

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

即时通讯技术周刊(第1期):懒人网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯 IM

关于 Angular view Query 的 id 选择器问题的单步调试

汪子熙

typescript 前端开发 angular web开发 10月月更

版本控制 | 一文了解VR内容创作的步骤与关键技术

龙智—DevSecOps解决方案

vr VR/AR

Surpass Day——Java static关键字、继承、方法覆盖

胖虎不秃头

Java 10月月更 se

LinkedList源码分析(一)

知识浅谈

linkedlist 10月月更

思特奇加入openGauss开源社区,共同推动数据库产业生态发展

数据库 开源社区

Qt | 实现网页历史记录和查找功能 QWebEngineView

YOLO.

qt 10月月更 C++

七天杀上GitHub榜首!Java并发编程深度解析实战,JUC底层原理揭秘

Geek_0c76c3

Java 数据库 开源 程序员 架构

线下活动 | 龙智Atlassian ITSM 解决方案即将亮相2022全球运维大会上海站

龙智—DevSecOps解决方案

gops GOPS全球运维大会

数据库基础

说故事的五公子

MySQL 数据库 sql

SpringCloud版本升级后bootstrap.yml配置不生效

共饮一杯无

Java SpringCloud spring-boot 10月月更

拿到字节跳动offer后,又收到了阿里的面试邀请,二面迎来了P9"盘问"

Geek_0c76c3

Java 开源 程序员 架构 开发

openGauss社区理事长江大勇:openGauss联合产业界创新,共建开源数据库根社区

开源数据库

文盘Rust -- struct 中的生命周期

京东科技开发者

redis rust 生命周期 Trait Trait Objects

Qt | 按钮控件的使用 QCheckBox

YOLO.

qt 10月月更 C++

议题征集|Flink Forward Asia 2022 正式启动

Apache Flink

大数据 flink 流计算 实时计算

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

西柚子

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?

Sentinel Go-毫秒级统计数据结构揭秘

柠檬汁Code(binbin0325)

数据结构 源码分析 限流 Sentine 10月月更

代码质量与安全 | 清洁代码(Clean Code)比您认为的更重要

龙智—DevSecOps解决方案

clean code 清洁代码

九鑫智能正式加入openGauss社区

静态代码分析 | 数字驾驶舱时代,如何确保车载信息娱乐系统的网络安全?

龙智—DevSecOps解决方案

网络安全 车载信息娱乐系统 IVI

Surpass Day——Java this关键字

胖虎不秃头

Java 10月月更 se

Web3流支付迎来新质变,Zebec开放Zepoch节点申请

鳄鱼视界

要求必须使用强密码

源字节1号

openGauss开源2周年,破解数据库生态痛点

建木v2.5.6发布

Jianmu

DevOps 持续集成 jenkins CI/CD gitops

直呼内行!阿里大佬离职带出内网专属“Redis设计应用实践”学习笔记

Geek_0c76c3

Java 数据库 开源 程序员 架构

Surpass Day——Java 多态、final关键字、常量、package、import、访问控制权限修饰符

胖虎不秃头

Java 10月月更 se

.NET现代化应用开发 - CQRS&类目管理代码剖析

MASA技术团队

.net CQRS MASA Framewrok MASA

Arduino ESP32-C3 入门初探

矜辰所致

Arduino ESP32-C3 10月月更 Ard

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