业内专家对京东云的评价是“要聚焦电子商务,自成一系的云应用平台”。
这与“做第一电商云”的京东云所确定的方向相吻合。京东云,拥有六个子平台,覆盖了开放接口、托管云、应用开发、移动开发和社区互动以及交易服务等,提供的是一站式的电商云服务。而为了更加透彻地了解京东云,CSDN云计算特别采访到了京东云峰负责人、京东研发部云平台移动云研发总监——曾科。
京东云峰负责人、京东研发部云平台移动云研发总监 曾科
云峰,完整的移动“小”生态
京东云,是一站式的电商云。云峰,是京东的移动云平台。
在曾科看来,云鼎、云擎、云峰、云汇等所有子平台相互关联,组成了京东云为电商服务的一体化云平台。对用户而言,这些平台之间,只需要一个账户来登陆。而云峰,依托云鼎、云擎、云汇,通过大量的计算与存储的资源与互动社区,是免费对移动应用开发者开放的子平台。
“云峰目前提供了云测试、云推送、云分析、短地址等四大服务,后续还增加代码托管、自动编译、打包以及应用发布推广等服务。在云峰上,我们希望可以为移动开发者提供一个完整的生态服务。”曾科对CSDN云计算频道说。
这里的开发者有三类,一是拥有开发能力的POP商家,二是服务广大电商的ISV们,三是重要的独立力量——第三方开发者(如个人开发者等)。“云峰不会直接面对最终用户,我们的定位是为开发者提供移动云平台。”曾科如此表示。
事实上,云峰所覆盖的移动云平台的“小”生态系统已经开始聚拢。中国电子商务研究中心发布的《2012年度中国网络零售市场数据监测报告》显示,截至2012年12月中国B2C网络零售市场(包括平台式与自主销售式)上,京东商城名列第二。这一数字下,无论是移动用户还是POP商家数量都不会少,而这两者自然也催生了第三方如ISV和独立开发者的力量。这正是曾科的底气所在。“中国智能手机的用户群一天一个数字,京东本身就已经有了6000万以上的移动用户,还有团购客户端、电子书EBook,数字音乐,AppStore和云盘等产品,这些都可以直接(有些会在未来)接入云峰平台。再加上ISV和开发者,我们已经形成了基于移动应用的紧密纽带。”
开源优化+自主研发,走成熟的路
云峰的技术理念是开源优化+自主研发,走成熟的路。
京东电商云架构图
目前云峰中已经推出以下四种服务:
云推送:通过服务器与客户端通讯,实现实时的广播通知、应用消息的送达,包括广播、组播和点播模式,发送文字、图片以及声音等多媒体内容;支持Android,低电量、低流量消耗,消息通知及时送达;支持推送工具推送和API接口调用。
短地址:采用签名算法,提供长域名到短域名的双向转换,方便移动设备、微博、邮件中使用;关键是更短的域名,比如3.cn,更短的跳转时间。
云分析:通过客户端对用户操作的记录,实现对用户行为数据、路径与终端数据的上报和分析,提供实时的移动应用统计分析服务,帮助开发商调整运营策略,提高用户体验。包括活跃用户数、区域分布、渠道、版本、终端设备、启动次数、使用频率与时长、页面访问数据等。
云测试:摆脱人工测试,实现真机自动化测试,免去测试终端的购买、租赁等诸费用开销。
这其中,技术层面,有开源优化也有自主研发,亮点很多。
比如移动云测试基于图像识别算法,通过在服务器端的脚本录制、解析和执行,真机测试,最终将功能测试、性能测试和兼容性测试等结果(报表、截图等)反馈给开发者。而针对一些特殊需求,还会做建议修改。曾科说:“目前业界更多是通过控件识别算法来完成测试的,但是往往过于依赖Android和iOS操作系统,也会受到一定限制,而图像识别算法天然就跨平台,表现很优秀。”
再如支持在线脚本录入。由于在线录入资源有限,排队等候现象严重,业内一般是在线录入+辅助客户端录入。但是不同平台的客户端安装、卸载、升级维护都很麻烦,所以借助京东云的整体平台优势,云峰可以只支持在线录入,用户在非常短的等待时间内就可以完成使用。
以及云推送。在对比数个方案之后,云峰团队最后选择了使用GO语言来自己开发,GO语言源自C语言,可以媲美C,或者C++,在性能、安全性、并发性以及后续的优化空间等方面优势很明显。
除此以外,云分析不仅做了图形对比,并且对明细数据进行了对比,比如一款应用在iOS和Android上的对比分析等;短地址不仅支持TCP和HTTP的长链接,还支持HTTP CallBack,这样给了用户多项选择,可以自由选择,相对接入门槛也会更低一些。
曾科和云计算可以分享4个数字:
1.相对业内一般100KB的标准,云推送SDK客户端安装包只有40KB,非常小;
2.由于移动端流量的数据很敏感,云推送的月空载流量控制是在0.3M以内,这也远低于业内1-1.2M之间的指标;
3.云分析日志流量支持压缩,单条日志在0.3K左右,多条日志会通过优化算法进一步降低,从而节省流量;
4.短地址不仅可以做到最短,而且在跳转时间上也可以控制在10毫秒左右,做到最短。
显然,为了达到这些细节的完善和优化,技术团队做出了巨大的努力。“从最初技术选型到中间研发,做了大量优化工作。比如云测试中的图像识别算法需要不断优化,准确率从80%、85%、90%......不断提高。再如区域统计算法是基于自主研发IP库的,目前准确率可到96%,在整个行业中都是领先的。这些后续还需要继续优化。”
谈到技术路线,曾科很坦率:“不仅是我们,任何一个云研发平台的团队,都会尽量使用成熟的开源方案。比如OCR引擎、Hadoop、HBase、MongoDB、Redis等开源技术。而在核心产品方面,则会从头开始自主研发。”
让创新变成实在的创造力
目前,京东云服务已经面向公众开放,虽然目前还属于邀请制,但总体数量比较大。目前实际登陆用户每周的增长率都在100%,势头很快。而随着大量用户的反馈意见或建议,曾科表示:“在未来3-5个月中,还将继续完善和优化现有系统。比如云峰方面,近期针对iOS设备支持会加大力度。未来还将有更多令人激动的新功能出现,比如在线云调试、个性化消息推送、个性化域名等,要结合电商业务做具有京东特色的推送,如针对商品的订单、交易、数据等服务。而针对开发者的需求和反馈,从研发到应用发布、推广也会逐步形成生态的闭环。”
创新的背后,是京东云平台的几百号研发人员。他们组成了一个天然的资源池,共同在开发云鼎、云擎、云峰等平台,这些平台的上线时间几乎同步。由此,研发团队面临的机遇很大,但挑战同样大。最重要的一方面就是必须有足够的成熟度,要有成熟的心态克服困难。
曾科对记者说:“云峰这边包含产品规划、设计、技术架构设计、Web前后台、服务研发、服务器API研发以及Android和iOS端的研发,运营推广等组员。京东云平台比较完整,希望有更多的技术伙伴可以加入我们。”
曾科在互联网行业已经工作13年,不仅对云存储和高性能网站架构方面都熟悉(分布式文件系统DFS、P2SP技术专家),同时对移动开发方面如LBS、网盘移动端、移动插件等也很有经验。在他看来,核心技术力量需要对新生技术有所带动,而后者活跃的创造力也会给前者带来收获。技术团队的根本目标是,让创新变成实在的创造力。
采访后记:
建设新城市远比改造旧城市要容易。亚马逊和阿里集团都是先有了自己的系统,然后才开放部分基础资源给到云计算服务,但其本质上都是双系统架构。而京东不存在这个历史包袱。京东公有云服务和京东私有云已有统一规划,技术上很多模块是互用和耦合的。期待,在不久的将来,这些一线实践经验可以更好地分享出来,帮助云计算研发人员更好地成长。