從京東技術演進看互聯網企業的成長曆程

活動地址:http://blog.csdn.net/blogdevteam/article/details/41842837

一、網站開發技術的選擇

從《京東技術解密》這本書我瞭解到,京東商城網站經歷了ASP、.NET、Java三個階段。但是我不清楚京東爲什麼沒有選擇PHP這個網站開發的首選語言,而是選擇了ASP。我想過程可能是這個樣子的。

首先在京東商城剛成立不久的那個時期,非常流行ASP技術(事實上前兩年還有不少網站是基於ASP的),而PHP在國內還不是非常流行,掌握PHP的高手不是很多。.NET這邊也是剛剛起步不久,還在快速發展時期。Java的開發成本又比較高。而當時的京東商城也不像現在這樣的規模,也只是剛剛起步。因此從招聘開發人員、開發成本等等各個方面來講,京東商城一開始選擇ASP技術是明智的選擇。但是隨着網站用戶規模的不斷擴大,對網站的功能要求越來越多,單純的ASP開發已經力不從心。這時候必須要引入更先進的技術,用模塊化的方法進行開發,這時候擺在面前的選擇就只有.NET和Java了。相對於Java,.NET的開發效率不是一般的高,同樣的,Java開發成本又高,在.NET技術夠用的情況下,還是優先選擇.NET。於是乎在網站開發技術上面進行了第一次升級,由ASP轉向了.NET。

由於.NET只能在Windows操作系統上面跑,隨着用戶規模的指數級上升,特別是在大數據的背景之下,原先的技術架構已經不能夠適應發展的需要。特別是Windows的商業授權的費用,是一筆非常大的開銷,使用開源技術會省掉很多money。更重要的是開源技術有一整套的成熟的解決方案,而且彼此間互相兼容。於是乎京東進行了第二次升級,由.NET轉向了Java。

二、從組織架構看企業管理

從試讀部分,我注意到了打造最有影響力的技術團隊的序。目前京東團隊有4000多人,京東是如何對這4000人進行管理的呢?李大學給了我們答案。

目前研發體系分爲9大模塊和4個平臺。

9大模塊:

1、雲平臺:解決頂層的技術架構和提供基礎設施

2、運維:提供技術支持的平臺

3、營銷研發部:網上營銷

4、運營研發部:針對訂單生產體系研發系統

5、職能研發部:內部信息化管理

6、大數據部:提供統一的大數據技術平臺,數據平臺基於Hadoop

7、移動部:負責移動客戶端的研發

8、研究院:負責全國京東的5大研究院的建設

9、技術研發管理部:主要負責管理體系的建設

4個平臺:

1、技術平臺:基礎雲平臺,支撐所有的應用

2、大數據平臺:大數據處理

3、電商開發API平臺:提供API服務,連接各個系統

4、應用平臺:位網站、移動客戶端等應用提供支撐

從上面這些內容,可以看出京東爲應對市場激烈的競爭而在管理上面所做出的調整。

三、京東是如何應對大數據時代挑戰的

首先他們用基於Hadoop的大數據標配技術來升級原先的Oracle小型機方案,“由40臺機器搭建的第一版集羣,相較於Oracle小型機,性能明顯提升,讓我們第一次體會到分佈式的威力”。經過不斷的探索和實踐,從MySQL數據倉庫完成遷移到Oracle數據倉庫遷移再最終遷移到京東自主研發的JDW2.0數據倉庫,京東大數據平臺逐步走向成熟。

一般公司在引入新技術的時候,都會先直接使用開源的方案,等到成熟再基於它做二次開發,甚至是完全自主開發。京東也是這樣,他們在使用基於Google的Hadoop分佈式技術之後,通過深入學習,在本地化部署過程中實現了技術微創新:

1、定向開發,支持基於HDFS創建索引;

2、定向改造,在Map層面合併小文件,節省資源消耗;

3、支持動態調配資源隊列;

4、對任務運行時間和HDFS的讀寫量支持通過參數進行控制;

5、自主開發適用於京東大數據服務平臺的計算函數;

6、優化並提升Hadoop存儲性能,支持更多類型的數據存儲格式;

京東大數據產品:

1、調度平臺


2、數據集成開發平臺

3、數據知識管理平臺

4、京東分析師

5、數據挖掘平臺


6、數據質量監控平臺


海量數據實時查詢技術框架:

整個技術框架中攘括的技術點包括:Socket通信、SQL語法解析、Cache集羣、並行計算集羣、索引、列存儲、元數據。


1、Client:是一個基於命令行的客戶端,用於接收用戶輸入、執行SQL、查看返回結果,瞭解執行狀況的窗口;

2、瞿塘:負責解析SQL、生產查詢計劃、執行數據計算,計算結果合併;

3、巫峽:負責索引構建、查詢、刪除和優化;

4、西陵:負責數據存儲、備份;

5、MetaStore:負責元數據管理。


基於分佈式架構的聯機分析處理(OLAP)技術:


Visualization是一套適合京東業務使用方式的前端可視化框架。

烏江是指標維度映射管理、權限管理、CUBE創建以及數據彙總和緩存的服務系統。其中Parser是邏輯語句的解析模塊,Configure負責指標維度的管理、權限管理、邏輯CUBE的管理,用戶可以靈活的調整,使適應業務靈活多變性。Aggregate Manager是聚合邏輯處理模塊。

三峽是一個基於分佈式的,支持以SQL的形式提供數據查詢、針對億級數據支持秒級響應,資源佔用率較低的海量數據實時查詢技術框架。

分佈式數據存儲集羣是具有可以任意修改和擴展指標和維度的數據存儲格式的數據集羣。


海量日誌數據分析處理技術:


HA Proxy保證了在大數據量的情況下,採用負載均衡的分發機制,將日誌的寫請求對應到不同的日誌服務器。在數據收集層面,採用了專用的日誌服務器,將日誌寫請求轉換爲標準的文件寫請求。

數據收集完成後,將這些日誌文件同步到分佈式數據處理平臺。在分佈式數據處理平臺上,完成數據清洗,將日誌加載成標準的範式定義的數據。


———————————————————————————————————————————————————————————————

《京東技術解密》並不是一本技術書,這本書的定位是“電商網站/技術人文”,即講述了京東商城從起步到發展壯大,從30人技術團隊到如今4000人技術團隊規模的發展歷程。通過這本書我們也可以看到,京東人在建設系統的過程中經歷了一些挫折,但是他們從一點一滴做起,不斷的堅持才走到了今天。這種契而不捨的精神,着實讓我深受感動。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章