淘宝开放平台架构设计与实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 淘宝开放平台架构设计与实践
岑文初(放翁)
日期:2009-08-20
部门:技术研发部-平台架构
1
2. 目录
•TOP背景介绍
•TOP整体架构介绍
•TOP架构设计实例分享
•TOP商业驱动模式介绍
2
3. TOP背景介绍
3
4. TOP背景介绍
独立网店
工具海
新业态
社区电子商务
开发者
开发者
…
开发者
开发者
开发者
Taobao Open Platform
对外,开发者是TOP合作方,共同服务大淘宝的终端客户
对内,TOP与各个业务线合作,一起协同开放
4
5. TOP整体架构介绍
大淘宝
Taobao.com
购物搜索
入口
业务
资
讯
导
购
淘
宝
集
市
淘
宝
商
城
其
他
业
务
工具搜索
独立网店
社区电子商务
App 提供:
Open.taobao.com
第三方工具
新业务
及其他
App Store
Taobao Open Platform = TOP
TOP
Open API
TBML (数据标签语言)
开放式插件平台
接入标准
TOP ID
合作
集团子公司业务合作
5
6. TOP架构设计实例分享
•服务访问控制策略
App • Level & Status
• Frequency, Order
User • Token(request , session, session with fix time)
• Frequency
API
• Four Level(None, APP, User, Optional User)
• REST & RPC(Operation Control)
6
7. TOP架构设计实例分享
• 服务访问控制策略
TOP
IM Server
APP
8. TOP架构设计实例分享
•服务处理机制
•大数据交互服务
TOP
APP
TOP
Service
Provider
APP
业务数据交换通道
Service
Provider
8
9. TOP架构设计实例分享
• 异步交互服务 & 通知服务
• 保持会话,支持异步响应。(短信服务)
• 异步延时服务。(大数据量信息返回)
• 订阅关系维护,支持通知服务。(系统间数据同步)
10. TOP架构设计实例分享
•API的监控
三级监控 • 异步数据库分表记录
• 每日任务导出,分布式计算框架中计
算分析
• 监控访问趋势增长,服务性能瓶颈
二级监控 • 请求埋点数据收集
• 本地日志增量传输或异步数据批量传
递
• 监控平均响应时间,峰值请求次数等
一级监控 • 缓存计数
• 阀值设置,多手段告警
• 监控访问频率及服务响应时间
10
11. TOP架构设计实例分享
•TOPID(开放用户)
•服务串联
外部网店
集团
淘宝
•服务请求流程化
外部网站
•令牌互通
•身份认证,用户授权
•信用体系建立
新业态
11
12. TOP架构设计实例分享
• TBML
– 产生原因
•
•
•
•
•
数据隐私性
开发便利性
业务升级透明化
监控全局化
开发标准化
– 作用
• 数据操作可控,保护终端用户隐私(结合cookie和标签,控制ISV业务数据操
作尺度,提高数据安全性)
• 提供标准业务流程标签,简化开发者对于业务流程理解过程。
• 标签化接口方式,完成数据获取和页面渲染,后台业务升级对ISV透明化。
• 标签获取客户端信息,将监控扩展到整个业务请求过程。
• 制定行业化标签库,形成统一开发标准
13. TOP架构设计实例分享
•服务分流与隔离
•原因:服务简单负载均衡造成服务互相影响。(根本原因
是服务的质量直接影响TOP处理能力和资源分配)
•处理模式进化:
二级域名
软负载
软负载&虚
拟服务组
13
14. TOP架构设计实例分享
•服务分流与隔离
二级域名
软负载
• 隔离效果明显
• 配制僵化
• 性能基本无损失
• 隔离效果明显
• 配制可手动运行期扩展
• 性能有损失
• 隔离效果一般
• 可推送配制,动态调整集群组
软负载&服务 • 性能损失小
虚拟组
14
15. TOP架构设计实例分享
16. TOP架构设计实例分享
•支持集群可动态扩展的缓存客户端
•缓存在TOP中作用
a. 业务数据缓存,加速业务处理速度(上下文缓存)
b. 计数器+黑名单,安全控制策略实现
c. 细粒度计数器,支持监控
d. 用户授权,异步请求会话存储
•存在问题
a. 数据固化(用户授权数据)
b. 集群支持,可动态扩展和变更配置
c. 性能消耗(网络交互)
16
17. TOP架构设计实例分享
• 换个角度看问题:
Memcached
cache
Config
Server
Cluster
Support
Client
支持集群
的分布式
缓存
18. TOP架构设计实例分享
19. TOP架构设计实例分享
•
•
•
•
•
集群数据固化问题
– Other Server support Protocol(memcached db)
– Customize Adapter
集群节点负载均衡
– 节点内与节点间负载均衡(权重,Hash算法)
集群节点数据同步
– Key node & Lazy Task Queue
– Failure node recover Data (standby or active mode)
集群节点动态扩容
– Config pull or push form Config Server
– Cluster data move(主动 or 被动)
性能消耗
– Local Cache + Remote Cache.(Local data clean policy)
– Protocol extend support compression or incremental modify
20. TOP商业驱动模式介绍
End User
插件分成
AppStore订购
开发者按业务分类
淘宝插件
店铺插件
免费TOP外部插件
淘宝SNS插件
插件分成
社区插件
动态广告
外部SNS插件
收费应用
客户端
淘宝客API 流量收费
盈利模式
自用型应用
独立WEB应用
流量收费
TOP
新平台应用
独立网店 社区站点 导购网站
流量收费
淘宝客API
商家入驻 盈利模式
21.