京东刘海锋:过去十年架构领域最重要的三个变化
視頻 | 二叉樹團(tuán)隊(duì)
文字 | 徐川
自從大學(xué)時(shí)將操作系統(tǒng)內(nèi)核作為研究方向后,劉海鋒就和分布式系統(tǒng)結(jié)下了不解之緣。
從分布式存儲(chǔ)、圖片系統(tǒng),到中間件體系、容器平臺(tái)、新一代彈性數(shù)據(jù)庫、異地多活項(xiàng)目等等,劉海鋒的職業(yè)生涯大多在與基礎(chǔ)架構(gòu)打交道。
他畢業(yè)后歷經(jīng)百度、外企、創(chuàng)業(yè)公司,然后在 13 年加入京東。參加工作十年后,劉海鋒已是京東零售首席架構(gòu)師兼技術(shù)副總裁,這個(gè)速度在一般程序員中顯得非同尋常。為什么他成長這么快呢?在他眼里的架構(gòu)又是什么樣的呢?
由?InfoQ 二叉樹出品
本期二叉樹視頻嘉賓為京東零售首席架構(gòu)師劉海鋒。
成長經(jīng)歷
從中國科技大學(xué)研究生畢業(yè)后,劉海鋒工作的第一站是百度。在百度的時(shí)候,他參與開發(fā)了一個(gè)新型的存儲(chǔ)系統(tǒng)。然而系統(tǒng)上線之后,發(fā)現(xiàn)了一個(gè) bug,它會(huì)概率性的把一些數(shù)據(jù)弄錯(cuò)幾個(gè)比特,這對(duì)于作為整個(gè)架構(gòu)基石的存儲(chǔ)系統(tǒng)來說是不可接受的。
劉海鋒回憶說,當(dāng)時(shí)這 bug 出現(xiàn)之后整個(gè)團(tuán)隊(duì)壓力都特別大,然而問題太隱蔽,想要短時(shí)間修復(fù)很困難,但如果因此而將系統(tǒng)下線的話,整個(gè)團(tuán)隊(duì)的工作都將受到影響。為了定位問題,他從早上的九點(diǎn)多一直工作到第二天的凌晨三四點(diǎn),竟然把 bug 定位出來并修復(fù)掉了,避免了系統(tǒng)回滾。
這個(gè)事情一直影響了劉海鋒之后的整個(gè)工作生涯,遇到什么問題他的態(tài)度不是回避,而是要迎難而上,一口氣把它解決掉。
2014 年 8 月,劉海鋒在京東開始帶領(lǐng)團(tuán)隊(duì)做內(nèi)部彈性云平臺(tái)的研發(fā),當(dāng)時(shí)他做了一個(gè)略顯激進(jìn)的決定,用 OpenStack 來管理 Docker,讓大部分系統(tǒng)和應(yīng)用都運(yùn)行在剛發(fā)布一年多、稍顯稚嫩的容器里。
這個(gè)激進(jìn)還體現(xiàn)在他后來對(duì)數(shù)據(jù)中心操作系統(tǒng) JDOS 升級(jí)的技術(shù)選型,2016 年初,容器已經(jīng)被大家所接受,但容器編排花落誰家尚無定論,在大家還在觀望的時(shí)候,劉海鋒選擇了 Kubernetes,將其作為第二代 JDOS 的基石。這讓京東在很早就積累了運(yùn)維大規(guī)模 Kubernetes 集群的經(jīng)驗(yàn),京東的 Kubernetes 經(jīng)驗(yàn)也被 CNCF 官方作為案例分享。2018 年 4 月,京東應(yīng)邀加入 CNCF,劉海鋒也成為代表京東的 CNCF 全球理事會(huì)成員。
不過,雖然在外人看來一些技術(shù)決策略顯激進(jìn),但劉海鋒本人并不這么認(rèn)為,他覺得自己只是在正確的時(shí)間做了正確的選擇。比如為什么用 Docker 替代 VM,主要是基于在內(nèi)部的環(huán)境里面,隔離性和安全性并不是第一位的需求,而容器鏡像帶來的敏捷、高性能,以及運(yùn)維的便利,恰好是他們所需的。因?yàn)閷?duì) Linux 內(nèi)核、分布式系統(tǒng)有深刻的理解,所以他能在第一時(shí)間理解 Docker 和 Kubernetes 的優(yōu)勢(shì),并且認(rèn)定它們是未來的發(fā)展趨勢(shì)。
2016 年的雙 11,劉海鋒第一次擔(dān)任京東大促的整體技術(shù)協(xié)調(diào),這是涉及到公司上上下下,數(shù)十個(gè)部門和數(shù)千人的大規(guī)模作戰(zhàn)。這讓他對(duì)架構(gòu)與公司業(yè)務(wù)的關(guān)系有了更深的理解。他認(rèn)識(shí)到,大促的備戰(zhàn)其實(shí)是一個(gè)綜合性的系統(tǒng)工程,這里面需要很多技術(shù)的手段,也需要各條產(chǎn)品線各條技術(shù)線所有人去協(xié)同工作,在做架構(gòu)設(shè)計(jì)的時(shí)候,要考慮到盡可能多的人的需求,然后在其中做平衡取舍。
隨著負(fù)責(zé)的團(tuán)隊(duì)逐漸增大,劉海鋒在管理方面的所花的時(shí)間越來越多,但他仍然沒有離開技術(shù)的一線。他平時(shí)會(huì)跟團(tuán)隊(duì)骨干一起來商定一些重要系統(tǒng)的架構(gòu)設(shè)計(jì),并且定期對(duì)關(guān)鍵項(xiàng)目做復(fù)盤和 review,也會(huì)投身一線和同事一起去處理線上出現(xiàn)的重要問題。為了更好的做出技術(shù)規(guī)劃,劉海鋒會(huì)經(jīng)常研讀最新的一些學(xué)術(shù)論文。他也鼓勵(lì)團(tuán)隊(duì)在國際會(huì)議上發(fā)表論文,與同行交流,然后把最前沿的理論和方法運(yùn)用到實(shí)際項(xiàng)目中去。
架構(gòu)十年
過去的十年,劉海鋒與架構(gòu)一同成長。他認(rèn)為,架構(gòu)領(lǐng)域經(jīng)歷了快速演進(jìn)的十年。架構(gòu)領(lǐng)域在整個(gè)互聯(lián)網(wǎng)的技術(shù)棧是偏底層的,但過去十年架構(gòu)領(lǐng)域的演進(jìn)速度,一點(diǎn)都不亞于應(yīng)用開發(fā),甚至移動(dòng)端開發(fā)的速度。比如容器,新型的數(shù)據(jù)庫,新型的中間件,大規(guī)模集群的調(diào)度,以及系統(tǒng)跟算法的結(jié)合,在很多方面都出現(xiàn)了新的變化,甚至是出現(xiàn)了里程碑式的進(jìn)步。
在具體的變化方面,劉海鋒列舉了三點(diǎn),第一點(diǎn)是容器。把所有的東西都放在容器里,這是以前從沒有過的。到今天,我們不光把應(yīng)用的部署放在容器里,很多有狀態(tài)的服務(wù),包括緩存,數(shù)據(jù)庫大數(shù)據(jù)的一些計(jì)算任務(wù)我們也都放在容器里,統(tǒng)一的編排調(diào)度和執(zhí)行。這極大的簡(jiǎn)化了運(yùn)維的復(fù)雜性,同時(shí)也讓數(shù)據(jù)中心整體的資源使用率提升。
第二點(diǎn)是數(shù)據(jù)庫。數(shù)據(jù)庫作為基礎(chǔ)架構(gòu)非常核心的組成部分,在過去的十年間里面有一個(gè)顯著的特點(diǎn)是從大一統(tǒng)的一元的數(shù)據(jù)庫逐漸走向多元,逐漸的走向?yàn)椴煌膽?yīng)用場(chǎng)景而定制。
十年前,我們能想到的數(shù)據(jù)庫,更多的是商用數(shù)據(jù)庫。但到今天任何上規(guī)模的互聯(lián)網(wǎng)公司,甚至傳統(tǒng)行業(yè),都可能需要多元的數(shù)據(jù)庫技術(shù)來解決數(shù)據(jù)管理問題。以電商為例,一般來說會(huì)用 MySQL 以及 MySQL 的中間件,作為最關(guān)鍵的結(jié)構(gòu)化存儲(chǔ),但同時(shí)會(huì)配上內(nèi)存 KV Store 做加速、用檢索型數(shù)據(jù)庫做全文檢索,用時(shí)間序列數(shù)據(jù)庫做海量數(shù)據(jù)的監(jiān)控采集和分析,等等。從 DB 底層核心技術(shù)來看,跨地域復(fù)制且強(qiáng)一致復(fù)制、計(jì)算與存儲(chǔ)分離、從以磁盤為中心到以內(nèi)存為中心,是三個(gè)非常顯著的技術(shù)變遷。
第三點(diǎn),系統(tǒng)跟算法的結(jié)合越來越緊密,系統(tǒng)跟算法一起形成一家公司的技術(shù)的基石,系統(tǒng)相當(dāng)于是骨架,而算法給骨架注入了靈魂。
?
舉兩個(gè)簡(jiǎn)單的例子。第一個(gè),很多大規(guī)模的分布式系統(tǒng)需要自動(dòng)化的運(yùn)維。在打造自動(dòng)化運(yùn)維的過程中,時(shí)間序列的分析與預(yù)測(cè),根因分析等等發(fā)揮了重要的作用,這里面需要算法的力量。第二點(diǎn),對(duì)于大規(guī)模的數(shù)據(jù)中心里面整體的資源調(diào)度,這需要非常強(qiáng)的調(diào)度的算法,以及預(yù)測(cè)算法去改進(jìn)容器在整個(gè)數(shù)據(jù)中心的分配策略,調(diào)度算法的改進(jìn)所帶來的成本收益都是非常顯著的。所以說,近年來,在架構(gòu)領(lǐng)域,大規(guī)模分布式系統(tǒng)和一些實(shí)用算法工程,兩者結(jié)合非常緊密。
架構(gòu)的未來
最近這兩年,劉海鋒也經(jīng)常思考架構(gòu)的未來。軟件架構(gòu),唯一不變的就是變化,但變化又分成了波動(dòng)與趨勢(shì),所以對(duì)趨勢(shì)的把握顯得尤為重要,所謂架構(gòu),不僅要解決現(xiàn)在的問題,更加需要對(duì)未來趨勢(shì)有深刻的理解與把握。
在這方面,劉海鋒給我們分享了兩點(diǎn),第一個(gè)是架構(gòu)智能化(Architecture with Intelligence & Architecture for Intelligence)。他認(rèn)為在接下來幾年,架構(gòu)的智能化會(huì)成為現(xiàn)實(shí)。一方面,算法或 AI 技術(shù)跟大規(guī)模系統(tǒng)架構(gòu)的結(jié)合會(huì)更加緊密,甚至?xí)呋芏喾植际较到y(tǒng)的一些變革,機(jī)器學(xué)習(xí)算法的應(yīng)用也會(huì)讓很多大系統(tǒng)的運(yùn)維和應(yīng)用更加的簡(jiǎn)單。另一方面,AI 的工業(yè)級(jí)應(yīng)用也需要有力的底層架構(gòu)支撐,比如高性能的機(jī)器學(xué)習(xí)框架,大規(guī)模特征向量的檢索匹配系統(tǒng),等等。
第二點(diǎn)是混合多云,或者說,從更大的層面,讓應(yīng)用開發(fā)者忘記數(shù)據(jù)中心,忘記基礎(chǔ)設(shè)施建設(shè)將成為現(xiàn)實(shí)。從這個(gè)角度來說,甚至可以叫 Datacenter-less。接下來 5 到 10 年,很多大中型企業(yè),他們重要的業(yè)務(wù)一定會(huì)橫跨自己的數(shù)據(jù)中心和不同云服務(wù)商的數(shù)據(jù)中心。一定會(huì)有框架出現(xiàn)來屏蔽底層的這些差異與復(fù)雜性,讓大家像編排機(jī)器編排數(shù)據(jù)中心那樣編排多個(gè)云。回顧整個(gè)行業(yè),我們可以看到,Google 等公司已經(jīng)著力開始開展這方面的工作與業(yè)務(wù)。
具體到一些實(shí)際的一些技術(shù)框架方面,劉海鋒會(huì)持續(xù)關(guān)注和研究目前的一些熱門前沿技術(shù),比如說 serveless、Service Mesh,各種新型的數(shù)據(jù)庫軟件等等。總之,未來架構(gòu)將使得應(yīng)用的開發(fā)更加簡(jiǎn)單,也更加人性化。
總結(jié)
以上是生活随笔為你收集整理的京东刘海锋:过去十年架构领域最重要的三个变化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 源代码遭泄露,大疆员工被罚20万,判刑半
- 下一篇: CIO:2019年 IT 创造业务价值的