[QCon北京2012]肖偉詳解百度個人云對移動開發的支持
原創4月18日,QCon北京2012大會準時召開。來自全球各地的頂級技術人才齊聚一堂,分享最新技術、開發經驗、交流心得。
在18日上午的主題演講中,百度基礎架構部架構師肖偉向大家介紹了百度的下一代云平臺,以及技術和發展細節。

肖偉指出,目前國內外有很多的公司都有不錯的產品架構來支持云計算這個理念,然而,大多數產品只是將傳統的IDC建設,變成了一個軟件化的產品,也就是給開發者提供機器和帶寬,讓他們的服務在這個云服務器上運行。這真的是開發者想要的核心東西嗎?提供云計算的公司,在國情下,真的能從這種出售硬件資源中謀求長期高速的發展嗎?
以此為基點思考,百度提出了將面向開發者的云計算平臺向個人云計算平臺轉移的思路,推出了下一代云平臺:個人云。
“我們在云端給每個用戶提供一臺云PC,并在這臺PC上安裝了我們的云操作系統,開發者開發的服務,是由用戶安裝到自己的云PC上運行,這種模式是三贏的局面:對于用戶,云操作系統提供了App運行的基礎資源(計算和存儲);對于開發者,無需為服務器埋單,而且得到了整個云平臺為其積累的用戶和用戶數據;對于云提供者,通過提供用戶增值服務而盈利(更多的資源和存儲)”,在介紹中,肖偉這樣描述百度的下一代云平臺。
百度云平臺支持移動應用開發
與目前廣泛存在的云平臺還有一點不同的是,百度云平臺充分考慮了未來的發展,提供對移動設備的支持。
肖偉說“我們在做云平臺的時候發現一個問題,業界的云計算系統過少的考慮了移動的整合,無論是亞馬遜也好還是谷歌也好,在開發一個應用的時候,都覺得是一個網站。而現在就是一個手機應用為王的時代,我們現在是不是有一種云平臺能夠支撐手機的開發?”
肖偉表示,支撐手機開發要解決云到端的問題。手機訪問云第一個問題是耗電,第二個問題是連接不穩定,第三個是耗帶寬?!拔覀兿M靡环N技術將手機和云建立一條穩定的連接,這樣能夠幫助手機省電、省流量,而且幫助手機做更好的適配”。
百度通過“蟲洞”技術,將一些不適合手機瀏覽的內容加工成適用于手機瀏覽和感知的應用,比如對觸屏的支持、對視頻的壓縮,以及推送機制的實現。
肖偉同時表示,完備的技術實力只是開發者需求的一部分,開發者仍然面臨研發環境復雜、產品變現難、終端分裂嚴重、營運推廣難等問題。而百度將通過“個人云”這一平臺來幫助開發者解決這一系列問題。
“個人云的受眾不是開發者的,而是用戶。個人云是一個產品,是由百度提供的個人云平臺,百度在個人云平臺上面提供了云能力和數據”,肖偉說。其中,云能力包括BA的能力,還包括重構的能力,以及沖浪服務,還提供離線下載、指紋識別,還提供百度用戶的數據。
“百度和開發者一起做這個生態系統,讓用戶生活云中”。肖偉表示,開放云平臺是面向開發這的服務器,相當于開發者提供一臺抽象的可以任意擴展的服務器,而“個人云”,則相當于給開發者直接面向用戶、面向用戶PC和移動設備的平臺。
由于數據在云端,個人云能夠做到非常好的分享和人機交互,它所帶來的便利必然得到個人用戶的喜愛。而此時,開發者只要研發出滿足用戶需求的產品,就能通過百度的渠道進行推廣,通過百度的變現能力進行盈利——百度現有的5億用戶和海量的數據,都將為開發者提供一個比較高的起點。
“個人云”的技術實現
介紹完“個人云”的概念后,肖偉接著向大家闡釋了“個人云”平臺的實現方式。百度“個人云”平臺依托于百度的專有云技術和開發云技術實現的。該平臺上包括云存儲、通訊系統(包括人與人的通訊和人與應用的通訊、人機交互)、用戶系統、設備管理、智能編程,業務組件幾個子系統。
在云生態的部署方面,盈利模式包括廣告、增值服務、App應用支付模式和開放第三方系統的加入等。
此外,“個人云”平臺的底層核心技術包括三塊:云存儲,云引擎和云通信。
云存儲方面,百度使用分布式的Server和分布式目錄服務給用戶提供可以支持海量的存儲服務。并從用戶隱私和分享的便利性方面考慮對其支持權限做了充分設定。其中,分享功能中包括對應用的轉碼服務,以支持從PC設備向移動設備的分享。比如將文檔轉化成flash,使用戶能夠在手機端非常好的閱讀它。
云引擎技術中也充分考慮到了PC設備與移動設備間的融合,其實際效果是,云與端之間的內容可以實現充分的融合互通:比如“云在處理一個邏輯的時候,突然發現有一個功能,它在端做更適合,比如說云要獲取一個攝象頭,這個攝象頭只有端有,這個時候就把這個任務扔棄端”。百度將這種云與端得協調工作機制封裝在SDK里,“我們給端提供一個SDK,然后直接開發APP就可以了,它只是一個SDK而已。用戶用SDK開發出端之后,它在云上會對應一個云的PC虛擬化。這個時候,我們在內部有一個系統,將用戶真正的程序影射成Linux進程”,肖偉介紹到。
第三個核心技術是云通訊系統?!拔覀冊诙撕驮仆ㄓ嵉臅r候,比如說我們是可以根據短信進行通訊的,無論你根據什么通訊,我們必須給每個APP分配一個入口。”肖偉舉例說,比如開發者想用短信跟APP通訊,百度會給每個APP分配一個手機號,短信發到服務器上,服務器會解析用戶的手機號和內容,將手機號和內容在云端轉成IPC的服務。訪問到你的服務之后,你就提交請求,然后把這個結果轉成短信的形式下發給用戶。此外,百度還提供了終端Agent技術,以建立可靠的連接、節省流量和耗電。提供P2P機制,以保證數據平滑的傳輸。
最后,肖偉強調,使用百度“個人云”平臺后,“開發者不需要開發一個人類工具了,而是直接使用百度的好友系統以及百度手機上的一些客戶端,直接用就可以了。這樣就完成了人與人的交互。個人云存儲系統就涉及到云引擎技術,然后構成了一個個人云平臺。我們結合變現、系統及服務以及第三方開發者服務組成一個生態鏈,就是數據和技術、百度的渠道、百度的變現能力,這樣使開發者做APP研發過程中能夠做的更好”。