手机淘宝构架演化实践手机淘宝构架演化实践
李敏主要负责淘宝无线客户端和无线网站基础服务、购物主链路的架构、研发方面的工作。从09年开始参与手机淘宝
研发团队的组建和线上产品研发,先后负责过无线部门的社区、会员、营销、交易等多条产品线的技术工作,构建和
发展了阿里无线技术体系中包括交易链路、百亿级别高性能API网关、WebApp平台等多个重要技术产品,经历和见证
了阿里巴巴无线从开始之初到成为日活上亿级别电商应用技术变迁和积累。
本文即根据李敏的演讲整理而成。
发展阶段
从2009年开始,DAU从100万增长到超过1亿,面临的问题、包括研发支撑所需要解决的事情各不相同。在用户量和业
务复杂度的线性递增下,架构也进行了相应的演进。如下图所示,具体可以分为四个阶段:
第一阶段,手淘的前身WAP网站,业务初立、变化快,需要快速发布,采取HTML模板和单一应用,最大程度满足快
速发布和修改的需要;甚至不需要改动后端的业务代码,在前面的模板上做一些修改就可以了。
第二阶段,DAU的快速增长,WAP/Android/iOS多个平台的业务起来了,需要在多个平台上进行快速的业务复制和业
务管控,统一API网关出现。
第三阶段,DAU进一步增长,线上系统越来越多,业务的多样性需求更多的体现出来,基于HTML5的一整套解决方案
上线,更多的HTML5和Native混合的业务形态,API网关进行进一步优化和扩展,更方便的接入方式。
第四阶段,当DAU达到100M的时候,全集团的业务都需要在手淘透出,API网关被部署到更多的IDC机房,如何更有
体系化的进行有效的研发、接入更多业务、并进行更有效的业务监控,需要更加体系化的架构治理。
API网关
做WAP的时候没有所谓的API网关,为什么要用API网关呢?
随着应用数量的增多,每个应用分别暴露的API出口很多,修改的话逻辑很复杂,这时候应该引入一个统一的网关。
但随着DAU的增长,API网关会成为一个单点。开发团队在中间做了很多技术和架构上的努力,主要有几个关键点。一
是后端接入很多应用,其实API网关只是通路,理论上不存在调用的上限,只要内存够大,包括网卡的流量够的话都可
以上来。二是有必要的机制做到宽阔的调用网关。还有一点,当后端业务要经过API网关时,其实现在业界很多都是典
型的RPC的模式,RPC的模式有一个绕不开的问题,就是可能要设定一些东西,这时后端服务跟API会有一定程度上
的耦合。现阶段要接入服务,后端服务器随时都会变化,不可能后端服务变化的时候都对API做相应的发布,这是不现
实的。所以有一套自己的RPC机制,解除了这种强类型的约束。
此外,可以在网关上附加很多功能,比如安全、审计,还有一些日志、审查等。
到了现在这个阶段,要进行异地部署,很多IDC,这样的话引入API网关很可能会带来问题。包括今年的双11或者是双
12,要在多个异地机房支撑手机淘宝的业务,会有很多API网关。