專訪新浪微博技術經理楊衛華:微博產品應用開發談
原創【51CTO獨家報道】隨著新浪等門戶網站對微博產品的推出,越來越多的人開始使用這種新的Web2.0應用方式,微博客的產品形式也受到越來越多的關注。
對于開發人員而言,微博產品的開發與傳統的Web應用開發有哪些不同?在開發與實現方面會遇到哪些技術難點?如何走進微博應用的開發?帶著這些問題,51CTO記者在上周舉行的Qcon 2010上有幸采訪到新浪的產品部技術經理,主要負責新浪微博開發的楊衛華先生。
微博開發與傳統Web開發
微博是Web2.0的一種核心應用,與博客、論壇等傳統的Web 2.0產品相比,博客和論壇更關注內容到保存和展現,而微博除了具有上述的功能外,還具有自己的特點,在采訪中,楊衛華先生指出,微博產品具有實時性、關注與被關注、內容聚合三個特點。
實時性:微博的消息傳送需要更小的延遲,發布的消息用戶可以及時的看到自己所關注的信息;博客、論壇的實現形式延遲性較大,并不適合微博的技術特點。
關注與被關注:微博用戶的主要應用形態聚集在關注與被關注者消息的實時傳遞,這將設計到大量關注著的內容聚合和展示。
內容聚合:所有關注者的消息會聚合呈現在用戶頁面,而且保證最佳的實時性。
在具體的技術開發中,一些主要的技術難點將圍繞著這三個特點展開。微博產品中,用戶所關注的多個對象的實時聚合展示,在一些應用場景下,將導致下面的問題——訪問峰值。
微博開發的技術難點——訪問峰值
一般Web應用的訪問量是可以預估的,比如博客或CMS系統,通過一些流量監控空間和用戶行為分析,可以預先估計到用戶訪問量的時段特點。但微博不同,作為一個信息傳播平臺,在一些突發事件、熱門事件等發生時,會有大批量的用戶參加進來,系統會隨時遇到訪問的峰值。
訪問峰值的問題,新浪主要從以下三個方面來解決
硬件:面對微博隨時可能發生的高訪問量,新浪首先從硬件基礎實施和網絡環境上做保障,在全國各省中心城市的一線機房部署服務器,保證時時暢通;
開發:在程序實現上,新浪微博對功能代碼嚴格把關,并在上線之前進行充分的壓力測試,找出性能瓶頸并解決。
另外,對圖片、JS等靜態資源新浪微博采用CDN的方式來分擔流量。
海量數據處理
隨著Web應用的發展,越來越多的網站遇到海量數據的存儲和處理方面的問題。微博產品更是如此。隨著應用時間和用戶的增長,微博的消息數量也會成指數級的增長,同樣也會面臨到海量數據存儲的問題。
目前,海量數據存在兩種解決方案,傳統的關系數據庫和NoSQL。
在關系數據庫中,通過sharding的手段將數據分散到多臺服務器上。對于微博這種產品,由于話題、熱門的討論是有時段的,可以通過時間來分片進行sharding。
還有一種是NoSQL的方法。目前知名微博網站Twitter已經在嘗試Cassandra分布式數據庫,對于數據規模增長非??斓木W站,NoSQL的Key-Value存儲形式可以保證很好的伸縮性和高可用性,產品內部可以實現不停機的修改能力。
在之前對豆瓣網首席架構師洪強寧先生的采訪中,他也強調了NoSQL對大數據量Web2.0網站的好處。
走進微博應用開發
目前Twitter的70%以上的流量都來自第三方API的應用,在采訪中,楊衛華先生透露,新浪也正在計劃開放平臺,希望更多應用開發者寫應用;希望更好的創意可以在新浪微博體現。
對于傳統的Web開發者,該如何走進微博應用的開發呢?
楊衛華先生說,做微博應用開發,一方面,要找一個好的創意,對應用的形式和內容有一個好的把握。國外微博平臺有很多好的應用,但借鑒之外,還要注意中國用戶的使用習慣。
第二點就是習慣與開放平臺和API的使用。楊衛華先生推薦了新浪云開發平臺(SAE),這是新浪推出的云計算平臺,目前還處于Beta版。使用新浪云平臺,可以方便的對系統進行擴展,不需要擔心硬件和設備。
關于CDN:CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡"邊緣",使用戶可以就近取得所需的內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
關于NoSQL:請參考51CTO之前的報道《對SQL說不!NoSQL的數據庫技術革命》和《探尋關系數據庫和ORM的最佳替代者》
關于Cassandra:Cassandra最初由Facebook開發,后轉變成了開源項目。它是一個網絡社交云計算方面理想的數據庫。以Amazon專有的完全分布式的Dynamo為基礎,結合了Google BigTable基于列族(Column Family)的數據模型。P2P去中心化的存儲。
關于SAE:新浪的云開發平臺,類似Google的GAE,提供PHP語言的支持,目前還處于Beta階段。
點擊第二頁查看楊衛華先生訪談視頻#p#
訪談視頻
【編輯推薦】
- 專訪豆瓣網首席架構師洪強寧:Python,簡單的力量
- 專訪Twitter工程師:SNS產品發展途中的那些事兒
- 專訪豆瓣網首席架構師洪強寧:BeansDB與NoSQL的應用與發展
- 專訪鄧草原:從對象和函數式到現實世界的項目