岑文初:开放的平台更加衬托开放的业务
时间:2009-09-01 来源:linux论坛
提到淘宝网,国内的互联网用户怕是路人皆知,甚至国外的很多用户。可以说,互联网的“开放”造就了淘宝网的商业契机,但同时,如今的淘宝也用一个开放的平台支撑并展现着开放中的业务的十足魅力。
2009年系统架构师大会真的可谓高手云集,诸多互联网系统架构师都纷纷来京会师,来自淘宝网的开放平台架构师岑文初也是其中一员,他对开放平台的阐述更是展现出互联网企业作为大型网络机构,其对网络平台架构和应用的唯妙之处。
淘宝网的业务大致分为了独立网店、社区电子商务、工具海、新业态,其基础平台的架构都是依照业务的划分展开的,并一起协同开放。淘宝开放平台,即Taobao Open Platform包括了四大部分,分别是:1.Open API;2.TBML(数据标签语言);3.开放式插件平台;4.接入标准。
具体来讲,淘宝网架构设计的特点包括如下几点:
一、 服务访问控制策略:
a) APP:Level&Status;Frequency,Order;
b) User:Token(request , session, session with fix time);Frequency ;
c) API:Four Level(None, APP, User, Optional User) ;REST & RPC(Operation Control) 。
在安全设计方面,IM Server与架构平台之间需要创建安全认证令牌,具体业务的访问时也需要签名或令牌。
二、 服务处理机制及大数据交互服务:
APP——>开放平台——>服务提供方
在APP与开放平台之间有一个认证请求通道,而在开放平台与服务提供方之间则有一个交验身份通道,在APP于服务提供方之间有一个业务数据交换通道。
三、 异步交互服务&通知服务
a) 保持会话,支持异步响应;(也即短信服务)
b) 异步延时服务;(大数据量信息返回)
c) 订阅关系维护,支持通知服务。(系统间数据同步)
四、 API的监控
a) 三级监控:异步数据库分表记录;每日任务导出,分布式计算框架中计算分析;监控访问趋势增长,服务性能瓶颈。
b) 二级监控:请求埋点数据收集;本地日志增量传输或异步数据批量传递;监控平均响应时间,峰值请求次数等。
c) 一级监控:缓存计数;阀值设置,多手段告警;监控访问频率及服务响应时间。
五、 开放用户
a) 服务串联
b) 令牌互通
六、 TBML
a) 产生原因:数据隐私性;开发便利性;业务升级透明化;监控全局化;开发标准化。
b) 作用:数据操作可控,保护终端用户隐私(结合cookie和标签,控制ISV业务数据操作尺度,提高数据安全性);提供标准业务流程标签,简化开发者对于业务流程理解过程;标签化接口方式,完成数据获取和页面渲染,后台业务升级对ISV透明化;标签获取客户端信息,将监控扩展到整个业务请求过程;制定行业化标签库,形成统一开发标准。
七、 服务分流与隔离
a) 原因:服务简单负载均衡造成服务互相影响。(根本原因是服务的质量直接影响TOP处理能力和资源分配)
b) 处理模式进化:二级域名——>软负载——>软负载&虚拟服务组
八、 支持集群可动态扩展的缓存客户端
a) 缓存在TOP中作用
i. 业务数据缓存,加速业务处理速度(上下文缓存)
ii. 计数器+黑名单,安全控制策略实现
iii. 细粒度计数器,支持监控
iv. 用户授权,异步请求会话存储
b) 存在问题
i. 数据固化(用户授权数据)
ii. 集群支持,可动态扩展和变更配置
iii. 性能消耗(网络交互)
总结来说,淘宝网开放平台针对以下问题施行了相应的解决策略:
• 集群数据固化问题
? 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
2009年系统架构师大会真的可谓高手云集,诸多互联网系统架构师都纷纷来京会师,来自淘宝网的开放平台架构师岑文初也是其中一员,他对开放平台的阐述更是展现出互联网企业作为大型网络机构,其对网络平台架构和应用的唯妙之处。
淘宝网的业务大致分为了独立网店、社区电子商务、工具海、新业态,其基础平台的架构都是依照业务的划分展开的,并一起协同开放。淘宝开放平台,即Taobao Open Platform包括了四大部分,分别是:1.Open API;2.TBML(数据标签语言);3.开放式插件平台;4.接入标准。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://images.lampchina.net/news/10/VIDseJYm3qKjM9yc0xn6k42uBPzR1vwt.jpg');}" onmousewheel="return imgzoom(this);" alt="" />
具体来讲,淘宝网架构设计的特点包括如下几点:
一、 服务访问控制策略:
a) APP:Level&Status;Frequency,Order;
b) User:Token(request , session, session with fix time);Frequency ;
c) API:Four Level(None, APP, User, Optional User) ;REST & RPC(Operation Control) 。
在安全设计方面,IM Server与架构平台之间需要创建安全认证令牌,具体业务的访问时也需要签名或令牌。
二、 服务处理机制及大数据交互服务:
APP——>开放平台——>服务提供方
在APP与开放平台之间有一个认证请求通道,而在开放平台与服务提供方之间则有一个交验身份通道,在APP于服务提供方之间有一个业务数据交换通道。
三、 异步交互服务&通知服务
a) 保持会话,支持异步响应;(也即短信服务)
b) 异步延时服务;(大数据量信息返回)
c) 订阅关系维护,支持通知服务。(系统间数据同步)
四、 API的监控
a) 三级监控:异步数据库分表记录;每日任务导出,分布式计算框架中计算分析;监控访问趋势增长,服务性能瓶颈。
b) 二级监控:请求埋点数据收集;本地日志增量传输或异步数据批量传递;监控平均响应时间,峰值请求次数等。
c) 一级监控:缓存计数;阀值设置,多手段告警;监控访问频率及服务响应时间。
五、 开放用户
a) 服务串联
b) 令牌互通
六、 TBML
a) 产生原因:数据隐私性;开发便利性;业务升级透明化;监控全局化;开发标准化。
b) 作用:数据操作可控,保护终端用户隐私(结合cookie和标签,控制ISV业务数据操作尺度,提高数据安全性);提供标准业务流程标签,简化开发者对于业务流程理解过程;标签化接口方式,完成数据获取和页面渲染,后台业务升级对ISV透明化;标签获取客户端信息,将监控扩展到整个业务请求过程;制定行业化标签库,形成统一开发标准。
七、 服务分流与隔离
a) 原因:服务简单负载均衡造成服务互相影响。(根本原因是服务的质量直接影响TOP处理能力和资源分配)
b) 处理模式进化:二级域名——>软负载——>软负载&虚拟服务组
八、 支持集群可动态扩展的缓存客户端
a) 缓存在TOP中作用
i. 业务数据缓存,加速业务处理速度(上下文缓存)
ii. 计数器+黑名单,安全控制策略实现
iii. 细粒度计数器,支持监控
iv. 用户授权,异步请求会话存储
b) 存在问题
i. 数据固化(用户授权数据)
ii. 集群支持,可动态扩展和变更配置
iii. 性能消耗(网络交互)
总结来说,淘宝网开放平台针对以下问题施行了相应的解决策略:
• 集群数据固化问题
? 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
相关阅读 更多 +