新浪陳爾冬:大數據下Web Server面臨的挑戰
原創從只是簡單的數據讀寫,到現在的跨平臺數據分享,海量數據的讀寫與實時分享為每個互聯網公司帶來了嚴峻的考驗,無論是數據庫還服務器的性能。在面對大數據、高并發的挑戰時,Web Server作為底層承載平臺又將如何應對?還將有哪些挑戰?今天記者聯系到新浪研發中心系統開發部高級系統工程師@陳爾冬 來說一說Web Server的這些事。
陳爾冬:新浪網研發中心系統架構師,擅長大規模Linux集群環境的自動化管理與運維、問題分析、性能調節和架構設計優化,目前同時負責新浪私有云平臺的研發與運維。
互聯網發展至今我們已經歷了Web1.0時代與Web2.0時代,現在又在經歷移動互聯網時代。Web Server在這三個不同的時代中都扮演著底層承載平臺的角色,但是在這三個互聯網時期中用戶對于服務的需求是完全不同的。Web1.0時代,用戶只需要服務器完成簡單的讀寫任務;Web2.0時代,用戶需要和其他人保持相應的互動;而現在,不僅僅是之前的兩種需求,跨平臺的數據即時分享成為了更重要的用戶需求。那么在這三個不同時期中對于Web Server的性能上的需求有哪些不同?
在不同時期用戶對于Web Server性能上的需求陳爾冬表示:“隨著互聯網的發展,業務邏輯也越來越復雜,每頁面帶給Web Server的請求數和CPU計算量越來越高;另一方面,隨著客戶端性能越來越好、用戶接入帶寬越來越越來越高,又希望Web Server的延遲越來越低、響應時間越來越短。雖然Web Server硬件設備的性能越來越好,主流Web Server的性能在C10k問題攻破后也擁有了質的飛躍,但對于個別超大規?;ヂ摼W公司來說,主流Web Server軟件的功能或性能還是可能存在不少不盡如意的地方。”
目前大數據、高并發、高負載的數據處理已經成為了眾多互聯網公司面臨的首要問題。解決這些問題主要取決于數據庫與整個系統架構的性能,但是對于Web Server這個底層平臺來說又當如何應對大數據、高并發帶來的挑戰呢?對于企業來說,進行Web Server的二次開發是否能解決這些問題呢?
陳爾冬:原則上不僅僅是數據庫,而是數據,數據的產生、傳輸、處理、存儲以及挖掘一系列過程。數據庫僅僅是中間一環。因為數據庫和其他數據相關組件天然有狀態(數據本身特點決定的),不像Web Server這樣易于擴展(主流使用方法都可以實現通過簡單點增加物理服務器來擴展Web Server性能),直接導致了海量數據的挑戰是目前大規模和超大規?;ヂ摼W公司的首要難題。相對來說,易于擴展的Web Server,問題變的不是那么緊迫。所以目前只有技術力量雄厚的公司(如百度、淘寶、騰訊)才會在Web Server做深度的二次開發。一般來說,在Web Server二次開發工作上還是集中在滿足特殊的功能需求。
但是也有一些例外,這就是云計算。云計算服務提供商,特別是PaaS云計算提供商希望向用戶提供高性能、高可用性、高可擴展性的服務,希望用戶不用關心底層實現細節同時用戶可以按實際使用量付費。
這就帶來以下兩個挑戰:
- 如果是系統平臺PaaS提供商,就需要對用戶抽象系統細節。如數據庫平臺提供商希望對用戶抽象底層數據庫服務器架構或者部署形式很多成熟的開源系統軟件其實不不能完全滿足云計算的需求,云計算提供商需要自己開發軟件去整合開源軟件并提高其可用性、擴展性或故障容忍能力由于需要按需支付,所以需要能夠對用戶使用情況進行審計并時間計費。
- 面對這些挑戰,很多云計算提供商選擇在系統軟件前搭建一層自己的API層并以此作為系統平臺的入口,這樣只要把自己的業務邏輯繼承在這個API層就可以解決上面所有問題。而構件API層的主要方法之一是基于Web Server二次開發提供高性能的RESTful API。***特點的代表就是agentzh(章亦春)的Nginx Conf編程。
就目前而言,用戶需要的不僅僅是滿足服務需求,更重要的是優秀的用戶體驗,對于一個架構師來說應該本著什么樣的設計理念去設計并優化大數據下的系統架構呢?
陳爾冬:這個問題有點泛。架構師需要考慮和權衡得緯度很多,性能和功能僅僅是一方面。架構師需要在功能、性能、穩定性、易用易管理等多個維護之間找到一個符合自己公司特點得平衡點,并且不斷去調整和優化系統架構去無限接近那個平衡點。
現在做技術無非都是從業務需求入手,對于新浪來說近兩年以來新浪微博已經成為了國內***的網絡社交平臺,相比09年內測的時候目前新浪微博在服務器上做過哪些調整呢?
陳爾冬:新浪微博之前主要在數據相關的組件上做的工作比較多,主要因為這方面給我們帶來的挑戰***。比較有代表的工作如Feed系統、關系系統、緩存系統、可支持跨IDC多點寫入的消息系統等。
【編輯推薦】