張 巖 何 濤 易昕昕 曹 暢 康 凱
1 中國(guó)聯(lián)通研究院 北京 100048
2 中國(guó)聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司 北京 100033
我國(guó)數(shù)字經(jīng)濟(jì)蓬勃發(fā)展,對(duì)構(gòu)建現(xiàn)代化經(jīng)濟(jì)體系、實(shí)現(xiàn)高質(zhì)量發(fā)展的支撐作用不斷凸顯。隨著各行業(yè)數(shù)字化轉(zhuǎn)型升級(jí)進(jìn)度加快,特別是5G、人工智能、物聯(lián)網(wǎng)等新技術(shù)的快速普及應(yīng)用,全社會(huì)數(shù)據(jù)總量爆發(fā)式增長(zhǎng),數(shù)據(jù)存儲(chǔ)、計(jì)算、傳輸和應(yīng)用的需求大幅提升,在這個(gè)過(guò)程中,云和網(wǎng)共同組成了新型數(shù)字基礎(chǔ)設(shè)施。算力網(wǎng)絡(luò)[1]作為算網(wǎng)融合的關(guān)鍵技術(shù),近年來(lái)發(fā)展迅速,算力網(wǎng)絡(luò)以數(shù)據(jù)網(wǎng)絡(luò)為基礎(chǔ),結(jié)合云計(jì)算等技術(shù)推動(dòng)了云網(wǎng)融合的演進(jìn)和發(fā)展。對(duì)于運(yùn)營(yíng)商而言,算力網(wǎng)絡(luò)可以幫助其轉(zhuǎn)變服務(wù)模式,從帶寬、網(wǎng)絡(luò)的提供者轉(zhuǎn)變?yōu)榫W(wǎng)絡(luò)計(jì)算能力的提供者,通過(guò)精細(xì)化運(yùn)營(yíng)網(wǎng)絡(luò)中各業(yè)務(wù)的情況尋求發(fā)展新方向[2]。通過(guò)算力網(wǎng)絡(luò)的構(gòu)建,可以將服務(wù)模式從單一的資源提供轉(zhuǎn)變?yōu)榉?wù)提供,通過(guò)算網(wǎng)資源的整合和全局調(diào)度,為用戶提供成本最優(yōu)的一體化算網(wǎng)服務(wù),提升算網(wǎng)資源整體利用率。
服務(wù)化的算力網(wǎng)絡(luò)以提供具體計(jì)算服務(wù)的方式向用戶開(kāi)放,可以根據(jù)用戶的差異化需求提供不同的服務(wù)模式,包括面向用戶直接提供應(yīng)用API接口,用戶應(yīng)用時(shí)可直接調(diào)用,無(wú)須關(guān)注算力資源分布;由用戶或第三方提供功能函數(shù)代碼包,由平臺(tái)完成函數(shù)打包、分發(fā)部署、動(dòng)態(tài)調(diào)度,面向用戶提供計(jì)算服務(wù)能力。算力網(wǎng)絡(luò)目的是將算力服務(wù)和網(wǎng)絡(luò)有機(jī)結(jié)合,實(shí)現(xiàn)基礎(chǔ)算力以及算力服務(wù)的輕量化部署,完成面向服務(wù)能力的交付,使得使用者不再需要關(guān)注底層計(jì)算資源的使用情況,而更加關(guān)注服務(wù)能力以及其之上業(yè)務(wù)場(chǎng)景和需求的開(kāi)發(fā)[3],傳統(tǒng)虛擬化服務(wù)模式不能很好匹配這個(gè)目的,而無(wú)服務(wù)器計(jì)算(Serverless)模式正是滿足了這種發(fā)展的需求[4]。本文基于云原生中輕量化的無(wú)服務(wù)器計(jì)算模式,以功能函數(shù)為算力服務(wù)能力,提出了面向無(wú)服務(wù)器計(jì)算的算力網(wǎng)絡(luò)服務(wù)體系,闡述了功能需求、整體架構(gòu)、部署方案等相關(guān)內(nèi)容,并完成了算力網(wǎng)絡(luò)服務(wù)平臺(tái)原型研發(fā)部署和業(yè)務(wù)驗(yàn)證。
無(wú)服務(wù)器計(jì)算(Serverless Computing)是隨著當(dāng)前云計(jì)算的進(jìn)步而發(fā)展起來(lái)的一種前沿服務(wù)模式[5]。云功能允許自定義代碼在響應(yīng)事件時(shí)被執(zhí)行。在大多數(shù)情況下,開(kāi)發(fā)者只需要擔(dān)心他們的實(shí)際代碼,因?yàn)槭录?duì)列、底層基礎(chǔ)設(shè)施、動(dòng)態(tài)擴(kuò)展和調(diào)度都是由云供應(yīng)商處理的[6-7]。據(jù)云原生計(jì)算基金會(huì)(Cloud Native Computing Foundation,CNCF)定義,無(wú)服務(wù)器計(jì)算是指在構(gòu)造和運(yùn)行應(yīng)用程序時(shí)無(wú)需管理服務(wù)器的一種計(jì)算范式[8]。它描述了細(xì)粒度部署模型,由一個(gè)或多個(gè)函數(shù)組成的應(yīng)用可上傳到平臺(tái)執(zhí)行,并基于實(shí)際運(yùn)行時(shí)的資源擴(kuò)縮容消耗進(jìn)行計(jì)費(fèi)[9]。
無(wú)服務(wù)器計(jì)算提供一個(gè)微型的架構(gòu),終端客戶不需要部署、配置或管理服務(wù)器服務(wù),代碼運(yùn)行所需要的服務(wù)器服務(wù)皆由云端平臺(tái)來(lái)提供。Serverless稱為無(wú)服務(wù)器計(jì)算,但不代表它真的不需要服務(wù)器,而是說(shuō)開(kāi)發(fā)者再也不用過(guò)多考慮服務(wù)器的問(wèn)題,計(jì)算資源作為服務(wù)而不是服務(wù)器的概念出現(xiàn)。Serverless是一種構(gòu)建和管理基于微服務(wù)架構(gòu)的技術(shù),允許開(kāi)發(fā)者在服務(wù)部署級(jí)別而不是服務(wù)器部署級(jí)別來(lái)管理應(yīng)用部署,甚至可以管理某個(gè)具體功能或端口的部署,以便讓開(kāi)發(fā)者快速迭代,更快速地開(kāi)發(fā)軟件。
Serverless處于起步階段,代表的是一種服務(wù)理念或模式。這種服務(wù)理念希望用戶無(wú)需關(guān)注除了業(yè)務(wù)邏輯本身之外的主機(jī)管理、服務(wù)運(yùn)維、配置等事務(wù),不需要關(guān)注運(yùn)營(yíng)維護(hù)問(wèn)題。也就是說(shuō),只要有了Serverless,幾乎可以不需要再考慮Devops工作流。Serverless是一種軟件系統(tǒng)架構(gòu),并不代表某種技術(shù),通常被稱為是一種云服務(wù)產(chǎn)品形態(tài),比如各大廠商推出的各種Serverless 服務(wù)或能力、封裝的 API 網(wǎng)關(guān)等產(chǎn)品。當(dāng)前業(yè)界最常見(jiàn)的 Serverless 實(shí)現(xiàn)方案為 FaaS(函數(shù)即服務(wù))+ BaaS(后端即服務(wù))[10]。
1.2.1 與微服務(wù)架構(gòu)對(duì)比
無(wú)服務(wù)器架構(gòu)和微服務(wù)架構(gòu)有許多相似之處,比如業(yè)務(wù)拆分、強(qiáng)調(diào)無(wú)狀態(tài)、具有敏捷特性等[11]。無(wú)服務(wù)器架構(gòu)與微服務(wù)架構(gòu)相比,具有粒度更細(xì)、要求更嚴(yán)格的特征,比如微服務(wù)以服務(wù)為邊界拆分業(yè)務(wù),無(wú)服務(wù)器架構(gòu)以函數(shù)為邊界拆分業(yè)務(wù)。微服務(wù)可以跨調(diào)用的內(nèi)存狀態(tài)共享,無(wú)服務(wù)器架構(gòu)要求調(diào)用徹底無(wú)狀態(tài)。此外,無(wú)服務(wù)器架構(gòu)依賴BaaS提供第三方依賴,而微服務(wù)可以自由選擇第三方依賴來(lái)源。
微服務(wù)的思想就是將復(fù)雜單體式應(yīng)用程序解耦成多個(gè)各個(gè)獨(dú)立的服務(wù),微服務(wù)設(shè)計(jì)目的就是用微服務(wù)的方式來(lái)簡(jiǎn)化構(gòu)建復(fù)雜應(yīng)用的過(guò)程。但是微服務(wù)和無(wú)服務(wù)器架構(gòu)是契合的,都強(qiáng)調(diào)系統(tǒng)的解耦。從某種角度而言,無(wú)服務(wù)器架構(gòu)和微服務(wù)是不同層面但又互相促進(jìn)的:微服務(wù)架構(gòu)是開(kāi)發(fā)模式,無(wú)服務(wù)器架構(gòu)是計(jì)算平臺(tái)。
1.2.2 與容器對(duì)比
無(wú)服務(wù)器架構(gòu)是一種理想的、可預(yù)測(cè)的、具有小型資源需求和短期事務(wù)的工作負(fù)載。而容器對(duì)于長(zhǎng)時(shí)運(yùn)行的流程和可預(yù)測(cè)的工作負(fù)載具有優(yōu)勢(shì)。容器在應(yīng)用程序設(shè)計(jì)方面也提供了更多的靈活性,但需要對(duì)底層基礎(chǔ)架構(gòu)進(jìn)行更多的管理。無(wú)服務(wù)器架構(gòu)和容器不在一個(gè)平面上。無(wú)服務(wù)器架構(gòu)是一種軟件設(shè)計(jì)架構(gòu),容器是軟件架構(gòu)的承載者。從應(yīng)用程序角度來(lái)說(shuō),無(wú)服務(wù)器架構(gòu)更適用于網(wǎng)絡(luò)新應(yīng)用程序,很難將現(xiàn)有的應(yīng)用程序重構(gòu)或重寫(xiě)為無(wú)服務(wù)器架構(gòu)形式,而容器可以將現(xiàn)有應(yīng)用程序遷移。無(wú)服務(wù)器架構(gòu)與容器的關(guān)系是互相補(bǔ)充而非重疊。
綜上,Serverless理念符合算力網(wǎng)絡(luò)中以輕量化的算力服務(wù)部署對(duì)外提供服務(wù)的目的,實(shí)現(xiàn)算力服務(wù)的輕量化封裝,可以部署在資源不足的計(jì)算節(jié)點(diǎn)、資源受限的邊緣節(jié)點(diǎn)、端節(jié)點(diǎn)內(nèi)部來(lái)實(shí)現(xiàn)算力的快速響應(yīng)與資源的高效利用。
在算力網(wǎng)絡(luò)服務(wù)體系中,Serverless實(shí)現(xiàn)了細(xì)粒度的計(jì)算資源分配,不需要預(yù)分配資源。具備真正意義上的高度擴(kuò)容和彈性,按需使用,當(dāng)執(zhí)行完畢后立即釋放資源,按需計(jì)費(fèi),適合構(gòu)建無(wú)狀態(tài)的應(yīng)用,比如處理一張圖片,對(duì)一段音頻/視頻進(jìn)行編碼或解碼,對(duì)請(qǐng)求返回一小段計(jì)算結(jié)果數(shù)據(jù)等。算力網(wǎng)絡(luò)服務(wù)體系架構(gòu)需要滿足以上需求,在Serverless架構(gòu)下實(shí)現(xiàn)以下功能。
1)基于Serverless的服務(wù)管理功能:基于服務(wù)的維度,統(tǒng)一納管服務(wù)部署、服務(wù)發(fā)現(xiàn)、服務(wù)調(diào)度、服務(wù)協(xié)同,故障監(jiān)控等。
2)邊緣網(wǎng)絡(luò)控制功能:基于網(wǎng)絡(luò)的維度,利用網(wǎng)絡(luò)控制器,實(shí)現(xiàn)網(wǎng)絡(luò)感知、智能路由轉(zhuǎn)發(fā)、時(shí)延確定性管理、路徑確定性管理,保障服務(wù)任務(wù)的高效分發(fā)傳輸。
3)邊緣算力資源功能:基于資源的維度,統(tǒng)一協(xié)同管理分布式的邊緣計(jì)算節(jié)點(diǎn)資源,實(shí)現(xiàn)算力資源的感知、分配、彈性橫向擴(kuò)展。
4)邊緣網(wǎng)絡(luò)協(xié)同功能,包括相鄰節(jié)點(diǎn)的界定與協(xié)同啟動(dòng)指標(biāo)判斷,相鄰節(jié)點(diǎn)信息維護(hù)機(jī)制,目標(biāo)協(xié)同節(jié)點(diǎn)選擇機(jī)制與邊邊協(xié)同執(zhí)行機(jī)制等。
邊緣計(jì)算節(jié)點(diǎn)隨著用戶不斷接入,會(huì)持續(xù)消耗計(jì)算資源,因此,服務(wù)管理體系需要保證計(jì)算資源的可擴(kuò)充性,即伸縮性。低時(shí)延是對(duì)邊緣側(cè)用戶的一大保證,計(jì)算平臺(tái)系統(tǒng)需要保證盡可能減少不必要的時(shí)延。計(jì)算資源受限是邊緣計(jì)算的主要制約因素,計(jì)算平臺(tái)應(yīng)在保證基本功能的條件下,盡量減少計(jì)算資源的浪費(fèi)。
無(wú)服務(wù)器邊緣算力網(wǎng)絡(luò)服務(wù)體系參考架構(gòu)主要四個(gè)部分:基礎(chǔ)設(shè)施層、算網(wǎng)控制層、基于Serverless的服務(wù)編排層以及面向用戶的業(yè)務(wù)應(yīng)用層。如圖1所示,無(wú)服務(wù)器邊緣計(jì)算網(wǎng)絡(luò)的參考架構(gòu)包括的基礎(chǔ)功能如下。
1)業(yè)務(wù)應(yīng)用層:該部分主要是部署在無(wú)服務(wù)器邊緣算力網(wǎng)絡(luò)中的新型業(yè)務(wù)與應(yīng)用,這些業(yè)務(wù)與應(yīng)用可以通過(guò)相應(yīng)的函數(shù)API接入并調(diào)用平臺(tái)提供的函數(shù)服務(wù);同時(shí),可根據(jù)應(yīng)用自身的情況,對(duì)服務(wù)編排層提出需求,通過(guò)服務(wù)編排層控制底層網(wǎng)絡(luò)和資源編排,具備分布式彈性可擴(kuò)展的能力。
2)基于Serverless的服務(wù)編排層:實(shí)現(xiàn)了對(duì)Serverless服務(wù)的管控,并向上支撐服務(wù)調(diào)用,向下連通算力和網(wǎng)絡(luò)管控?;赟erverless的服務(wù)管理子系統(tǒng),具備Serverless任務(wù)分解、Serverless服務(wù)部署、Serverless服務(wù)發(fā)現(xiàn)、Serverless服務(wù)調(diào)度(負(fù)載均衡)等能力。
3)算網(wǎng)管控層:包括兩部分,算力管控(云平臺(tái))和網(wǎng)絡(luò)管控(SDN控制器),網(wǎng)絡(luò)管控負(fù)責(zé)連接各個(gè)邊緣計(jì)算節(jié)點(diǎn),實(shí)現(xiàn)對(duì)邊緣算力資源和網(wǎng)絡(luò)集中統(tǒng)一的管理和控制,并保證時(shí)延確定性和路徑最優(yōu)化,構(gòu)建敏捷、高效、可定制的邊緣網(wǎng)絡(luò)及協(xié)同機(jī)制。算力管控主要對(duì)分布式的計(jì)算和存儲(chǔ)進(jìn)行集中統(tǒng)一的管理,包括對(duì)資源負(fù)載狀況實(shí)時(shí)監(jiān)控為函數(shù)的計(jì)算處理提供彈性資源,具備靈活擴(kuò)縮能力;對(duì)接異構(gòu)基礎(chǔ)設(shè)施資源,屏蔽異構(gòu)對(duì)應(yīng)用部署的影響實(shí)現(xiàn)多級(jí)泛在算力的抽象和管理;同時(shí)對(duì)接分布式基礎(chǔ)設(shè)施資源,實(shí)現(xiàn)層級(jí)管控。
4)基礎(chǔ)設(shè)施層:分布式基礎(chǔ)設(shè)施資源主要由邊緣計(jì)算節(jié)點(diǎn)和網(wǎng)絡(luò)設(shè)備組成,通過(guò)北向接口受算網(wǎng)控制層控制,為無(wú)服務(wù)器邊緣計(jì)算網(wǎng)絡(luò)參考架構(gòu)提供計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)設(shè)施資源。
基于前述邊緣算力網(wǎng)絡(luò)服務(wù)體系,本文設(shè)計(jì)并研發(fā)了算力網(wǎng)絡(luò)服務(wù)平臺(tái)原型系統(tǒng),以補(bǔ)充當(dāng)前算力網(wǎng)絡(luò)服務(wù)體系中未實(shí)現(xiàn)的服務(wù)編排、服務(wù)調(diào)用、算力管控、網(wǎng)絡(luò)協(xié)同等功能,算力網(wǎng)絡(luò)服務(wù)體系中網(wǎng)絡(luò)控制由第三方SDN控制器實(shí)現(xiàn),基礎(chǔ)設(shè)施采用自有服務(wù)器搭建。算力網(wǎng)絡(luò)服務(wù)平臺(tái)原型基于模塊化、分布式的軟件架構(gòu),包括資源管理模塊、算力調(diào)度模塊、策略管理模塊等基本模塊,并且在容器平臺(tái)的基礎(chǔ)上實(shí)現(xiàn)Serverless服務(wù)能力。算力網(wǎng)絡(luò)服務(wù)平臺(tái)原型系統(tǒng)功能模塊如圖2所示。
算力網(wǎng)絡(luò)服務(wù)平臺(tái)實(shí)現(xiàn)了整個(gè)服務(wù)體系的基本功能,依靠開(kāi)源的Knative項(xiàng)目[12]實(shí)現(xiàn)了Serverless函數(shù)計(jì)算能力,Knative基于Kubernetes擴(kuò)展的形式,能夠?qū)崿F(xiàn)服務(wù)構(gòu)建和部署的自動(dòng)化、服務(wù)編排的彈性化以及事件驅(qū)動(dòng)基礎(chǔ)設(shè)施的標(biāo)準(zhǔn)化。Knative為開(kāi)發(fā)人員提供API用于部署Serverless風(fēng)格的應(yīng)用,可以通過(guò)Kubernetes的API和工具來(lái)部署和管理Knative,工作流程均基于Kubernetes完成。
算力網(wǎng)絡(luò)服務(wù)平臺(tái)北向?qū)τ脩暨M(jìn)行能力開(kāi)放,接受應(yīng)用需求,進(jìn)行應(yīng)用的創(chuàng)建、管理和編排;南向?qū)拥谌竭吘壴破脚_(tái)和網(wǎng)絡(luò)控制器,實(shí)現(xiàn)對(duì)底層資源的調(diào)用和資源的生命周期管理,平臺(tái)根據(jù)獲取的云算力資源和網(wǎng)絡(luò)資源信息進(jìn)行算網(wǎng)協(xié)編排,將編排后的策略分別下發(fā)至云平臺(tái)和網(wǎng)絡(luò)控制器,實(shí)現(xiàn)端到端的業(yè)務(wù)打通。具體的,網(wǎng)絡(luò)控制器從設(shè)備收集三層拓?fù)湫畔?,向算力網(wǎng)絡(luò)服務(wù)平臺(tái)上報(bào)網(wǎng)絡(luò)資源信息,包括節(jié)點(diǎn)、端口、三層拓?fù)涞刃畔ⅲ桓髟破脚_(tái)(包括虛擬機(jī)平臺(tái)Openstack[13]和容器平臺(tái)Kubernetes[14])向算力網(wǎng)絡(luò)服務(wù)平臺(tái)上報(bào)資源池可提供的算力資源信息和服務(wù)信息,包括云池算力資源、類型等;算力網(wǎng)絡(luò)服務(wù)平臺(tái)根據(jù)應(yīng)用需求形成算力服務(wù)方案,并通過(guò)算網(wǎng)協(xié)同編排功能形成算+網(wǎng)配置方案;算力網(wǎng)絡(luò)服務(wù)平臺(tái)調(diào)用云平臺(tái)完成所需服務(wù)在各云池的配置;算力網(wǎng)絡(luò)服務(wù)平臺(tái)根據(jù)服務(wù)所在算力云池的網(wǎng)絡(luò)側(cè)信息向網(wǎng)絡(luò)控制器下發(fā)路徑路由信息、分流策略等;當(dāng)算力服務(wù)的狀態(tài)發(fā)生變化時(shí),上報(bào)告知算網(wǎng)服務(wù)平臺(tái),由平臺(tái)給出算力調(diào)度方案,并通知網(wǎng)絡(luò)編排變更網(wǎng)絡(luò)。為了驗(yàn)證實(shí)際效果,本文于實(shí)驗(yàn)室內(nèi)搭建了完整的邊緣算力網(wǎng)絡(luò)服務(wù)體系,使用開(kāi)源的Openvino[15]視頻處理軟件,進(jìn)行了人臉識(shí)別業(yè)務(wù)的創(chuàng)建和應(yīng)用驗(yàn)證,達(dá)到了預(yù)期效果,系統(tǒng)部署如圖3所示。
本文分析了無(wú)服務(wù)器計(jì)算技術(shù)在算力網(wǎng)絡(luò)中的發(fā)展情況,針對(duì)邊緣算力網(wǎng)絡(luò)服務(wù)體系的業(yè)務(wù)特點(diǎn)和需求,基于開(kāi)源的標(biāo)準(zhǔn)化Serverless服務(wù)框架Knative研發(fā)了算力網(wǎng)絡(luò)服務(wù)平臺(tái)原型系統(tǒng),實(shí)現(xiàn)了輕量化的算力部署和服務(wù)提供,并且通過(guò)該平臺(tái)實(shí)現(xiàn)網(wǎng)絡(luò)控制與算力控制的協(xié)同,驗(yàn)證了算力網(wǎng)絡(luò)對(duì)于多級(jí)算力協(xié)同服務(wù)時(shí)的良好特性。該平臺(tái)目前在實(shí)驗(yàn)室進(jìn)行了多項(xiàng)技術(shù)實(shí)踐,有效支撐了算力網(wǎng)絡(luò)新技術(shù)的研究,是中國(guó)聯(lián)通在算力網(wǎng)絡(luò)創(chuàng)新體系方面的成功嘗試,后續(xù)將全力推進(jìn)相關(guān)技術(shù)不斷成熟、示范應(yīng)用落地,引領(lǐng)未來(lái)網(wǎng)絡(luò)技術(shù)演進(jìn)。