0
作者 | 楊麗
受訪人 | 張鑫
雷鋒網(wǎng)按:企業(yè)對技術(shù)路徑的選擇從來不存在唯一性。當(dāng)下數(shù)字化勢頭強勁的浪潮下,云原生成為技術(shù)的流行方向,虛擬化、容器、微服務(wù)組合在一起,面向企業(yè)業(yè)務(wù)提供足夠靈活的云服務(wù),會成為下一個普世化的技術(shù)棧道。
由嘗試容器部署開始,字節(jié)跳動的云原生實踐在近些年走得越來越快。
2016年6月,字節(jié)跳動啟用Kubernetes技術(shù)棧,開始對業(yè)務(wù)進行大規(guī)模容器化改造,2017、2018年進入階段性上量階段,到2018年這一年部署的容器單集群已經(jīng)達到了上萬個節(jié)點。
如今,字節(jié)跳動已經(jīng)有超過95%的應(yīng)用實現(xiàn)了云原生化,從最開始的面向容器部署,過渡到面向服務(wù)的階段,不僅用上了容器編排工具,更是在這之上建立了比較完善的微服務(wù)治理體系。2020年,火山引擎作為字節(jié)跳動旗下的企業(yè)級技術(shù)服務(wù)平臺,正式將云原生的能力開放了出來。
除了沒有太多的歷史包袱,讓這家年輕的企業(yè)可以輕裝上陣,無需關(guān)注替換帶來的成本外,更多地還有對技術(shù)趨勢的判斷力和投入,很早就擁抱了云的方式。因而,字節(jié)跳動的很多業(yè)務(wù)一開始就根深蒂固長在了云上,在接下來設(shè)計新的業(yè)務(wù)系統(tǒng)時,也會充分考慮利用云的彈性能力。生于云、長于云,這成為企業(yè)可以借鑒的最直白、卻又最具有普世化特征的云原生實踐路子。
在與雷鋒網(wǎng)的訪談中,火山引擎副總經(jīng)理張鑫闡釋了他對云原生容器技術(shù)的趨勢判斷、引入這項技術(shù)的面臨的難點與挑戰(zhàn),以及字節(jié)跳動自身過去五年的云原生實踐路徑。
“從技術(shù)曲線上講,虛擬化差不多經(jīng)歷了十年的發(fā)展歷程,如今到了商業(yè)化的穩(wěn)定期。同樣,容器+K8s從2014年谷歌開源出來到如今,預(yù)計未來三年也會達到一個巔峰期?!?/p>
但當(dāng)前Kubernetes因其涉及的維度廣泛,包括微服務(wù)架構(gòu)理念、網(wǎng)絡(luò)、存儲等各個層級,導(dǎo)致無論是產(chǎn)品服務(wù)商還是企業(yè)實踐者,都在這個過程中存在不小的技術(shù)挑戰(zhàn)。
張鑫作為火山引擎云原生應(yīng)用服務(wù)的負責(zé)人,也是國內(nèi)容器產(chǎn)業(yè)的早期研究和實踐者。以下將呈現(xiàn)這次訪談的完整總結(jié)。
初識云原生的四個方向
盡管在技術(shù)戰(zhàn)略層面,云原生被各大互聯(lián)網(wǎng)企業(yè)列為主要發(fā)展方向,但云原生和容器是兩個相關(guān),卻不能劃等號的概念。
一開始,外界可能會比較具象、容易理解的是容器本身,是對資源、應(yīng)用的一種標準化封裝。但擁有容器化部署,可能只意味著企業(yè)有了云原生的基礎(chǔ)設(shè)施,并不意味著實現(xiàn)了云原生應(yīng)用。從容器到云原生的進化,還是會有比較大的差異。
從云原生核心技術(shù)角度判斷,云原生進入成熟期應(yīng)存在東南西北四個方向上的演化:
先看南向,面向新一代的云原生基礎(chǔ)架構(gòu)?;A(chǔ)設(shè)施即代碼(IaC)作為最近一段時間的流行技術(shù)趨勢,目的是為了讓IT基礎(chǔ)設(shè)施變得更加高效、敏捷,通過可配置的方式,將基礎(chǔ)設(shè)施更快地進行部署,進一步提升整體架構(gòu)的性能、敏捷性。國內(nèi)云廠商也推出了很多類似的產(chǎn)品或技術(shù)方案。
再看東西向。有兩個趨勢:一是更多的應(yīng)用、中間件,包括大數(shù)據(jù)平臺、數(shù)據(jù)庫、數(shù)倉、AI平臺等新興業(yè)務(wù)負載都可以實現(xiàn)云原生化,甚至是Serverless化;二是能夠通過云原生更好地實現(xiàn)企業(yè)內(nèi)數(shù)據(jù)孤島的打通、系統(tǒng)的連接,包括API服務(wù)、API治理、API網(wǎng)關(guān)。
然后是北向。這個方向上涌現(xiàn)了一批面向敏捷開發(fā)的新興產(chǎn)品,如低代碼、無代碼工具,還有面向開發(fā)測試場景,面向工業(yè)互聯(lián)網(wǎng)等行業(yè)場景,以及面向業(yè)務(wù)場景的BPM等,能夠基于云原生微服務(wù)技術(shù),構(gòu)建面向應(yīng)用開發(fā)的aPaaS。
從技術(shù)曲線上講,虛擬化差不多經(jīng)歷了十年的發(fā)展歷程,如今到了商業(yè)化的穩(wěn)定期。同樣,容器(2013年Docker公司公布技術(shù)標準)+Kubernetes(2014年谷歌開源項目)到如今,預(yù)計未來三年也會達到一個巔峰期。從產(chǎn)業(yè)數(shù)字化發(fā)展的現(xiàn)狀來看,現(xiàn)在各行各業(yè)都在如火如荼地進行建設(shè),行業(yè)數(shù)字化在加速,理論上是一個非常好的窗口期。
中國信通院的一份云原生用戶調(diào)查報告顯示,容器化改造依舊是主流趨勢,將容器技術(shù)投入核心業(yè)務(wù)生產(chǎn)的受訪用戶同比增長2.48%。調(diào)研機構(gòu)Gartner公布的數(shù)據(jù)顯示,到2022年,75%的全球企業(yè)將在生產(chǎn)中使用云原生的容器化應(yīng)用。
但這中間同樣存在巨大的鴻溝,也就是上述東西南北向的技術(shù)產(chǎn)品,如何能跟前端業(yè)務(wù)需求密切連接起來。這是需要包括供應(yīng)商在內(nèi)的企業(yè),在未來三年快速去落地的事情。
最優(yōu)先級任務(wù)
那么,火山引擎首先會在這四個層面落地哪些事情?
“我們更多在做的是南北向的事情。即向下修煉內(nèi)功,向上為開發(fā)者提供服務(wù)。南向是我們認為最關(guān)鍵的內(nèi)功,任何一個云上應(yīng)用、系統(tǒng),最終還是要回歸到穩(wěn)定性、可靠性等問題,這是我們一定要做且目前也做得非常好的事情。”張鑫指出。
首先,字節(jié)跳動業(yè)務(wù)自身就面臨著如何在大規(guī)模數(shù)據(jù)量和業(yè)務(wù)量的情況下,仍然保持足夠良好的性能的問題。字節(jié)跳動構(gòu)建有一個非常龐大的數(shù)據(jù)中心,容納了近百萬臺服務(wù)器。在云原生基礎(chǔ)設(shè)施層面,包括將計算、網(wǎng)絡(luò)、存儲上如何更好地與容器技術(shù)結(jié)合上,團隊已經(jīng)做了很多技術(shù)創(chuàng)新。
其次,云原生應(yīng)用最終還是要提供給開發(fā)者使用,如何讓開發(fā)更快、更簡單,這是團隊追求的一個重要優(yōu)先級。
但當(dāng)前企業(yè)對容器的實踐也可以具體拆分為三個階段:
第一階段,面向容器編排管理,用戶直接跟容器Kubernetes打交道;
第二階段,開始進一步提升,用戶從面向容器變成了面向一個個服務(wù),于是就有了各類微服務(wù)框架的治理,這時用戶就不需要關(guān)注容器配置、管理等問題,而是要考慮整個業(yè)務(wù)架構(gòu)如何拆分,應(yīng)該有哪些微服務(wù)組件,不同組件之間如何互聯(lián)互通等問題;
第三階段,即Serverless階段,這時用戶無需關(guān)心整體業(yè)務(wù)架構(gòu)如何設(shè)計,只需要關(guān)注最前端的業(yè)務(wù)邏輯如何能夠快速表達,這也就要求廠商需要將業(yè)務(wù)背后的中臺和后臺相關(guān)組件進行提前預(yù)置。
值得一提的是,字節(jié)跳動本身存在一個中臺的組織形態(tài),它對內(nèi)會支持很多的業(yè)務(wù)線進行構(gòu)建,可以看到很多的應(yīng)用或功能,其實是基于Serverless的方式進行構(gòu)建的。
目前來看,多數(shù)企業(yè)仍處于面向容器、面向服務(wù)的第一二階段,而在產(chǎn)品層面,字節(jié)跳動已經(jīng)開始著力于向第三階段發(fā)力。
一股新興勢力
站在客戶層面,不同類型的客戶對引入云原生容器服務(wù)是會比較明顯的差異的。
其中,互聯(lián)網(wǎng)行業(yè)成為云原生采用率占比最高的行業(yè)。首先,互聯(lián)網(wǎng)企業(yè)對云原生的應(yīng)用深度和廣度都非常大,也愿意為高ROI技術(shù)買單。
尤其是頭部的互聯(lián)網(wǎng)企業(yè),其資源能力極強,且業(yè)務(wù)形態(tài)非常復(fù)雜,往往會選擇開源深度定制+自研的方式進行技術(shù)實踐,原因在于其業(yè)務(wù)體量足夠大,能夠通過哪怕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è)務(wù)驅(qū)動影響,使得他們對新技術(shù)的擁抱越來越高。
如金融、零售電商、工業(yè)互聯(lián)網(wǎng)、生信醫(yī)療、智慧政府等行業(yè),因其數(shù)字業(yè)務(wù)創(chuàng)新的驅(qū)動,有了越來越多互聯(lián)網(wǎng)相關(guān)業(yè)務(wù)。從團隊最近一段時間的服務(wù)觀察,這些行業(yè)對新技術(shù)的擁抱也越來越高。
舉個例子,在生信醫(yī)療領(lǐng)域,隨著蛋白質(zhì)測序、基因分析等業(yè)務(wù)持續(xù)涌現(xiàn),以及醫(yī)療基礎(chǔ)數(shù)字化建設(shè)的推進,企業(yè)需要越來越多的算力,構(gòu)建更加敏捷的應(yīng)用系統(tǒng)。此外,生信醫(yī)療行業(yè)本身也在著力打造一個基礎(chǔ)科研平臺,以打通醫(yī)院、高校在科研方面存在重復(fù)造輪子的數(shù)據(jù)孤島問題。
企業(yè)需要追求新技術(shù)嗎?
外界有言,谷歌早在2003年就已經(jīng)對自身實現(xiàn)了容器化應(yīng)用,而其后多年一直作為秘密武器秘而不宣。依靠這項技術(shù),僅在運維成本方面每年就能節(jié)約一半的費用,這無疑大大提升了企業(yè)自身的競爭優(yōu)勢。
曾就職于這家企業(yè)的張鑫,目睹過谷歌每天20億個容器計算集群在跑。
在他看來,對于企業(yè)而言,不會單純將追求嘗試新技術(shù)為目的,嘗試新技術(shù),仍然需要業(yè)務(wù)驅(qū)動。因此從業(yè)務(wù)角度進行劃分的話,首先就要看企業(yè)是不是有足夠多的敏態(tài)業(yè)務(wù),然后基于此進一步衡量使用新技術(shù)進行改造的ROI。
容器技術(shù)在更多有狀態(tài)應(yīng)用場景中的延伸,導(dǎo)致IT基礎(chǔ)層架構(gòu)相應(yīng)地也在持續(xù)優(yōu)化,比如對存儲、數(shù)據(jù)庫的能力要求,對開發(fā)運維環(huán)境帶來的復(fù)雜度問題,以及對大規(guī)模計算存在的短板。
從應(yīng)用角度來看,無狀態(tài)應(yīng)用、有狀態(tài)應(yīng)用、穩(wěn)態(tài)應(yīng)用等等,不同應(yīng)用進行云原生化的ROI、難易程度是有差異的。
首先,無狀態(tài)的應(yīng)用,最適合進行第一批云原生化的改造。
其次,有狀態(tài)應(yīng)用往往可能是集群化的應(yīng)用,包括中間件、數(shù)據(jù)庫、Elasticsearch等業(yè)務(wù)場景。想要解決這部分場景問題需要一定的技術(shù)壁壘,但一旦將有狀態(tài)應(yīng)用實現(xiàn)云原生化之后,其實會有比較好的回報。
容器環(huán)境下,有狀態(tài)應(yīng)用經(jīng)常會遇到的一個問題是,如何做數(shù)據(jù)的持久化,這對企業(yè)存儲的要求發(fā)生了改變,如選擇何種存儲系統(tǒng),是否可以滿足分布式存儲性能?數(shù)據(jù)能否跟上層的應(yīng)用編排結(jié)合起來?業(yè)務(wù)調(diào)度時,是否需要考慮數(shù)據(jù)的親和性?
再往后,分布式存儲本身還依賴于強大的網(wǎng)絡(luò)體系,這就要求容器本身需要自帶有相應(yīng)的解決方案。如何基于RDMA做高性能傳輸,是否能直接在硬件層面,如基于智能網(wǎng)卡做硬件卸載……等等這些技術(shù)難點。
但換個角度看,這些問題也為很多云原生容器廠商提供了很大的空間。因為這些能力并不是在開源的技術(shù)體系內(nèi)就能夠解決,這也是火山引擎希望發(fā)力的領(lǐng)域。
第三類就是傳統(tǒng)應(yīng)用或穩(wěn)態(tài)應(yīng)用。
對于這類應(yīng)用而言,首先遷移就會有一定的難度,它們可能是一些商業(yè)套裝軟件,可能跑在非x86架構(gòu)上;其次,如果將這類應(yīng)用構(gòu)建完后,未必會產(chǎn)生很多的回報,可能不需要解決高彈性等性能問題,也不需要敏捷迭代,甚至都不建議花很多的精力和風(fēng)險來換取回報。
云原生時代的新機遇
云原生,還將影響各家云廠商對于標準的理解和共識。
一是要形成標準。否則不同廠商之間都有一套封閉系統(tǒng),彼此間將很難進行兼容,且廠商自身也很難做大,企業(yè)自身也會面臨越來越多的技術(shù)孤島。
其二,云原生會推動標準的形成。此前容器Docker之所以流行,是因為它定義了一套從應(yīng)用打包、封裝、運行的一套管理標準,Kubernetes也是建立了一套對容器如何進行編排的一套標準。雖然未來還會有越來越多的技術(shù)如Serverless、aPaaS、低代碼等,但容器+Kubernetes其實已經(jīng)解決了很多這些根本性的標準化問題。
“這個狀態(tài)是比較樂觀的?!睆場巫詈笾赋觥?/p>
據(jù)雷鋒網(wǎng)觀察,對開放理解的差異,因不同標準組織涉及的商業(yè)利益的平衡策略而不同。當(dāng)下這個市場,競爭局面依然掌握在國際化云廠商的規(guī)模經(jīng)濟效益中,如何在技術(shù)層面有所突破?在贏家通吃的市場中,一起做開放標準,一起開發(fā)開源軟件,以抵消市場領(lǐng)導(dǎo)者的優(yōu)勢地位或許才有出路。
(雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。