暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

技术夜校|得物APP百倍增速下的技术架构演进

得物技术 2020-11-22
890


第六期技术夜校分享嘉宾是Alan

他拥有十二年开发&架构经验

次创业公司经历,⼀次创业经历

电商上下游经验丰富(营销、支付、供应链均有涉及)

多次参与知名电商的交易平台双十一大促


一个问题

真的有百倍增长嘛?

下图数据显示,真的!!!

期间有两个下跌点,期间经历了什么呢?

一个很明显,疫情

另一个就是PHP转Java带来的影响

再一个问题

在演进过程中,那些变的和不变的是什么?

变的是流量、品类扩张、交易模式、GMV、DAU、技术体系、团队⼈员….….

正如Amazon的Jeff Bezos所说,很多人会问他10年之后哪些东西是变化的,但他关注的是10年后哪些东西是不变的。那些不变的,才是在演进过程中真正有价值的。

对于得物来说,业务侧,不变的是我们的定位——潮流电商,如杨所说的【情价】,客户为情怀买单;技术侧不变的是业务支撑和稳定性,需要持续投入。

交易体系发展历程

如果把交易体系发发展历程以时间轴来比喻的话,它可以分为5个阶段:远古时代、公元前、公元、近代、现代。


远古时代

2017年5月,单台ECS和Redis支撑整个社区和鉴别,这个时候还没有交易。

2018年4月,经过很长一段时间的迭代,实现了集群,DB拆分社区DB和Hupu_du,Redis也实现了集群,SLB做了负载均衡。

公元前

2019年3月,引入JAVA,交易分成两部分,一部分在Java,出价和订单商品是Java的服务,另一部分PHP依然保留了交易本身的内容。整个纯Java模块,所有的流量都是通过SLB给到PHP,PHP再通过网关调Java,这是Java化的第一步。当时的技术选型,直到现在都还在受影响。

公元

2019年9月,所有的交易都已切到Java,流量根据不同的APP的版本分别汇总,老版本都汇总到PHP,PHP再转到Java,新版本可直接汇总至Java。整个架构只是上面做了一层代码翻译,把交易部分拆出来,但底层的DB、Redis都还是共用的。这个架构支撑了2019年的双十一和双十二。

随着业务的迅速发展,现有系统逐步显现出了一些不足,包括:抽象设计不足、系统边界模糊、业务压力大、技术改造不彻底等,所以2019年12月16日开始五彩石项目,历时3个月,对交易系统(如订单、商品、支付、出价、库存等)进行了重构,对底层数据结构和数据模型设计进行改造,涉及6个系统的重构,75个上下游系统配合集成,27亿+数据异构迁移,700+接口重新设计&实现。通过五彩石项目的重构,夯实了基础,后续的退货、换货、分阶段付款、海外,各种交易流程都比较容易落地;spu-sku体系,更丰富的商品品类支撑;统一入库管理-中央库存;集群限流引入、全链路压测支持、类目调整等等。

近代史

在五彩石基础之上,对整个交易平台上下游的系统做了一个很好的错码规范,建立了交易平台Code review的机制。使得系统边界清晰、代码分层趋向合理、数据模型统⼀,易扩展,快速⽀撑后续需求,线上问题数减少80%。当然也仍然存在一些不足,HTTP协议、内网超时问题凸显,依赖⿊盒化,因为工期原因的有部分妥协(订单未拆分正逆向、状态机引擎未全部落地),代码CR粒度较粗,各系统代码结构未统⼀,一些性能瓶颈,稳定性问题等。

现代史

五彩石项目之后,系统优化还在继续……协议升级、业务网关、全链路压测平台、短信平台、⽀付合规化、财务⼀期、⽤户重构、DCheck、监控体系&⽇志平台等。

尾声

618,我们稳稳支撑住了,对于即将到来的双十一和双十二,我们已经准备好了!

【得物技术】

扫一扫关注公众号


文章转载自得物技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论