0

作者 | 楊麗
受訪人 | 張鑫
雷鋒網(wǎng)按:企業(yè)對技術路徑的選擇從來不存在唯一性。當下數(shù)字化勢頭強勁的浪潮下,云原生成為技術的流行方向,虛擬化、容器、微服務組合在一起,面向企業(yè)業(yè)務提供足夠靈活的云服務,會成為下一個普世化的技術棧道。
由嘗試容器部署開始,字節(jié)跳動的云原生實踐在近些年走得越來越快。
2016年6月,字節(jié)跳動啟用Kubernetes技術棧,開始對業(yè)務進行大規(guī)模容器化改造,2017、2018年進入階段性上量階段,到2018年這一年部署的容器單集群已經(jīng)達到了上萬個節(jié)點。
如今,字節(jié)跳動已經(jīng)有超過95%的應用實現(xiàn)了云原生化,從最開始的面向容器部署,過渡到面向服務的階段,不僅用上了容器編排工具,更是在這之上建立了比較完善的微服務治理體系。2020年,火山引擎作為字節(jié)跳動旗下的企業(yè)級技術服務平臺,正式將云原生的能力開放了出來。
除了沒有太多的歷史包袱,讓這家年輕的企業(yè)可以輕裝上陣,無需關注替換帶來的成本外,更多地還有對技術趨勢的判斷力和投入,很早就擁抱了云的方式。因而,字節(jié)跳動的很多業(yè)務一開始就根深蒂固長在了云上,在接下來設計新的業(yè)務系統(tǒng)時,也會充分考慮利用云的彈性能力。生于云、長于云,這成為企業(yè)可以借鑒的最直白、卻又最具有普世化特征的云原生實踐路子。
在與雷鋒網(wǎng)的訪談中,火山引擎副總經(jīng)理張鑫闡釋了他對云原生容器技術的趨勢判斷、引入這項技術的面臨的難點與挑戰(zhàn),以及字節(jié)跳動自身過去五年的云原生實踐路徑。
“從技術曲線上講,虛擬化差不多經(jīng)歷了十年的發(fā)展歷程,如今到了商業(yè)化的穩(wěn)定期。同樣,容器+K8s從2014年谷歌開源出來到如今,預計未來三年也會達到一個巔峰期?!?/p>
但當前Kubernetes因其涉及的維度廣泛,包括微服務架構(gòu)理念、網(wǎng)絡、存儲等各個層級,導致無論是產(chǎn)品服務商還是企業(yè)實踐者,都在這個過程中存在不小的技術挑戰(zhàn)。
張鑫作為火山引擎云原生應用服務的負責人,也是國內(nèi)容器產(chǎn)業(yè)的早期研究和實踐者。以下將呈現(xiàn)這次訪談的完整總結(jié)。
初識云原生的四個方向
盡管在技術戰(zhàn)略層面,云原生被各大互聯(lián)網(wǎng)企業(yè)列為主要發(fā)展方向,但云原生和容器是兩個相關,卻不能劃等號的概念。
一開始,外界可能會比較具象、容易理解的是容器本身,是對資源、應用的一種標準化封裝。但擁有容器化部署,可能只意味著企業(yè)有了云原生的基礎設施,并不意味著實現(xiàn)了云原生應用。從容器到云原生的進化,還是會有比較大的差異。
從云原生核心技術角度判斷,云原生進入成熟期應存在東南西北四個方向上的演化:
先看南向,面向新一代的云原生基礎架構(gòu)。基礎設施即代碼(IaC)作為最近一段時間的流行技術趨勢,目的是為了讓IT基礎設施變得更加高效、敏捷,通過可配置的方式,將基礎設施更快地進行部署,進一步提升整體架構(gòu)的性能、敏捷性。國內(nèi)云廠商也推出了很多類似的產(chǎn)品或技術方案。
再看東西向。有兩個趨勢:一是更多的應用、中間件,包括大數(shù)據(jù)平臺、數(shù)據(jù)庫、數(shù)倉、AI平臺等新興業(yè)務負載都可以實現(xiàn)云原生化,甚至是Serverless化;二是能夠通過云原生更好地實現(xiàn)企業(yè)內(nèi)數(shù)據(jù)孤島的打通、系統(tǒng)的連接,包括API服務、API治理、API網(wǎng)關。
然后是北向。這個方向上涌現(xiàn)了一批面向敏捷開發(fā)的新興產(chǎn)品,如低代碼、無代碼工具,還有面向開發(fā)測試場景,面向工業(yè)互聯(lián)網(wǎng)等行業(yè)場景,以及面向業(yè)務場景的BPM等,能夠基于云原生微服務技術,構(gòu)建面向應用開發(fā)的aPaaS。
從技術曲線上講,虛擬化差不多經(jīng)歷了十年的發(fā)展歷程,如今到了商業(yè)化的穩(wěn)定期。同樣,容器(2013年Docker公司公布技術標準)+Kubernetes(2014年谷歌開源項目)到如今,預計未來三年也會達到一個巔峰期。從產(chǎn)業(yè)數(shù)字化發(fā)展的現(xiàn)狀來看,現(xiàn)在各行各業(yè)都在如火如荼地進行建設,行業(yè)數(shù)字化在加速,理論上是一個非常好的窗口期。
中國信通院的一份云原生用戶調(diào)查報告顯示,容器化改造依舊是主流趨勢,將容器技術投入核心業(yè)務生產(chǎn)的受訪用戶同比增長2.48%。調(diào)研機構(gòu)Gartner公布的數(shù)據(jù)顯示,到2022年,75%的全球企業(yè)將在生產(chǎn)中使用云原生的容器化應用。
但這中間同樣存在巨大的鴻溝,也就是上述東西南北向的技術產(chǎn)品,如何能跟前端業(yè)務需求密切連接起來。這是需要包括供應商在內(nèi)的企業(yè),在未來三年快速去落地的事情。
最優(yōu)先級任務
那么,火山引擎首先會在這四個層面落地哪些事情?
“我們更多在做的是南北向的事情。即向下修煉內(nèi)功,向上為開發(fā)者提供服務。南向是我們認為最關鍵的內(nèi)功,任何一個云上應用、系統(tǒng),最終還是要回歸到穩(wěn)定性、可靠性等問題,這是我們一定要做且目前也做得非常好的事情?!睆場沃赋?。
首先,字節(jié)跳動業(yè)務自身就面臨著如何在大規(guī)模數(shù)據(jù)量和業(yè)務量的情況下,仍然保持足夠良好的性能的問題。字節(jié)跳動構(gòu)建有一個非常龐大的數(shù)據(jù)中心,容納了近百萬臺服務器。在云原生基礎設施層面,包括將計算、網(wǎng)絡、存儲上如何更好地與容器技術結(jié)合上,團隊已經(jīng)做了很多技術創(chuàng)新。
其次,云原生應用最終還是要提供給開發(fā)者使用,如何讓開發(fā)更快、更簡單,這是團隊追求的一個重要優(yōu)先級。
但當前企業(yè)對容器的實踐也可以具體拆分為三個階段:
第一階段,面向容器編排管理,用戶直接跟容器Kubernetes打交道;
第二階段,開始進一步提升,用戶從面向容器變成了面向一個個服務,于是就有了各類微服務框架的治理,這時用戶就不需要關注容器配置、管理等問題,而是要考慮整個業(yè)務架構(gòu)如何拆分,應該有哪些微服務組件,不同組件之間如何互聯(lián)互通等問題;
第三階段,即Serverless階段,這時用戶無需關心整體業(yè)務架構(gòu)如何設計,只需要關注最前端的業(yè)務邏輯如何能夠快速表達,這也就要求廠商需要將業(yè)務背后的中臺和后臺相關組件進行提前預置。
值得一提的是,字節(jié)跳動本身存在一個中臺的組織形態(tài),它對內(nèi)會支持很多的業(yè)務線進行構(gòu)建,可以看到很多的應用或功能,其實是基于Serverless的方式進行構(gòu)建的。
目前來看,多數(shù)企業(yè)仍處于面向容器、面向服務的第一二階段,而在產(chǎn)品層面,字節(jié)跳動已經(jīng)開始著力于向第三階段發(fā)力。

一股新興勢力
站在客戶層面,不同類型的客戶對引入云原生容器服務是會比較明顯的差異的。
其中,互聯(lián)網(wǎng)行業(yè)成為云原生采用率占比最高的行業(yè)。首先,互聯(lián)網(wǎng)企業(yè)對云原生的應用深度和廣度都非常大,也愿意為高ROI技術買單。
尤其是頭部的互聯(lián)網(wǎng)企業(yè),其資源能力極強,且業(yè)務形態(tài)非常復雜,往往會選擇開源深度定制+自研的方式進行技術實踐,原因在于其業(yè)務體量足夠大,能夠通過哪怕1%的性能提升而帶來比較高的ROI。
相比之下,很多腰部的互聯(lián)網(wǎng)企業(yè)可能很難為了提升1%的性能或成本,而投入大量的研發(fā)團隊。字節(jié)跳動最近的一項調(diào)研也發(fā)現(xiàn),將互聯(lián)網(wǎng)行業(yè)客戶群體進一步拆分,其中像在線游戲等垂直行業(yè),其云原生的采用率占比已經(jīng)超過80%。
對于傳統(tǒng)行業(yè)而言,近些年來因其數(shù)字化轉(zhuǎn)型的業(yè)務驅(qū)動影響,使得他們對新技術的擁抱越來越高。
如金融、零售電商、工業(yè)互聯(lián)網(wǎng)、生信醫(yī)療、智慧政府等行業(yè),因其數(shù)字業(yè)務創(chuàng)新的驅(qū)動,有了越來越多互聯(lián)網(wǎng)相關業(yè)務。從團隊最近一段時間的服務觀察,這些行業(yè)對新技術的擁抱也越來越高。
舉個例子,在生信醫(yī)療領域,隨著蛋白質(zhì)測序、基因分析等業(yè)務持續(xù)涌現(xiàn),以及醫(yī)療基礎數(shù)字化建設的推進,企業(yè)需要越來越多的算力,構(gòu)建更加敏捷的應用系統(tǒng)。此外,生信醫(yī)療行業(yè)本身也在著力打造一個基礎科研平臺,以打通醫(yī)院、高校在科研方面存在重復造輪子的數(shù)據(jù)孤島問題。
企業(yè)需要追求新技術嗎?
外界有言,谷歌早在2003年就已經(jīng)對自身實現(xiàn)了容器化應用,而其后多年一直作為秘密武器秘而不宣。依靠這項技術,僅在運維成本方面每年就能節(jié)約一半的費用,這無疑大大提升了企業(yè)自身的競爭優(yōu)勢。
曾就職于這家企業(yè)的張鑫,目睹過谷歌每天20億個容器計算集群在跑。
在他看來,對于企業(yè)而言,不會單純將追求嘗試新技術為目的,嘗試新技術,仍然需要業(yè)務驅(qū)動。因此從業(yè)務角度進行劃分的話,首先就要看企業(yè)是不是有足夠多的敏態(tài)業(yè)務,然后基于此進一步衡量使用新技術進行改造的ROI。
容器技術在更多有狀態(tài)應用場景中的延伸,導致IT基礎層架構(gòu)相應地也在持續(xù)優(yōu)化,比如對存儲、數(shù)據(jù)庫的能力要求,對開發(fā)運維環(huán)境帶來的復雜度問題,以及對大規(guī)模計算存在的短板。
從應用角度來看,無狀態(tài)應用、有狀態(tài)應用、穩(wěn)態(tài)應用等等,不同應用進行云原生化的ROI、難易程度是有差異的。
首先,無狀態(tài)的應用,最適合進行第一批云原生化的改造。
其次,有狀態(tài)應用往往可能是集群化的應用,包括中間件、數(shù)據(jù)庫、Elasticsearch等業(yè)務場景。想要解決這部分場景問題需要一定的技術壁壘,但一旦將有狀態(tài)應用實現(xiàn)云原生化之后,其實會有比較好的回報。
容器環(huán)境下,有狀態(tài)應用經(jīng)常會遇到的一個問題是,如何做數(shù)據(jù)的持久化,這對企業(yè)存儲的要求發(fā)生了改變,如選擇何種存儲系統(tǒng),是否可以滿足分布式存儲性能?數(shù)據(jù)能否跟上層的應用編排結(jié)合起來?業(yè)務調(diào)度時,是否需要考慮數(shù)據(jù)的親和性?
再往后,分布式存儲本身還依賴于強大的網(wǎng)絡體系,這就要求容器本身需要自帶有相應的解決方案。如何基于RDMA做高性能傳輸,是否能直接在硬件層面,如基于智能網(wǎng)卡做硬件卸載……等等這些技術難點。
但換個角度看,這些問題也為很多云原生容器廠商提供了很大的空間。因為這些能力并不是在開源的技術體系內(nèi)就能夠解決,這也是火山引擎希望發(fā)力的領域。
第三類就是傳統(tǒng)應用或穩(wěn)態(tài)應用。
對于這類應用而言,首先遷移就會有一定的難度,它們可能是一些商業(yè)套裝軟件,可能跑在非x86架構(gòu)上;其次,如果將這類應用構(gòu)建完后,未必會產(chǎn)生很多的回報,可能不需要解決高彈性等性能問題,也不需要敏捷迭代,甚至都不建議花很多的精力和風險來換取回報。
云原生時代的新機遇
云原生,還將影響各家云廠商對于標準的理解和共識。
一是要形成標準。否則不同廠商之間都有一套封閉系統(tǒng),彼此間將很難進行兼容,且廠商自身也很難做大,企業(yè)自身也會面臨越來越多的技術孤島。
其二,云原生會推動標準的形成。此前容器Docker之所以流行,是因為它定義了一套從應用打包、封裝、運行的一套管理標準,Kubernetes也是建立了一套對容器如何進行編排的一套標準。雖然未來還會有越來越多的技術如Serverless、aPaaS、低代碼等,但容器+Kubernetes其實已經(jīng)解決了很多這些根本性的標準化問題。
“這個狀態(tài)是比較樂觀的?!睆場巫詈笾赋觥?/p>
據(jù)雷鋒網(wǎng)觀察,對開放理解的差異,因不同標準組織涉及的商業(yè)利益的平衡策略而不同。當下這個市場,競爭局面依然掌握在國際化云廠商的規(guī)模經(jīng)濟效益中,如何在技術層面有所突破?在贏家通吃的市場中,一起做開放標準,一起開發(fā)開源軟件,以抵消市場領導者的優(yōu)勢地位或許才有出路。
(雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。