SDCC讲师预热专访:淘宝岑文初谈开放平台架构
CSDN年度技术盛宴2012 SDCC中国软件开发者大会将于2012年9月7日-8日在北京新云南皇冠假日酒店举行。软件研发频道 将采访一些与会讲师,谈谈他们将在会上分享的内容。
本期我们采访的讲师是淘宝开放平台架构师、技术和产品团队负责人 岑文初。
CSDN:请您对自己做个简单介绍,尤其是在开放平台方面的技术经验和积累。您目前最关注哪些技术领域?
岑文初:从2007年底开始构建阿里系最早的开放平台,2009年正式加入淘宝开始负责淘宝开放平台基础架构建设,2012年负责整个淘宝的开放平台技术和产品团队。
开放平台发展的过程中技术也不断的在发展,从最早的网站服务化(SCA,OSGI),平台授权(OAuth),服务流控与服务隔离(Web容器异步化服务处理),服务生命周期管理(服务接入与文档,SDK自动化等),到后来的平台透明化(海量流式数据即时分析),多样化服务(ATS异步大任务处理服务,Streaming API流式数据推送服务,支持并行和串行化的QL服务),无线客户端的安全及服务易用(IOS、Android),JS组件(支持网站接入)。
CSDN:作为电商开放平台的代表,您觉得淘宝开放平台在架构方面有哪些特点?尤其在系统稳定和数据安全性方面,淘宝用到了哪些技术、经历了哪些磨历?
岑文初:淘宝开放平台架构关键词:透明,核心模块小,按需简化设计,多层次设计配合(js,client,server),服务模式创新。
系统稳定:1.Web容器异步化支持服务流控和隔离。同步的http服务处理模式在初期后端服务不多,服务质量差异不大的情况下能够满足需求,但是当后端服务越来越多(最初30个公开服务到今天300多个公开服务),服务质量和响应参差不齐的情况下,开放平台自身的稳定性直接受制于后端某一个服务,因此当后端某一个服务出现不稳定,就会直接使得淘宝开放平台服务全线无法服务,因此将同步的http服务中转改造为异步中转并设置了权重线程池来差异化对待不同重要度的服务,最后实现服务之间质量影响隔离,服务与平台稳定性隔离。
2、.基于流式数据分析可以每一分钟产出业务和系统的统计数据。对比一些基线和告警阀值,最快速度的定位问题,并且采取运行期控制的方式来避免问题的扩大。
数据安全:
1.淘宝开放平台是所有开放平台中对于数据安全要求最高最细的开放平台,当前除了使用业界标准的OAuth2,同时还将安全控制从服务纬度细化到了服务字段级别,同时对于数据安全性分成了四个级别,结合应用形态和应用安全指标差异化控制。
2.通过JS组件化集成实现对用户发起服务和isv应用服务端发起服务的差别验证,对于电子商务买家类服务开放提高了安全性。3.提供无线端SDK静态类库方式,平衡无线用户的安全性和用户体验。
CSDN:在淘宝11.11活动中,面对这种突发的海量访问请求,淘宝开放平台采取了哪些应对措施?
岑文初:淘宝的11.11访问量其实一直在预期以内,因为平台自身对于数据流解析,异步化都保证了高效的系统处理能力,同时可以卸载的一些服务控制保证了服务控制流程如果出现问题可以随时降级处理,保证业务正常支持。另一方面,对于海量订单的对外输出,提供了Streaming api,降低轮询服务带来的压力,同时能够给开发者和商家最快速的消息投递。
CSDN:定义设计API接口有哪些学问和经验可以分享的?
岑文初:对于数据获取类服务非常重要的一点就是保留fields字段,也就是可以支持有选择的数据返回,这样对于服务升级(字段增加或者减少)都会非常主动,同时也非常适合做QL映射。
另一方面,对外提供服务必须要先定义服务处理所对应的资源定义,这样可以避免服务过程化设计开放(服务要设计为面向资源开放),保证业务内部逻辑变更对外透明。对于操作型服务(更新,删除,新增),需要防范重放攻击,业务需要支持一些主键字段或者随机一次性会话字段。
CSDN:您在本次SDCC大会上想分享的话题是?
岑文初:上面四个问题中我所提及的内容都会在SDCC上分享。当然如果网友们对于淘宝业务开放的思路和应用业务设计的案例分析感兴趣,欢迎大家和我一起探讨。(关注岑文初博客)
要想现场听取岑文初演讲并与他深度交流的朋友请参加SDCC中国软件开发者大会,更多关于本次中国软件开发者大会的讲师和精彩内容介绍,请关注2012 SDCC 官方网址。
如果您想申请2012中国软件开发者大会演讲机会成为会议演讲嘉宾,请完整填写以下信息。大会组委会将对您提交的信息进行审核。对符合要求者,组委会将荣幸邀请您作为演讲嘉宾参加2012中国软件开发者大会。申请地址:http://sdcc.csdn.net/speech.html
大会热线:010-64387266
票务客服:010-51661202-129
大会邮箱:sdcc@csdn.net
更多信息详见大会官网:http://sdcc.csdn.net/