十年京東,十年技術發展—暢讀《京東技術解密》

《京東技術解密》試讀章節共71頁,我花了兩天時間仔細讀完,讀了過後感到意猶未盡,非常想一口氣把整本讀完,然而只能將試讀章節反覆讀了好幾遍,收穫頗多,遂有此文,藉此總結京東十年來的技術變遷和迅速發展。

之所以對這本書感興趣基於兩個原因:一是自己最近剛好在讀一本書《不戰鬥不成功:劉強東和京東商城的“野蠻”奮鬥史》,見識到了劉強東本人豐富的創業經歷,與噹噹網拼圖書、與淘寶網拼百貨、與蘇寧易購拼家電,京東真是什麼都賣,這份處處競爭的心也值得佩服。二是自己一直對京東印象不錯,覺得京東是“正品多、假貨少、物流快”,也經常在上面買東西。作爲一名技術人員,也就非常想知道支撐京東背後的技術架構是什麼。

文中一開頭劉強東大哥總結的就很好,直接說明本書的目的所在:

京東可以高速發展到今天的規模的原因,其中最核心的是堅持“倒三角”戰略:建立出色的團隊;打造財務、物流和技術三大核心繫統;降低成本、提升效率;爲用戶帶來最佳體驗。在《京東技術解密》一書中,大家會看到技術驅動的力量,這也是京東第一次全面展示自己的技術體系。

從2004年京東剛上線只有一組簡單展示IT產品的網頁,到如今京東已經是覆蓋PC端、移動端,並完整支撐物流、訂單、交易、商品、財務系統的巨大電商平臺;從當初的四五個人到如今的4000+人;從簡單的.Net+SQLServer 系統到主要基於Java 的大規模分佈式系統。十年來,京東的技術平臺實現了高速成長,漸漸的從業務主導型轉爲技術驅動型。

京東的系統比較複雜,涵蓋電商全流程全價值鏈,從前端的交易系統到供應鏈,到倉儲、配送、客服以及售後,除了財務報表之外,幾乎全部系統都是自己研發的。下面總結京東的技術和管理變遷。

如何管理4000人的團隊?

1. 組織架構優化的重要性

以前的京東其技術團隊一直是職能化結構:產品部、研發部、測試部以及運維部門。但當員工越來越多時,這樣的技術團隊協作、溝通、優先級劃分都很困難,因此14年京東對技術團隊做了調整:研發體系分爲9 大模塊4 個平臺。

9大模塊:提供基礎設施的雲平臺運維、實現網上營銷的營銷研發部、針對COO體系的運營研發部、實現內部信息化管理的職能研發部、提供統一的大數據技術平臺的大數據部、負責移動客戶端研發的移動部、負責全國研究院建設的研究院和主要負責管理體系建設的技術研發管理部

4個平臺技術平臺(打造基於雲的技術架構,支撐其上所有的應用)、大數據平臺(數據獨立、大數據處理)、電商開發API平臺(以API 服務的方式進行服務)、應用平臺(包括自己的網站、移動客戶端、內部的ERP及外部的ISV 開發應用)。

組織結構的調整解救了京東因爲團隊人多導致組織混亂和管理困難的問題。

2. IT 管理123:1 個願景、2 個重點、3 個體系

  • 1個願景:即希望或目標,“做中國最有影響力的技術團隊”。hope是很重要的,有了hope就有了動力、有了幹勁,幾千人爲同一個目標共同奮鬥、努力是一件很值得自豪的事情。
  • 2個重點:文化和結構。我個人一直認爲公司的文化和氛圍非常重要,你工作的開不開心、值不值或有沒有幹勁與公司的文化息息相關,好的文化會讓人們覺得工作是享受的,而不好的文化會讓人厭惡工作、抱怨老闆。我一直認爲華爲這麼國內外都很知名、強大的公司爲什麼口碑如此不好,是與其差的公司文化直接相關的(個人愚見),培養好的文化需要關注3個詞:信任、分享和成長。結構就不用說了,基本上現在稍微大點的公司都會出現人才梯隊,比如阿里的P系列,京東與騰訊一樣是T系列。
  • 3 個體系:產品體系、架構體系、管理體系。京東打造了讓產品經理說了算的文化,避免了業務部門、產品部門和研發部門互相綁架的局面。架構也是讓架構師說了算,不是管理者說了算。

與騰訊ECC融合背後的故事

2014 年3 月10 日上午,京東集團與騰訊宣佈建立戰略合作伙伴關係。當時這條消息爆炸在各大IT圈中,我當時也在納悶:一個賣東西的和一個聊天的怎麼能合作的起來。當然,當時瞭解的信息不多,也沒用過QQ網購平臺和拍拍。直到看了本書這章後,才徹徹底底明白了兩者融合的前因後果和過程的艱辛不易。

這次融合讓京東從自營爲主的B2C 業務轉變成自營B2C+平臺B2C+C2C 的完整電商生態系統。且在移動端,騰訊微信的流量優勢以及三四線顧客羣的覆蓋,使得騰訊與京東形成優勢互補。

1. 京東與易迅的整合

這需要完成技術對接,包括商品、訂單和庫存的對接。說起來容易,做起來難,雙方的體量都很大,易迅的主流系統有十幾個,京東的主流系統更有幾十個,而易迅在被騰訊收購之後又對系統進行了幾次調整,其複雜性可想而知。因此怎樣最快解決問題、推出商品,對雙方都是很大的考驗。

  • 首先需要解決快速溝通的問題:雙方的研發體系龐大,人員衆多,系統對接工作涉及一百多人,溝通過程中怎樣快速找到相關人,信息怎樣準確傳遞,都令人困擾。有時候打電話溝通不清楚,就當面溝通——出差,經常在北上深之間飛奔。
  • 做中間轉換接口匹配數據:京東和易迅兩個網站的用戶羣體的偏好存在很大的差異,雙方網站用戶的重合度非常低,而用戶和流量是電商平臺最重要的資產,因此所有產品的對接和系統設計都要以用戶體驗爲第一,否則可能會引起用戶的流失,進而導致流量的下降。但雙方系統都各自運行了很多年,不管是用戶體驗,還是業務場景上都有很大的不同,比如在配送環節,易迅有一日三送,而京東是定時達等等。這些都不能簡單統一爲一個,而必須能互相兼容,且用戶體驗只能增強。類似這樣的不同點多達幾十處,最後的方案就是做一箇中間轉換接口,分別來解析和匹配兩邊的數據對接,並通過歷史記憶來自動匹配。

2. 京東與QQ網購的融合

融合目標一旦確定下來,就容不得半點遲疑,北京即刻成立了專門的項目小組,並在京東會議室資源非常緊張的情況下申請了一間專用會議室作爲戰時指揮部,主要項目組成員隨即打點行囊入駐、封閉,還需要北京、深圳兩地多個業務、產品、研發團隊無數次的溝通、修正和冥思苦想。此次的融合是空前的,不同的文化、不同的地域、獨立的系統,要全面打通面臨着各種技術、商務、工作方式等方面的不同。需求上的、技術上的以及要平衡各個相關方的利益而產生的各種待確認問題,像一場又一場密集的流星雨,每天在項目指揮部的上空火花帶閃電般接踵而至。從項目伊始到項目結尾,這期間經歷的艱辛與努力很值得我們細細回味和學習。

3. 京東與拍拍的融合

京東的加入讓拍拍煥然一新,之前臃腫不堪的首頁即刻換成了如今的清新大方,商品也豐富了不少,賬戶系統的打通曆經了N條方案和無數羣組討論,期間寧願延遲項目發佈也不犧牲用戶體驗的做法很值得推崇。

京東的大數據平臺演變歷程

現在沒有哪個大公司不關注大數據的,13年初的時候,在京東制定的下一個10 年發展規劃中明確提出,大數據戰略將成爲公司重點戰略方向之一。

京東大數據平臺從無到有,從集中式到如今的分佈式,從Oracle數據倉庫到JDW2.0,4 年期間完成了複雜的演變。技術的變遷都是需求驅動的,京東也不例外。

1. 自建數據倉庫—解決數據服務不能自主的困境

數據多了,就需要成立專門的數據部門(Tiger 團隊),其工作重點是數據分析與數據報表,但在沒有數據倉庫的年代裏,分析師們只能依靠DBA 提供的兩臺查詢機排隊寫SQL 提數,然後再拿回來做分析。遇到業務需求方描述不清或口徑不明確時,往往要花大量時間溝通調研,反覆提取數據,這個過程耗時費力不說,還會被需求方不斷催促,使得效率非常低下。Tiger的解決方案就是:自建數據倉庫,這是做到自主數據服務的必由之路。且採用的是基於開源的MySQL,採用集羣(Cluster)應用架構,支持大規模數據存儲與計算應用,而沒有使用有着強大數據處理能力的Oracle BIEE 商業智能平臺。據提取與報表展現產品同樣採用開源技術自主研發,後臺Java 程序,前端採用Ajax 框架Extjs。這種輕量級的數據產品在穩定性及服務能力上與BIEE相比雖然有一定差距,但支持快速迭代及無與倫比的靈活性這些優點也是成熟商業產品所無法替代的。正是自主研發、快速迭代和靈活應用這些適用於互聯網企業的特點,使得一系列產品和技術方案在快速成長的京東很好地支持了各種場景的數據需求,也成就了今天的京東大數據平臺。這對於其他成長中的互聯網企業也具有重要的借鑑意義。

2. 開始建設分佈式數據倉庫

基於Hadoop,以Mapreduce 作爲計算引擎的分佈式數據倉庫開始建設,因爲分佈式的威力,Oracle漸漸的退出了京東數據倉庫。調度平臺功能逐漸完善,生產模式也由原來的單節點調度升級到分佈式調度。今天的京東企業級數據倉庫JDW 便是在這樣的歷程中演變而來的。

京東大數據產品

  • 調度平臺:虛擬節點的引入、Plumber 技術的採用非常重要。
  • 數據集成開發平臺:里程碑產品,結束了數據分析師和業務部門數據需求人員通過客戶端工具手工提取數據的痛苦經歷。從Extjs到Bootstrap前端技術的轉變也值得關注。
  • 數據知識管理平臺:提供類wiki的功能,這讓我想起了Confluence這款軟件,不知道使用它作爲知識管理工具的公司多不多。
  • 京東分析師:實現類Tableau的桌面系統。
  • 數據挖掘平臺:採用基於內存的存儲引擎,集羣資源調度與管理基於Hadoop Yarn 框架。
  • 數據質量監控平臺:實現數據的及時性、準確性和完整性。

大數據技術創新

我覺得這一點非常重要,業界對大數據處理的技術方案几乎已經形成一套通用的技術架構,但爲什麼還有很多公司還是自己研發一套系統架構(典型的如阿里),主要是因爲不同的行業及不同的實際業務需求,通用的方案一方面可能很臃腫,有許多不需要的功能,另一方面不夠靈活,不能實現特殊需求,因此大數據平臺建設所用核心技術依然需要付出一定的研發投入來實現定向的技術突破與應用,即所謂的“定製開發”。京東在通用的開源技術架構基礎上進行定製開發和產品化,從技術和產品兩個層面實現微創新和突破性創新,打造堅實的平臺基礎。技術微創新主要體現在平臺的基礎架構上,產品層面的突破性創新主要體現在大數據管理應用上,其中總結的創新點具有借鑑意義,需要的可以細看。

在需求的驅動下,京東不斷研發出了海量數據實時計算平臺“漢江”、海量數據實時查詢產品“三峽”、基於分佈式架構的聯機分析處理系統和海量日誌數據分析處理平臺,文中分別介紹了它們的技術架構。

這些大數據技術最終實現了精準營銷(例如通過郵件個性化推薦產品)、電商C2B 定製(例如京東的JDPhone 計劃)、用戶畫像(解決把數據轉化爲商業價值的問題)、店鋪評級系統的搭建。

最後一章是介紹幾位京東技術大咖,看了過後除了跪拜還是跪拜,每個公司都有不少的技術大牛,希望自己以後也能成爲其中的一員吧。

發佈了122 篇原創文章 · 獲贊 158 · 訪問量 107萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章