阿里百川技术分享:OneSDK 与手机淘宝技术能力开放

  • 徐川

2015 年 8 月 3 日

话题:移动云计算阿里巴巴语言 & 开发架构阿里云

7 月 16 日,阿里巴巴集团在杭州召开阿里百川无线开放大会,来自阿里巴巴的技术专家向与会观众介绍了百川无线开放背后的技术细节。

阿里百川阿里巴巴集团无线开放平台,为移动开发者(涵盖移动创业者)提供快速搭建 APP、加速 APP 商业化、提升用户体验的解决方案。在阿里百川无线开放大会的技术专场,阿里技术专家分享了关于 TAE 2.0、OpenIM、移动安全等方面的技术细节,InfoQ 之前已对TAEOpenIM的技术负责人做过采访,今天就让我们来了解一下阿里百川无线开发 SDK 以及手机淘宝技术能力开放。

OneSDK:组件式架构解决 SDK 集成问题

阿里巴巴共享业务事业部的高级无线技术专家王玉明给大家分享了阿里百川的开放 SDK 技术:OneSDK,致力于解决大量 SDK 带来的集成问题。

对于目前的移动开发来说,诸如推送、IM、广告、统计等功能,开发者自己开发耗时耗力,使用第三方服务是明智选择,而使用这些服务都会用到它们提供的 SDK。因此除了少数应用外,大量使用第三方 SDK 是不可避免的趋势。

但是,随着大量第三方 SDK 的使用,一些问题也慢慢暴露出来,比如:

  • 多平台。不同的 App 管理体系,多个密钥带来的安全问题,以及多次接入带来的集成成本。
  • 多风格。不同 SDK 的初始化方法、接口标准,以及编程风格。
  • 复杂依赖。不同 SDK 本身的依赖不同,会带来依赖关系混乱,版本冲突,以及引入不需要的依赖的问题。
  • 包大小。由于不同 SDK 可能包含重复能力,带来重复依赖,以及不需要的资源导入,会带来包大小的超标。

阿里百川因为同时开放了很多服务,会带来很多 SDK,因此它推出了 OneSDK 来解决这个问题。使用 OneSDK,开发者只需要下载一个 SDK 包,一次接入动作,一个初始化入口即可完成集成,为开发者带来一致性的体验。

在架构上,OneSDK 分为业务组件、技术组件和组件容器。业务组件包括淘宝电商、云账号、OpenCRM 等。技术组件包括推送、多媒体云、通讯、安全、 Cache、网络等。组件容器包括总线、组件管理、系统服务三大类。其中最关键的是组件管理,包括组件发现、依赖管理以及生命周期管理功能,通过这些功能 实现 SDK 的组件化。

OneSDK 通过统一接入层与百川云服务进行交互,统一接入层包括网关、CDN、IM、数据同步等,因为涉及到多个业务,统一接入层是由淘宝和阿里云联手打造,并支撑多次双十一,在安全方面,能做到全链路加密和会话级安全,并且进行了无线网络、流量、电量等优化,让 SDK 更高效。

另外,OneSDK 还接入了阿里百川的统一支撑体系,包括自动降级、监控支撑、修复响应等,加强 SDK 的稳定性和处理能力。其中 OneSDK 还接入了 Crash 监控,能监控并统计应用的 Crash 信息。

OneSDK 还接入了高德、友盟等第三方 SDK,并同样的提供一致体验,开发者只需选择想要使用的 SDK 即可生成最小化的 SDK 包。

OneSDK 所接入的服务和能力中还包括了手机淘宝所开放出来的能力,手机淘宝经过多年架构演进也积累了很多经验,这次技术分享上,手淘也分享了它们开放出来的能力。

手机淘宝技术能力开放

阿里巴巴无线事业部总监吴志华给大家分享了手机淘宝技术能力开放的话题,包括手机淘宝的架构治理、移动网络建设、重点组件产品介绍等。

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

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



(手机淘宝容器架构)

关于手机淘宝客户端架构演进,阿里无线技术专家李敏在 2014 年 ArchSummit 北京上做过分享,InfoQ 也做过详细报道,感兴趣的可以查看,这里就不再赘述。

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

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

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

  • Crash 上报能力,支持 NDK C/C++ crash 上报和分析,并提供实时监控平台,分析 crash 趋势并告警。
  • 性能栅栏,通过 AOP 注入方式,进行非侵入式的性能监控。收集的性能指数包括绘图性能(帧率、ANR、View 层级)、内存性能(内存泄露、 OOM、内存占用)、耗电分析、网络性能、调度性能(非线程池中 Thread 对象的监控)、代码缺陷(开启严格模式并收集代码缺陷)。
  • Agoo 推送,业内领先的单台服务器建链 400 万,同时在线长连接 1.2 亿 +,接入集团内部应用,经历了 3 次双十一。并且支持消息盒子和国际化。
  • WEBP/BPG,手淘使用 WEBP 和 BPG 减小图片尺寸,优化解码性能。

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

从上面我们可以看到,阿里百川的确是以技术作为驱动,输出自己的技术能力帮助开发者和移动创业者走向成功,而开放的心态,将帮助它走得更远。

移动云计算阿里巴巴语言 & 开发架构阿里云