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