4月18日,QCon北京2012大会准时召开。来自全球各地的顶级技术人才齐聚一堂,分享最新技术、开发经验、交流心得。
在18日上午的主题演讲中,百度基础架构部架构师肖伟向大家介绍了百度的下一代云平台,以及技术和发展细节。
肖伟指出,目前国内外有很多的公司都有不错的产品架构来支持云计算这个理念,然而,大多数产品只是将传统的IDC建设,变成了一个软件化的产品,也就是给开发者提供机器和带宽,让他们的服务在这个云服务器上运行。这真的是开发者想要的核心东西吗?提供云计算的公司,在国情下,真的能从这种出售硬件资源中谋求长期高速的发展吗?
以此为基点思考,百度提出了将面向开发者的云计算平台向个人云计算平台转移的思路,推出了下一代云平台:个人云。
“我们在云端给每个用户提供一台云PC,并在这台PC上安装了我们的云操作系统,开发者开发的服务,是由用户安装到自己的云PC上运行,这种模式是三赢的局面:对于用户,云操作系统提供了App运行的基础资源(计算和存储);对于开发者,无需为服务器埋单,而且得到了整个云平台为其积累的用户和用户数据;对于云提供者,通过提供用户增值服务而盈利(更多的资源和存储)”,在介绍中,肖伟这样描述百度的下一代云平台。
百度云平台支持移动应用开发
与目前广泛存在的云平台还有一点不同的是,百度云平台充分考虑了未来的发展,提供对移动设备的支持。
肖伟说“我们在做云平台的时候发现一个问题,业界的云计算系统过少的考虑了移动的整合,无论是亚马逊也好还是谷歌也好,在开发一个应用的时候,都觉得是一个网站。而现在就是一个手机应用为王的时代,我们现在是不是有一种云平台能够支撑手机的开发?”
肖伟表示,支撑手机开发要解决云到端的问题。手机访问云第一个问题是耗电,第二个问题是连接不稳定,第三个是耗带宽。“我们希望用一种技术将手机和云建立一条稳定的连接,这样能够帮助手机省电、省流量,而且帮助手机做更好的适配”。
百度通过“虫洞”技术,将一些不适合手机浏览的内容加工成适用于手机浏览和感知的应用,比如对触屏的支持、对视频的压缩,以及推送机制的实现。
肖伟同时表示,完备的技术实力只是开发者需求的一部分,开发者仍然面临研发环境复杂、产品变现难、终端分裂严重、营运推广难等问题。而百度将通过“个人云”这一平台来帮助开发者解决这一系列问题。
“个人云的受众不是开发者的,而是用户。个人云是一个产品,是由百度提供的个人云平台,百度在个人云平台上面提供了云能力和数据”,肖伟说。其中,云能力包括BA的能力,还包括重构的能力,以及冲浪服务,还提供离线下载、指纹识别,还提供百度用户的数据。
“百度和开发者一起做这个生态系统,让用户生活云中”。肖伟表示,开放云平台是面向开发这的服务器,相当于开发者提供一台抽象的可以任意扩展的服务器,而“个人云”,则相当于给开发者直接面向用户、面向用户PC和移动设备的平台。
由于数据在云端,个人云能够做到非常好的分享和人机交互,它所带来的便利必然得到个人用户的喜爱。而此时,开发者只要研发出满足用户需求的产品,就能通过百度的渠道进行推广,通过百度的变现能力进行盈利——百度现有的5亿用户和海量的数据,都将为开发者提供一个比较高的起点。
“个人云”的技术实现
介绍完“个人云”的概念后,肖伟接着向大家阐释了“个人云”平台的实现方式。百度“个人云”平台依托于百度的专有云技术和开发云技术实现的。该平台上包括云存储、通讯系统(包括人与人的通讯和人与应用的通讯、人机交互)、用户系统、设备管理、智能编程,业务组件几个子系统。
在云生态的部署方面,盈利模式包括广告、增值服务、App应用支付模式和开放第三方系统的加入等。
此外,“个人云”平台的底层核心技术包括三块:云存储,云引擎和云通信。
云存储方面,百度使用分布式的Server和分布式目录服务给用户提供可以支持海量的存储服务。并从用户隐私和分享的便利性方面考虑对其支持权限做了充分设定。其中,分享功能中包括对应用的转码服务,以支持从PC设备向移动设备的分享。比如将文档转化成flash,使用户能够在手机端非常好的阅读它。
云引擎技术中也充分考虑到了PC设备与移动设备间的融合,其实际效果是,云与端之间的内容可以实现充分的融合互通:比如“云在处理一个逻辑的时候,突然发现有一个功能,它在端做更适合,比如说云要获取一个摄象头,这个摄象头只有端有,这个时候就把这个任务扔弃端”。百度将这种云与端得协调工作机制封装在SDK里,“我们给端提供一个SDK,然后直接开发APP就可以了,它只是一个SDK而已。用户用SDK开发出端之后,它在云上会对应一个云的PC虚拟化。这个时候,我们在内部有一个系统,将用户真正的程序影射成Linux进程”,肖伟介绍到。
第三个核心技术是云通讯系统。“我们在端和云通讯的时候,比如说我们是可以根据短信进行通讯的,无论你根据什么通讯,我们必须给每个APP分配一个入口。”肖伟举例说,比如开发者想用短信跟APP通讯,百度会给每个APP分配一个手机号,短信发到服务器上,服务器会解析用户的手机号和内容,将手机号和内容在云端转成IPC的服务。访问到你的服务之后,你就提交请求,然后把这个结果转成短信的形式下发给用户。此外,百度还提供了终端Agent技术,以建立可靠的连接、节省流量和耗电。提供P2P机制,以保证数据平滑的传输。
最后,肖伟强调,使用百度“个人云”平台后,“开发者不需要开发一个人类工具了,而是直接使用百度的好友系统以及百度手机上的一些客户端,直接用就可以了。这样就完成了人与人的交互。个人云存储系统就涉及到云引擎技术,然后构成了一个个人云平台。我们结合变现、系统及服务以及第三方开发者服务组成一个生态链,就是数据和技术、百度的渠道、百度的变现能力,这样使开发者做APP研发过程中能够做的更好”。