視頻 | 二叉樹團隊
文字 | 徐川

自從大學時將操作系統內核作爲研究方向後,劉海鋒就和分佈式系統結下了不解之緣。

從分佈式存儲、圖片系統,到中間件體系、容器平臺、新一代彈性數據庫、異地多活項目等等,劉海鋒的職業生涯大多在與基礎架構打交道。

他畢業後歷經百度、外企、創業公司,然後在 13 年加入京東。參加工作十年後,劉海鋒已是京東零售首席架構師兼技術副總裁,這個速度在一般程序員中顯得非同尋常。爲什麼他成長這麼快呢?在他眼裏的架構又是什麼樣的呢?

《十年》六集技術專題紀錄片 | 第四集

由 InfoQ 二叉樹出品

本期二叉樹視頻嘉賓爲京東零售首席架構師劉海峯。
成長經歷

從中國科技大學研究生畢業後,劉海鋒工作的第一站是百度。在百度的時候,他參與開發了一個新型的存儲系統。然而系統上線之後,發現了一個 bug,它會概率性的把一些數據弄錯幾個比特,這對於作爲整個架構基石的存儲系統來說是不可接受的。

劉海鋒回憶說,當時這 bug 出現之後整個團隊壓力都特別大,然而問題太隱蔽,想要短時間修復很困難,但如果因此而將系統下線的話,整個團隊的工作都將受到影響。爲了定位問題,他從早上的九點多一直工作到第二天的凌晨三四點,竟然把 bug 定位出來並修復掉了,避免了系統回滾。

這個事情一直影響了劉海鋒之後的整個工作生涯,遇到什麼問題他的態度不是迴避,而是要迎難而上,一口氣把它解決掉。

2014 年 8 月,劉海鋒在京東開始帶領團隊做內部彈性雲平臺的研發,當時他做了一個略顯激進的決定,用 OpenStack 來管理 Docker,讓大部分系統和應用都運行在剛發佈一年多、稍顯稚嫩的容器裏。

這個激進還體現在他後來對數據中心操作系統 JDOS 升級的技術選型,2016 年初,容器已經被大家所接受,但容器編排花落誰家尚無定論,在大家還在觀望的時候,劉海鋒選擇了 Kubernetes,將其作爲第二代 JDOS 的基石。這讓京東在很早就積累了運維大規模 Kubernetes 集羣的經驗,京東的 Kubernetes 經驗也被 CNCF 官方作爲案例分享。2018 年 4 月,京東應邀加入 CNCF,劉海鋒也成爲代表京東的 CNCF 全球理事會成員。

不過,雖然在外人看來一些技術決策略顯激進,但劉海鋒本人並不這麼認爲,他覺得自己只是在正確的時間做了正確的選擇。比如爲什麼用 Docker 替代 VM,主要是基於在內部的環境裏面,隔離性和安全性並不是第一位的需求,而容器鏡像帶來的敏捷、高性能,以及運維的便利,恰好是他們所需的。因爲對 Linux 內核、分佈式系統有深刻的理解,所以他能在第一時間理解 Docker 和 Kubernetes 的優勢,並且認定它們是未來的發展趨勢。

2016 年的雙 11,劉海鋒第一次擔任京東大促的整體技術協調,這是涉及到公司上上下下,數十個部門和數千人的大規模作戰。這讓他對架構與公司業務的關係有了更深的理解。他認識到,大促的備戰其實是一個綜合性的系統工程,這裏面需要很多技術的手段,也需要各條產品線各條技術線所有人去協同工作,在做架構設計的時候,要考慮到儘可能多的人的需求,然後在其中做平衡取捨。

隨着負責的團隊逐漸增大,劉海鋒在管理方面的所花的時間越來越多,但他仍然沒有離開技術的一線。他平時會跟團隊骨幹一起來商定一些重要系統的架構設計,並且定期對關鍵項目做覆盤和 review,也會投身一線和同事一起去處理線上出現的重要問題。爲了更好的做出技術規劃,劉海鋒會經常研讀最新的一些學術論文。他也鼓勵團隊在國際會議上發表論文,與同行交流,然後把最前沿的理論和方法運用到實際項目中去。

架構十年

過去的十年,劉海鋒與架構一同成長。他認爲,架構領域經歷了快速演進的十年。架構領域在整個互聯網的技術棧是偏底層的,但過去十年架構領域的演進速度,一點都不亞於應用開發,甚至移動端開發的速度。比如容器,新型的數據庫,新型的中間件,大規模集羣的調度,以及系統跟算法的結合,在很多方面都出現了新的變化,甚至是出現了里程碑式的進步。

在具體的變化方面,劉海鋒列舉了三點,第一點是容器。把所有的東西都放在容器裏,這是以前從沒有過的。到今天,我們不光把應用的部署放在容器裏,很多有狀態的服務,包括緩存,數據庫大數據的一些計算任務我們也都放在容器裏,統一的編排調度和執行。這極大的簡化了運維的複雜性,同時也讓數據中心整體的資源使用率提升。

第二點是數據庫。數據庫作爲基礎架構非常核心的組成部分,在過去的十年間裏面有一個顯著的特點是從大一統的一元的數據庫逐漸走向多元,逐漸的走向爲不同的應用場景而定製。

十年前,我們能想到的數據庫,更多的是商用數據庫。但到今天任何上規模的互聯網公司,甚至傳統行業,都可能需要多元的數據庫技術來解決數據管理問題。以電商爲例,一般來說會用 MySQL 以及 MySQL 的中間件,作爲最關鍵的結構化存儲,但同時會配上內存 KV Store 做加速、用檢索型數據庫做全文檢索,用時間序列數據庫做海量數據的監控採集和分析,等等。從 DB 底層核心技術來看,跨地域複製且強一致複製、計算與存儲分離、從以磁盤爲中心到以內存爲中心,是三個非常顯著的技術變遷。

第三點,系統跟算法的結合越來越緊密,系統跟算法一起形成一家公司的技術的基石,系統相當於是骨架,而算法給骨架注入了靈魂。

舉兩個簡單的例子。第一個,很多大規模的分佈式系統需要自動化的運維。在打造自動化運維的過程中,時間序列的分析與預測,根因分析等等發揮了重要的作用,這裏面需要算法的力量。第二點,對於大規模的數據中心裏面整體的資源調度,這需要非常強的調度的算法,以及預測算法去改進容器在整個數據中心的分配策略,調度算法的改進所帶來的成本收益都是非常顯著的。所以說,近年來,在架構領域,大規模分佈式系統和一些實用算法工程,兩者結合非常緊密。

架構的未來

最近這兩年,劉海鋒也經常思考架構的未來。軟件架構,唯一不變的就是變化,但變化又分成了波動與趨勢,所以對趨勢的把握顯得尤爲重要,所謂架構,不僅要解決現在的問題,更加需要對未來趨勢有深刻的理解與把握。

在這方面,劉海鋒給我們分享了兩點,第一個是架構智能化(Architecture with Intelligence & Architecture for Intelligence)。他認爲在接下來幾年,架構的智能化會成爲現實。一方面,算法或 AI 技術跟大規模系統架構的結合會更加緊密,甚至會催化很多分佈式系統的一些變革,機器學習算法的應用也會讓很多大系統的運維和應用更加的簡單。另一方面,AI 的工業級應用也需要有力的底層架構支撐,比如高性能的機器學習框架,大規模特徵向量的檢索匹配系統,等等。

第二點是混合多雲,或者說,從更大的層面,讓應用開發者忘記數據中心,忘記基礎設施建設將成爲現實。從這個角度來說,甚至可以叫 Datacenter-less。接下來 5 到 10 年,很多大中型企業,他們重要的業務一定會橫跨自己的數據中心和不同雲服務商的數據中心。一定會有框架出現來屏蔽底層的這些差異與複雜性,讓大家像編排機器編排數據中心那樣編排多個雲。回顧整個行業,我們可以看到,Google 等公司已經着力開始開展這方面的工作與業務。

具體到一些實際的一些技術框架方面,劉海鋒會持續關注和研究目前的一些熱門前沿技術,比如說 serveless、Service Mesh,各種新型的數據庫軟件等等。總之,未來架構將使得應用的開發更加簡單,也更加人性化。


在 2013 年的 QCon 上海雲計算專場,劉海鋒老師就介紹了京東自主研發的分佈式存儲 – 京東文件系統 (JFS),以及基於 JFS 的統一數據中心存儲策略。今年 QCon 又邀請到京東集團中臺技術架構部資深架構師李玥爲聽衆分享《高可用分佈式流數據存儲設計》,還有更多架構內容請點擊「 閱讀原文 」或識別二維碼瞭解。大會報名最後一週,有任何問題歡迎聯繫票務小姐姐 Ring,電話:13269076283,微信:qcon-0410

相关文章