王海亚:淘宝交易系统演进之路

标签: 王海 淘宝 交易 | 发表时间:2014-06-26 14:07 | 作者:u012407273
出处:http://blog.csdn.net

淘宝的交易系统承载了购物车、下单、订单管理等多项淘宝的重要业务,随着淘宝业务量的不断上升,交易系统也随之几经改造。InfoQ此次专访了阿里巴巴架构师王海亚,另外作为ArchSummit深圳2014大会《电商,各走各的路》专题的讲师,王海亚将会分享淘宝交易平台的架构演变及并行化实践。以下为专访全文:

InfoQ:淘宝的交易系统,主要承载了哪些业务?

王海亚:从用户视角来看,交易承担了购物车、下单、订单管理这些功能;从功能视角来看,交易系统包括做业务规则和服务整合的交易平台以及支撑交易功能的底层服务,服务包括商品、优惠、库存、订单、物流等,业务规则主要是确定在不同的购买场景如何使用底层服务的不同功能,比如什么样的购买要走付款减库存,什么样的购买要走预售模式的价格体系和支付体系,什么样的购买要限制使用积分等等。

InfoQ:请您简单介绍下交易系统的架构演进过程。

王海亚:个人把交易系统的演化分成三个阶段,第一个阶段是单应用阶段,那个阶段淘宝的业务比较简单,业务量也比较少,交易系统相对还是很简单的,当时的交易系统只有一个应用,囊括了商品、优惠、物流、订单等功能,一个小的开发团队就能够完成交易系统的开发维护工作。

随着承载的业务越来越多,交易系统变得越来越复杂,需要投入越来越多的开发来维护这个系统。人员规模上去之后,内部沟通的成本、代码管理的越来越高,大家都针对一个代码库做更新,很难保证非常好的功能模块设计,经过持续的代码累积,满足业务需求并行开发越来越难。后来提出了服务化改造,从原来的单一应用中逐步做功能剥离,拆分出多个系统,每个子系统负责不同的功能,由不同的团队维护。交易系统的架构进入第二个阶段,交易系统采用分布式架构,存在多个后台服务系统,多个前端应用。商品、优惠、库存等功能逐步沉淀成纯粹的后台服务系统,原来的交易系统作为前端应用存在。由于组织结构的原因,当时是存在几个交易前端应用,比如说当时的商城也就是后来的天猫,无线团队等等,因为前端内容的差异,都有自己独立的前端应用。

服务化改造之后,从某种程度上缓解了第一代架构的缺陷,但是新的架构在落地过程中还是存在一些问题,比较突出的有两个问题,一是由于功能是从原有单核应用中剥离出来时,缺乏一个明确的功能边界定义,对业务规则和功能的识别没有统一的标准,导致业务规则和功能存在紧耦合,同一个业务的业务规则一部分在前端应用中,一部分在后端服务系统中,业务规则变化又比较快,任何一次规则变化都要涉及到多个团队做配合实施,沟通协调的成本比较大;另外一个问题是由于多个前端应用,前端应用做的比较重,业务逻辑都要在多个前端应用中重复实现,除了开发的人力浪费之外,也引发了很多由于落地节奏不一致导致的业务问题,即使耗费大量精力做沟通协调也无法完全避免此类问题。

在新的系统架构中,对业务规则和功能做了明确的识别,通过集中式的业务规则控制以及功能定制化机制,实现业务规则和功能的完全解耦,多数情况下业务规则变更不会引发后台服务系统的变更,后台服务系统的功能增加也能做到对前端应用的透明。另外在前端应用中引入新的编程框架,通过框架做纯粹的服务整合就能组织出要给用户披露的信息。前端做轻之后,针对不同终端提供统一的业务服务,或者针对不同终端根据单页需要披露的内容来做不同服务的整合,成本都降低很多。

InfoQ:没有改造之前的交易系统,大概遇到了哪些问题?

王海亚:问题主要可以分成三类,第一类问题是业务快速落地很难,由于交易的业务规则变更很快,通过casebycase代码修改,系统中功能与功能之间的耦合越来越多,系统维护成本越来越高。另外业务规则散布在多个前端应用和后端服务系统中,经常由于各个系统的规则不一致或者上线节奏不一致导致业务故障。第二个问题是系统接入的成本很高,由于业务的需要,会引入越来越多新的服务系统提供对应的功能,这些服务都是在一个前端系统中做服务的整合,一个点的不稳定或者性能瓶颈,都会影响整个系统的稳定及用户体验,想通过小成本的尝试来做业务创新的验证成本非常高。第三类问题是前端应用比较重,业务逻辑主要存在于前端应用中,前端应用的页面逻辑和后台逻辑职责边界又不是特别清晰,导致前端应用的开发成本非常大,另外又存在多个前端应用,业务逻辑的一致性很难保证。

InfoQ:新的交易系统是如何解决老系统的问题的?

王海亚:总结来说,可以从7个点来讲。

第一,通过服务治理,把业务规则从原有功能中剥离,明确各个服务所提供功能的完备性及独立性,从系统边界上确保功能之间无耦合。

第二,通过集中式的业务规则管控,保证交易全链路的业务规则统一及业务规则灵活可配置。

第三,通过标准化的交易框架及组件化设计,保证服务在交易平台快速接入。

第四,通过异步并行及容错,提升系统响应速度,减少单点服务故障导致的整体不稳定。

第五,通过开关及预案机制,保证代码的兼容性发布,业务降级容错。

第六,通过流量管控,防止雪崩,保证在正常情况或者某个服务集群能力波动时,整个交易系统不被压垮。

第七,通过在前端应用中做前后端解耦,通过约定的数据模型,前端开发只负责页面展示和交互,实现前端、后端的并行开发,也使得不同终端的自适应可以以较低成本实现。

InfoQ:新的交易系统是如何应对交易洪峰的?

王海亚:由于交易的调用链路比较长,从Web服务器到执行链路中的各个服务系统,包括缓存、DB等存储系统,请求都是以队列的方式被处理。各个系统如果没有处理好容量控制,就会导致请求的堆积,对外呈现的就是响应时长增加。

在处理链路比较长的情况下,这种异常会被放大,链路后面的一个点发生堆积,前面的各个点也会逐步出现堆积。页面应用又是一个用户强交互类型的应用,如果用户发现慢就会刷屏,而后面的系统无法感知接下来要处理的请求是否是有效的请求,这种情况下可能会导致整个网站的瘫痪。我们目前是在前后端应用中都引入流量管控机制,主动拒绝超出自己处理能力之外的请求,保证每个应用都不会被压垮,有多少能力就能把多少能力提供出来。

另外在前端应用处理流控时,主动引导用户到低成本/静态化的页面上,增强用户体验,也能提高网站其它部分的曝光率。整个流量管控体系,除了应用框架的能力之外,还有一些配套的机制,比如自动化压测系统、容量计算公式、自动化扩容/下线等,整个一套体系,确保我们轻松应对交易洪峰。

ArchSummit全球架构师峰会即将于7月18-19日在深圳举行,此次会议重点解析九个当前最受关注的领域,包括:SNS、 移动互联网、 金融、 大数据、 智能硬件、 游戏、 云计算、自动化运维、电商等专题。目前正在火热报名中,感兴趣的读者可以访问 网站主页了解更多信息。

作者:u012407273 发表于2014-6-26 14:07:24 原文链接
阅读:100 评论:0 查看评论

相关 [王海 淘宝 交易] 推荐:

王海亚:淘宝交易系统演进之路

- - CSDN博客研发管理推荐文章
淘宝的交易系统承载了购物车、下单、订单管理等多项淘宝的重要业务,随着淘宝业务量的不断上升,交易系统也随之几经改造. InfoQ此次专访了阿里巴巴架构师王海亚,另外作为ArchSummit深圳2014大会《电商,各走各的路》专题的讲师,王海亚将会分享淘宝交易平台的架构演变及并行化实践. InfoQ:淘宝的交易系统,主要承载了哪些业务.

淘宝“伤”城

- 品味视界 - FT中文网_英国《金融时报》(Financial Times)
秦苏为英国《金融时报》中文网撰稿. 中国互联网的野蛮生长,再次震惊了电子商务市场. 10月11日晚间,为抗议淘宝商城大幅提高技术服务年费和保证金,约7000家中小卖家通过YY网络语音等组织方式,对韩都衣舍、欧莎、七格格、优衣库等大卖家进行攻击,包括利用规则进行购物、给差评、到货付款或申请退款等. 通过集中拍下某商品,导致这些商家的大部分商品下架“被拍死”.

淘宝维权记

- loudly - 马日拉
我先是在八月上旬从淘宝卖家“偶遇燕燕”处购买了两张高凳. 货送到时仅用塑料气泡纸包装,无硬纸包装. 因为外包装并无破损,所以当时就签收了. 快递走后,拆开包装,发现其中一个凳子凳面完全裂成两半,一个凳脚连接处完全碎裂. 两张凳子平放在一起,高度有一公分以上的落差,说明:1.卖家为减小货物体积,省略了硬质外包装,虽然物品表面由于有气泡纸保护完全无损,但运送途中,一个外形不规则的货物用脚指头想想也知道会因为堆叠、搬运等等情况,造成结构性的损毁.

淘宝养活谁

- - 《商业价值》杂志
成长在互联网时代的我们恐怕无人不知淘宝了,淘宝网由于其巨大的用户群成为了中国电子商务领域的航母. 然而这艘航母在行进过程中,伴生了无数相关联行业的成长. 首先获利的当然是淘宝的600多万商家,凭借着成本优势,电子商务已经在很大程度上深入人心,过亿的日成交额让不少淘宝商家获利颇丰. 数据显示,2011年TMALL平台品牌电商进一步增加,品牌数达7万多个,相较上年的3万个,品牌数增幅超过1倍.

马云致全淘宝同仁公开信:淘宝是大家的淘宝

- Yu - cnBeta.COM
针对近期淘宝更改新规所引发的争议和群体事件,网络上悄然出现了一封马云的公开信,以下为公开信内容. 全体淘宝亲们:大家下午好!首先我代表阿里巴巴及淘宝公司所有员工向大家表示衷心的感谢. 感谢大家九年来对淘宝及我马云本人自始至终的信任和大力支持,感谢你们把淘宝培养成了中国最好最强最受欢迎的网络商业零售圈.

贝叶斯在淘宝

- Dash - 搜索技术博客-淘宝
Shared by 车东. 搜狐邮箱不幸上榜…… @qiuyingbo.           随着电子商务的快速发展,淘宝的规模也逐渐壮大,淘宝在业界的影响力也越来越大. 目前,淘宝网的日独立访问数已逾4000万,而注册的用户数现在已经达到1.63亿,中国网民也就3.3亿,在所有的中国网民中,几乎有一半都是淘宝的用户.

淘宝店主太强了

- Pan - 水木社区 Joke/笑话连篇 保留区
发信人: richal (areer_Plaza), 信区: Joke. 发信站: 水木社区 (Wed Jul 20 14:39:34 2011), 站内. 刚买的新车,选车号时没弄成自选的,. 在网上看到有那种金属字母,贴到车尾. 我想如果把姓名缩写贴上去,应该挺酷的. 结果刚下单不久,淘宝店主就打来电话.

淘宝提价很粗暴

- 宋大妈 - FT中文网_英国《金融时报》(Financial Times)
笨狸为英国《金融时报》中文网撰稿. 据报道,马云曾经说过这样一段话:“2001年的时候,我犯了一个错误,我告诉我的18位共同创业的同仁,他们只能做小组经理,而所有的副总裁都得从外面聘请. 现在十年过去了,我从外面聘请的人才都走了,而我之前曾怀疑过其能力的人都成了副总裁或董事. 现在,马云告诉淘宝上的中小商家说他们不适合继续呆在商城里,而且也不给安排什么出路,简单粗暴的一条提价协议就把曾经帮助淘宝发家的中小商家拒....

君子之交易

- ttfioc - 白板报
白板报网店开张伊始,我忙中出错,结果把一箱本应该发到广西的冬枣发到了深圳. 而这批货物的主人,只得另请快递把货物从深圳又运到广西,额外花费快递费66元. 这位朋友没有怎么抱怨,相反却对我这个开店的“贾行家”表示了谅解. 可我心里实在过意不去,明明是我的错误,总不能让客户承受损失吧,于是在旺旺上说:.

利用淘宝 API 在新浪微博上分享淘宝商品,赚取淘宝客返利

- Ken - python.cn(jobs, news)
前段时间做了个新浪应用,在新浪微博上分享淘宝商品. 淘宝api申请好几次都没能通过审核. 于是把代码共享,为学习flask的朋友多一个参考项目. 项目地址:https://github.com/laoqiu/sinaapp. 项目实例:http://tuibei.viimii.li (网站功能已无法正常使用).