手机淘宝技术能力开放的经过和发展
署名2020-12-14

   淘宝技术能力开放的经过和发展是怎样的?对于目前的移动开发来说,开发者自己开发耗时耗力,使用第三方服务是明智选择,而使用这些服务都会用到它们提供的SDK。因此除了少数应用外,大量使用第三方SDK是不可避免的趋势。但是,随着大量第三方SDK的使用,一些问题也慢慢暴露出来,多平台、多风格、包大小等。

 因为同时开放了很多服务,会带来很多SDK,因此它推出了OneSDK来解决这个问题。使用OneSDK,开发者只需要下载一个SDK包,一次接入动作,一个初始化入口即可完成集成,为开发者带来一致性的体验。OneSDK所接入的服务和能力中还包括了手机淘宝所开放出来的能力,手机淘宝经过多年架构演进也积累了很多经验,这次技术分享上,手淘也分享了它们开放出来的能力。

一、  淘宝技术能力开放:

 淘宝技术能力开放,移动开发技术已经经过了10年发展。从2005年的KJava为代表的单进程技术,到2008年Symbian的应用级动态部署,再到2010年左右以iOS/Android为代表的多进程,其后涌现出来的进程级动态部署的插件化,以及2014年到如今的容器级动态部署。

二、淘宝的架构治理之路:

  淘宝从2009年开始关注移动端,先后经历了WAP、MobileWeb,到API网关、HTML5容器,以及2014年的容器架构。经历了很长时间的架构治理之路。在2013年淘宝对移动实行ALLIN战略之后,手机淘宝开始反思客户端App架构该如何设计,以及如何应对大量业务同时涌入、超10个团队的代码整合等问题。他们思考的结果就是一切皆组件(Bundle),Bundle装载在容器里,任一Bundle均可以动态部署,阿里无线终端容器框架(Altas),管理组件生命周期,提供组件运行必须服务,实现组件间环境隔离、权限控制、运行期性能监控等功能。另外,在基础架构演进、工具体系完善、研发机制变革上,手机淘宝也做了许多工作。

  在移动网络建设上,手机淘宝采用了SPDY协议来降低延迟,加速数据传输,并且上马了异地多活与容灾措施以保障业务的高可用性。另外还推出了有特色的移动云通道服务,该架构有高实时高到达率双向通道、海量长连接的接入层服务Aserver、使用无线特色的TLS加密协议SlightSSL0RTT、灵活的网络调度功能(AMDC)等特点。

 在淘宝技术能力开放方面,他们对手机淘宝的能力做了一个全面梳理,分为基础研发平台、基础服务能力、无线电商能力三部分。其中基础研发平台包括研发支撑、运维平台、容器架构、HotPatch、Push和数据统计等,基础服务包括网络通道服务、多媒体服务、安全、算法能力等,无线电商能力则是淘宝相对于其它第三方开发者服务特有的能力,包括交易组件、店铺对外开放等。

三、淘宝在开放出来的技术能力中重点的组件产品有:

(1)Agoo推送:

业内领先的单台服务器建链400万,同时在线长连接1.2亿+,接入集团内部应用,经历了3次双十一。并且支持消息盒子和国际化。

(2)WEBP/BPG:

手淘使用WEBP和BPG减小图片尺寸,优化解码性能。

(3)Crash上报能力:

支持NDKC/C++crash上报和分析,并提供实时监控平台,分析crash趋势并告警。

(4)性能栅栏:

通过AOP注入方式,进行非侵入式的性能监控。收集的性能指数包括绘图性能(帧率、ANR、View层级)、内存性能(内存泄露、OOM、内存占用)、耗电分析、网络性能、调度性能(非线程池中Thread对象的监控)、代码缺陷(开启严格模式并收集代码缺陷)。

  另外,手机淘宝还在内部推动一些通用底层技术的开源,在最近开源了其HotPatch技术:无侵入AOP框架Dexposed,InfoQ对其有过报道,将来手淘还会开源其客户端容器框架Atlas。