手机淘宝客户端架构探索手机淘宝客户端架构探索
手机淘宝客户端架构探索实践
关于
于佳(宗心)
2011 : 阿里巴巴中文站
阿里巴巴手机客户端 android/iOS 开发
2012:阿里巴巴无线事业部
手机淘宝客户端 iOS 开发
阿里巴巴无线事业部
负责手机淘宝并为阿里巴巴各条无线产品线提供基础技术和设施
发展历程
Android: 披着App外衣的Mobile Web iOS: 围绕购物主链路的基本功能
业务:单工程多分支开发
底层:独立的中间件工程
Android:Atlas插件框架
iOS:多工程插件化开发 ...
手机淘宝客户端架构探索
手机淘宝客户端架构探索实践
关于
于佳(宗心)
2011 : 阿里巴巴中文站
阿里巴巴手机客户端 android/iOS 开发
2012:阿里巴巴无线事业部
手机淘宝客户端 iOS 开发
阿里巴巴无线事业部
负责手机淘宝并为阿里巴巴各条无线产品线提供基础技术和设施
发展历程
Android: 披着App外衣的Mobile Web iOS: 围绕购物主链路的基本功能
业务:单工程多分支开发
底层:独立的中间件工程
Android:Atlas插件框架
iOS:多工程插件化开发
1.0
2.0
3.0
3
产品挑战
承载并整合多样化的业务生态
4
研发挑战
去年『All-In』的时候 大量业务的同时涌入 火车模型的悬崖效应 10余个团队的代码整合 『量变』呼唤『质变』~
5
痛点
协同方式
迭代依赖
分支管理
合并依赖关系过于复杂~ 调试自测效率
模块依赖下的不稳定因素 业务多,回归成本大
测试资源严重不足~其他模块引起的不稳定性因素 发布的灵活性
版本发布无法快速响应
线上已发布版本稳定性
灰度以及线上版本crash难以修复~
6
2014
手机淘宝自诞生以来,最大规模的底层重构 改变:开发方式,工程结构,架构模型,打包方式
7
探索新的路线
围绕着开发效率和性能稳定性等一系列问
工程拆分
支持多团队并行开发
架构重构
重新梳理容器和总线规则
配套工具
使用有力工具增加开发效率
8
工程拆分
并行开发
业务解耦
独立调试
集成之前,在稳定环境下测试
易于集成
修改配置完成集成
工程拆分
10
架构重构
需要解决的问题
迭代开发,并行开发能力差。
耦合严重,核心功能(URL导航)复杂 试错成本过高,增加减少业务带来的成本。 快速迭代下的稳定性问题。
指导思想
分而治之
并行开发
一切皆组件
BundleApp
解除耦合,制定
总线
URL总线(跨平台统一URL寻址方式):三平台统一URL,自动降级,中心分
发(支持hook)
服务总线 :根据服务接口提供稳定服务 消息总线 :中心分发,按需加载 开发透明
只需要遵守规则,不关心底层/其他业务实现
Bundle (deployable unit) Runtime
Bus (UI & Service & Message)
Lifecycle Management Bundle Management
UIs
Services
App/Service Project Runtime
Project
Bus Library
Libraries
Libraries
…
总线也是为了分而治之的原则,各个业务方对其他业务方都是透明的,减少
了以前全在一起的中心总线的复杂度问题
13
减少新业务接入/移除成本
标准化
统一的通信调用标准,bundle间互通的基础 无法回避的瘦身问题
灵活性
Bundle自由组装(淘宝生活,码上淘) 中间件基础库自由引入
14
及时响应线上问题
『Move fast and break things』
via Hot Patch 线上严重问题快速修复(小时级的响应时间) AOP编码形式
Before/After/Replace 某个
编写容易,发布规范
Wax /xpose
15
配套工具
工程拆分遇到的问题:
频繁的更换spec
源码引入造成的pod update缓慢等原因 开发阶段集成阶段等问题
工具解决
摩天轮自动打包平台(自动生成spec,framework引入)
开发-集成-灰度,多阶段管理
其他工具解决的问题:
核心链路性能监控平台
Crash分析平台
16
耗时2个月完成
6月初上线以上
集成 Bundle:30+
改造为服务:10+(登录、缓存、搜索组件) Hot Patch 修复线上严重故障 10+ 起 Patch 最大6KB,大部分不到1KB(iOS)
最大的阵痛:底层依赖迁移引起的编译失败
主要是由于底层库的pod依赖规则不同步造成问题。
17
未来
18
于佳 / 宗心
资深开发工程师
@Alibaba 无线事业部
新浪微博:淘宗心
Thank you
本文档为【手机淘宝客户端架构探索】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。