高月紅 張吉 嚴(yán)靖煒 劉奕彤 鄭青碧
(1.北京郵電大學(xué)信息與通信工程學(xué)院,北京 100876;2.中國(guó)移動(dòng)通信有限公司研究院未來(lái)研究院,北京 100053)
傳統(tǒng)無(wú)線網(wǎng)絡(luò)的仿真往往采用基于時(shí)間驅(qū)動(dòng)的仿真方法,根據(jù)一種特定的應(yīng)用場(chǎng)景進(jìn)行建模,有針對(duì)性地設(shè)置仿真參數(shù)和結(jié)構(gòu)[1],然后依據(jù)時(shí)間軸推動(dòng)仿真進(jìn)程。因此,仿真平臺(tái)的專用性強(qiáng),難以擴(kuò)展應(yīng)用到其他場(chǎng)景。此外,在時(shí)間驅(qū)動(dòng)方法中,一輪仿真通常使用串行計(jì)算方法,導(dǎo)致平臺(tái)的執(zhí)行效率較低。
隨著網(wǎng)絡(luò)容量的大規(guī)模增長(zhǎng)及網(wǎng)絡(luò)結(jié)構(gòu)的不斷復(fù)雜化,用戶對(duì)無(wú)線網(wǎng)絡(luò)各項(xiàng)指標(biāo)的要求也日益提升。開發(fā)和設(shè)計(jì)能夠高度復(fù)現(xiàn)真實(shí)物理網(wǎng)絡(luò)的數(shù)字孿生仿真平臺(tái)成為一項(xiàng)至關(guān)重要的研究?jī)?nèi)容。2002年,Michael Grieves[2]提出數(shù)字孿生概念,并在世界范圍內(nèi)被廣泛應(yīng)用,例如醫(yī)療、交通運(yùn)輸、能源行業(yè)、智慧城市和智能制造等領(lǐng)域[3-7]。
對(duì)于無(wú)線網(wǎng)絡(luò)的仿真,數(shù)字孿生仿真平臺(tái)能夠適配多種網(wǎng)絡(luò)配置,并能模擬用戶行為邏輯以及網(wǎng)絡(luò)決策對(duì)系統(tǒng)性能的影響。此外,數(shù)字孿生仿真平臺(tái)常常引入基于人工智能(Artificial Intelligence,AI)算法的智能體模塊實(shí)現(xiàn)網(wǎng)絡(luò)的自優(yōu)化功能[8],這也就意味著傳統(tǒng)仿真與AI計(jì)算的高度融合,同時(shí)也會(huì)導(dǎo)致平臺(tái)計(jì)算量增加、結(jié)構(gòu)更加復(fù)雜、串行運(yùn)算效率較低等情況。值得注意的是,若數(shù)字孿生仿真平臺(tái)仍使用傳統(tǒng)的單體架構(gòu),在面向平臺(tái)未來(lái)升級(jí)改造或業(yè)務(wù)擴(kuò)展時(shí),往往會(huì)遇到架構(gòu)層面帶來(lái)的種種弊端,例如開發(fā)過(guò)程復(fù)雜且緩慢、部署不靈活、擴(kuò)展性欠佳等[9]。此外,在面向計(jì)算量較大的情況時(shí),運(yùn)算效率低的問(wèn)題也會(huì)更加凸顯。
因此,在數(shù)字孿生仿真平臺(tái)架構(gòu)設(shè)計(jì)中引入可以提升仿真效率、改善擴(kuò)展性的方法顯得尤為重要?;谖⒎?wù)的架構(gòu)升級(jí)是改善上述問(wèn)題的一種方式。微服務(wù)由Martin Fowler與James Lewis[10]于2014年共同提出。近年來(lái),微服務(wù)架構(gòu)已經(jīng)在互聯(lián)網(wǎng)等多個(gè)領(lǐng)域有了廣泛應(yīng)用[11-14],許多成熟的網(wǎng)絡(luò)系統(tǒng)已升級(jí)為微服務(wù)架構(gòu),并凸顯出便于開發(fā)、運(yùn)維效率高、容錯(cuò)性高、擴(kuò)展性強(qiáng)、功能獨(dú)立且靈活等優(yōu)勢(shì)。但微服務(wù)技術(shù)尚未在基于數(shù)字孿生的無(wú)線通信系統(tǒng)仿真平臺(tái)中得以廣泛應(yīng)用。
考慮到微服務(wù)架構(gòu)的優(yōu)勢(shì),本文通過(guò)引入該架構(gòu)來(lái)提升數(shù)字孿生仿真平臺(tái)的靈活性、松耦合性、可用性和可擴(kuò)展性[15];并基于微服務(wù)架構(gòu)的形式實(shí)現(xiàn)多服務(wù)的并行計(jì)算,進(jìn)而提升平臺(tái)的運(yùn)行效率,縮短仿真時(shí)間。
圖1 數(shù)字孿生網(wǎng)絡(luò)架構(gòu)圖
根據(jù)數(shù)字孿生網(wǎng)絡(luò)架構(gòu)[16],數(shù)字孿生網(wǎng)絡(luò)的核心組件與結(jié)構(gòu)如圖1所示,其中包含物理網(wǎng)絡(luò)及其數(shù)字孿生仿真平臺(tái)兩大部分。數(shù)字孿生仿真平臺(tái)通常需要從真實(shí)的物理網(wǎng)絡(luò)中獲取網(wǎng)絡(luò)節(jié)點(diǎn)和用戶數(shù)據(jù),按照各功能模塊實(shí)現(xiàn)真實(shí)物理網(wǎng)絡(luò)的數(shù)字化建模,對(duì)各系統(tǒng)參數(shù)進(jìn)行配置并運(yùn)行平臺(tái)獲得仿真結(jié)果。之后,依托仿真結(jié)果進(jìn)行網(wǎng)絡(luò)性能的分析與優(yōu)化,此時(shí)可以利用專家經(jīng)驗(yàn),也可以使用AI算法來(lái)生成優(yōu)化決策,并基于決策結(jié)果進(jìn)行下一步的仿真。經(jīng)過(guò)多次反復(fù)迭代后得到最佳方案,并最終應(yīng)用到真實(shí)物理網(wǎng)絡(luò)中。
從圖1可以看出,數(shù)字孿生網(wǎng)絡(luò)中的數(shù)字孿生仿真平臺(tái)部分可以進(jìn)一步劃分為孿生體和智能體兩部分。其中,孿生體通過(guò)數(shù)字孿生技術(shù)實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)在數(shù)字域的復(fù)制,能夠?qū)Ω鞣N節(jié)點(diǎn)參數(shù)(如節(jié)點(diǎn)位置坐標(biāo)、覆蓋范圍、載波頻段、負(fù)載功率、天線參數(shù)等)、用戶位置信息和業(yè)務(wù)分布狀態(tài)等進(jìn)行模型化處理,并且可以根據(jù)運(yùn)行的效果進(jìn)行調(diào)整;智能體則根據(jù)業(yè)務(wù)需求和需要分析的參數(shù),通過(guò)AI算法制定優(yōu)化策略并生成執(zhí)行決策,使網(wǎng)絡(luò)達(dá)到預(yù)期的最佳狀態(tài)。
在每一輪仿真中,孿生體根據(jù)模擬的場(chǎng)景進(jìn)行參數(shù)配置,運(yùn)行獲得每個(gè)節(jié)點(diǎn)和用戶的數(shù)據(jù),并將這些數(shù)據(jù)作為智能體的輸入;智能體處理孿生體送入的仿真結(jié)果,綜合用戶行為、業(yè)務(wù)需求、網(wǎng)絡(luò)性能及其他場(chǎng)景中生成的針對(duì)孿生體的優(yōu)化策略,在下一輪仿真中應(yīng)用新的參數(shù)配置,以此形成圖1中的內(nèi)環(huán),經(jīng)反復(fù)迭代后生成動(dòng)態(tài)場(chǎng)景下最優(yōu)的系統(tǒng)配置[17]。
數(shù)字孿生平臺(tái)被視為物理世界的數(shù)字化復(fù)制。本文以基于多維度資源精準(zhǔn)調(diào)配的網(wǎng)絡(luò)節(jié)能優(yōu)化場(chǎng)景為例,給出了該場(chǎng)景的拓?fù)鋱D(見圖2)。其中,宏基站和微基站通過(guò)異構(gòu)組網(wǎng)為用戶提供無(wú)線數(shù)據(jù)通信能力以及完成用戶提出的算力資源需求[18]。
圖2 基于多維度資源精準(zhǔn)調(diào)配的網(wǎng)絡(luò)節(jié)能優(yōu)化場(chǎng)景拓?fù)鋱D
假設(shè)系統(tǒng)中部署了Km個(gè)宏基站、Kp個(gè)微基站以及M個(gè)用戶,用戶在該系統(tǒng)中進(jìn)行移動(dòng),每次更新位置后,選取當(dāng)前位置信號(hào)質(zhì)量最好的基站作為服務(wù)基站,并向其提出通信需求和算力請(qǐng)求。在傳統(tǒng)方案中,所有宏基站和微基站始終處于開啟狀態(tài),但是考慮到真實(shí)網(wǎng)絡(luò)中用戶位置分布以及業(yè)務(wù)需求通常存在時(shí)間、空間不均衡的現(xiàn)象,因此若能結(jié)合用戶的時(shí)空分布,動(dòng)態(tài)調(diào)整基站的開啟與關(guān)閉,則可以降低網(wǎng)絡(luò)的總體能耗,實(shí)現(xiàn)節(jié)能的目標(biāo)。
在本文中,假設(shè)Kp個(gè)宏基站始終處于開啟狀態(tài),目的是保證網(wǎng)絡(luò)的基本覆蓋能力。但是云端服務(wù)器可以依據(jù)所采集到的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)、用戶位置變化、用戶服務(wù)質(zhì)量需求、網(wǎng)絡(luò)節(jié)能目標(biāo)等,制定Kp個(gè)微基站的開關(guān)決策。系統(tǒng)運(yùn)行流程總結(jié)如下。
(1)孿生體初始化:在孿生體中確定宏基站的位置、微基站的位置以及用戶的初始位置,此時(shí)默認(rèn)所有宏基站和微基站均處于開啟狀態(tài)。
(2)用戶接入:用戶選取信號(hào)最強(qiáng)的基站作為服務(wù)基站,并開始通信傳輸和算力計(jì)算。
(3)用戶位置移動(dòng):用戶移動(dòng)到新的位置并重新進(jìn)行基站接入。
(4)智能體制定開關(guān)策略:云服務(wù)器根據(jù)收到的用戶的位置信息、宏/微基站的狀態(tài)信息,對(duì)下一時(shí)刻用戶位置進(jìn)行預(yù)測(cè),并依據(jù)位置預(yù)測(cè)結(jié)果和孿生體反饋的用戶傳輸速率、算力資源等信息,基于強(qiáng)化學(xué)習(xí)算法,制定下一時(shí)刻Kp個(gè)微基站的開啟和關(guān)閉策略,并告知孿生體。
(5)孿生體狀態(tài)更新:孿生體執(zhí)行智能體做出的基站開關(guān)決策,關(guān)閉部分微基站,用戶重新接入,計(jì)算其能夠獲得的通信速率和算力資源,計(jì)算網(wǎng)絡(luò)能耗等參數(shù),并將相關(guān)結(jié)果反饋給智能體的云服務(wù)器。
(6)重復(fù)(3)~(5),直至循環(huán)結(jié)束,完成結(jié)果輸出后,整個(gè)仿真結(jié)束。
針對(duì)上述場(chǎng)景的數(shù)字孿生仿真平臺(tái)需具備較好的架構(gòu)設(shè)計(jì),以便支撐平臺(tái)內(nèi)部各功能模塊的交互與聯(lián)動(dòng)、支持不同參數(shù)配置下的仿真、滿足未來(lái)場(chǎng)景升級(jí)改造的需要。此外,該場(chǎng)景也面臨著計(jì)算量大的挑戰(zhàn),例如,每個(gè)時(shí)刻微基站開關(guān)狀態(tài)變化后,需重新計(jì)算用戶可獲得的傳輸速率和算力資源;在智能體模塊中,需要在每個(gè)時(shí)刻重新進(jìn)行運(yùn)算獲取新的開關(guān)決策。因此,在進(jìn)行平臺(tái)設(shè)計(jì)時(shí),計(jì)算效率是必須考慮的重要因素。
數(shù)字孿生仿真平臺(tái)是解決網(wǎng)絡(luò)優(yōu)化問(wèn)題的一把利劍,但是其設(shè)計(jì)與開發(fā)過(guò)程面臨著重重挑戰(zhàn)。傳統(tǒng)實(shí)現(xiàn)方法基于單體結(jié)構(gòu),也就是說(shuō)平臺(tái)所有功能模塊的仿真、計(jì)算、數(shù)據(jù)統(tǒng)計(jì)、訓(xùn)練、尋優(yōu)等流程都在一個(gè)軟件平臺(tái)中完成。圖3給出了基于傳統(tǒng)單體結(jié)構(gòu)設(shè)計(jì)的仿真流程圖,其中各個(gè)模塊按照系統(tǒng)工作流程運(yùn)行,即各模塊工作于串行模式。這種模式?jīng)Q定了需要將軟件平臺(tái)部署在一臺(tái)硬件設(shè)備中,該設(shè)備將承擔(dān)全部計(jì)算任務(wù),往往會(huì)成為限制運(yùn)算效率的瓶頸所在。此外,單體結(jié)構(gòu)及串行模型很難適應(yīng)高動(dòng)態(tài)、高維度的復(fù)雜網(wǎng)絡(luò),在未來(lái)場(chǎng)景升級(jí)改造時(shí),往往面臨較高的平臺(tái)升級(jí)難度。
圖3 數(shù)字孿生仿真平臺(tái)的傳統(tǒng)單體結(jié)構(gòu)
從仿真時(shí)間的角度看,將平臺(tái)從“開始”到“結(jié)束”的運(yùn)行時(shí)間定義為仿真時(shí)間,其中陰影部分的計(jì)算在一次仿真中會(huì)多次循環(huán)。其中,傳統(tǒng)單體架構(gòu)下的仿真時(shí)間Ts(M,N)可以表示為:
Ts(M,N) =t0+N(Mt1(M)+t2(M))
(1)
其中,M表示系統(tǒng)中的用戶數(shù),t1(M)表示針對(duì)一個(gè)用戶完成“調(diào)整小區(qū)基站狀態(tài)”和“計(jì)算用戶性能和系統(tǒng)參數(shù)”所需要的時(shí)間,t2(M)表示智能體運(yùn)行的時(shí)間,N表示循環(huán)的次數(shù),t0表示除循環(huán)部分以外其他模塊的運(yùn)行時(shí)間。
為適應(yīng)多樣性與復(fù)雜性不斷增加的無(wú)線網(wǎng)絡(luò)仿真需要,有必要探索新型仿真架構(gòu),進(jìn)一步優(yōu)化系統(tǒng)仿真流程。
業(yè)界為實(shí)現(xiàn)微服務(wù)架構(gòu)提供了多種技術(shù)框架,包括阿里巴巴集團(tuán)的Dubbo和基于Spring Boot框架的Spring Cloud,以及谷歌開源的基于容器技術(shù)的Kubernetes(簡(jiǎn)稱“K8s”)平臺(tái)[19]。
雖然上述三種框架均可以作為實(shí)現(xiàn)微服務(wù)架構(gòu)的方法,但其技術(shù)實(shí)現(xiàn)方式及適用機(jī)制并不完全相同。Dubbo主要實(shí)現(xiàn)服務(wù)治理功能,Spring Cloud對(duì)面向Java的平臺(tái)更有利,而K8s采用一種將微服務(wù)進(jìn)行容器化管理的實(shí)現(xiàn)方式,是語(yǔ)言通用的。結(jié)合圖2給出的場(chǎng)景特點(diǎn),本文選擇采用基于容器技術(shù)的K8s平臺(tái)實(shí)現(xiàn)微服務(wù)的搭建。
首先,基于微服務(wù)的平臺(tái)設(shè)計(jì)思路為拆分?jǐn)?shù)字孿生仿真平臺(tái)中松耦合的仿真單元,明確其流程的邏輯順序,并設(shè)置通信接口[20];然后,將拆分的仿真組件以容器的形式封裝成微服務(wù);最后,在K8s平臺(tái)中完成部署,實(shí)現(xiàn)容器的管理以及對(duì)微服務(wù)的發(fā)現(xiàn)、注冊(cè)、部署、運(yùn)行、維護(hù)等相關(guān)操作[21]。
圖4 數(shù)字孿生仿真平臺(tái)的微服務(wù)架構(gòu)
基于微服務(wù)的數(shù)字孿生仿真平臺(tái)的架構(gòu)如圖4所示。其中,傳統(tǒng)仿真平臺(tái)被拆分為5個(gè)模塊,各模塊功能如下。
參數(shù)配置模塊:此模塊實(shí)現(xiàn)用戶與仿真平臺(tái)的交互界面,用于完成每次仿真所需的參數(shù)配置。
Master主控模塊:此模塊是整個(gè)平臺(tái)運(yùn)行流程的大腦,完成對(duì)通信過(guò)程的控制,負(fù)責(zé)信息的接收與傳遞。
無(wú)線通信模塊:此模塊負(fù)責(zé)構(gòu)建無(wú)線網(wǎng)絡(luò)的數(shù)字化孿生體,完成網(wǎng)絡(luò)中各節(jié)點(diǎn)及其運(yùn)行參數(shù)的計(jì)算;此模塊主要分為兩部分,一部分負(fù)責(zé)環(huán)境初始化及業(yè)務(wù)數(shù)據(jù)生成,另一部分負(fù)責(zé)基站調(diào)整及用戶性能參數(shù)計(jì)算??紤]到該模塊通常為整個(gè)仿真平臺(tái)中運(yùn)算量占比最大的部分,因此可通過(guò)部署拆解用戶數(shù)目的多服務(wù)實(shí)現(xiàn)并行計(jì)算,提升平臺(tái)計(jì)算效率。
智能體模塊:此模塊負(fù)責(zé)制定優(yōu)化策略和生成執(zhí)行決策。
仿真結(jié)果處理模塊:此模塊完成對(duì)平臺(tái)仿真結(jié)果的處理與輸出。
此外,為了實(shí)現(xiàn)各個(gè)模塊之間的數(shù)據(jù)存儲(chǔ)與共享,并簡(jiǎn)化模塊之間的數(shù)據(jù)傳遞,可以引入網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)共享數(shù)據(jù)庫(kù)。NFS是基于K8s的一種實(shí)現(xiàn)持久化存儲(chǔ)的功能模塊,可在其中放置一些必須的共享信息(如IP通信地址)及模塊計(jì)算結(jié)果等。
在圖4中,各個(gè)模塊之間的連線以及編號(hào)指示了微服務(wù)平臺(tái)的仿真運(yùn)作流程。在仿真初始,由Master主控模塊向參數(shù)配置模塊讀取輸入?yún)?shù),對(duì)應(yīng)第1步和第2步;之后,由Master主控模塊對(duì)無(wú)線通信模塊和智能體模塊完成初始化,對(duì)應(yīng)第3步~第5步;然后,智能體模塊與無(wú)線通信模塊執(zhí)行循環(huán)訓(xùn)練,對(duì)應(yīng)第6步和第7步;當(dāng)所有的循環(huán)次數(shù)執(zhí)行完畢之后,由結(jié)果處理模塊對(duì)仿真結(jié)果進(jìn)行統(tǒng)計(jì)、處理與輸出。
此處值得說(shuō)明的是,當(dāng)不引入NFS共享數(shù)據(jù)庫(kù)模塊時(shí),第3步~第7步中需要直接進(jìn)行數(shù)據(jù)傳遞;而當(dāng)引入NFS共享數(shù)據(jù)庫(kù)模塊時(shí),數(shù)據(jù)可通過(guò)該模塊實(shí)現(xiàn)共享,第3步~第7步中僅需傳遞控制指令,進(jìn)而節(jié)省通信過(guò)程引入的附加時(shí)延。
基于微服務(wù)架構(gòu)搭建的仿真平臺(tái),可以有效克服傳統(tǒng)單體結(jié)構(gòu)的弊端,同時(shí)也可以為平臺(tái)帶來(lái)如下架構(gòu)層面的優(yōu)勢(shì)。
功能解耦、獨(dú)立部署:微服務(wù)架構(gòu)所依賴的容器技術(shù),可以實(shí)現(xiàn)各個(gè)仿真單元環(huán)境的隔離部署,確保各個(gè)模塊進(jìn)程之間不會(huì)相互影響;同時(shí),Docker內(nèi)生的鏡像技術(shù)允許將仿真組件與其依賴項(xiàng)封裝打包,無(wú)需重復(fù)完成復(fù)雜的環(huán)境配置工作,實(shí)現(xiàn)仿真平臺(tái)的高可移植性。
便于開發(fā)、快速交付:由于功能模塊的解耦,開發(fā)人員只需負(fù)責(zé)其對(duì)應(yīng)的微服務(wù)模塊,無(wú)需考慮對(duì)其他模塊的影響,同時(shí)避免了模塊間在開發(fā)和交付過(guò)程中相互等待的過(guò)程,提升開發(fā)效率。
健壯性更強(qiáng):在平臺(tái)的升級(jí)迭代過(guò)程中,難免會(huì)遇到流程中某一個(gè)模塊服務(wù)故障的情況。原單體架構(gòu)的平臺(tái)需停掉整個(gè)項(xiàng)目來(lái)完成故障維護(hù),而在微服務(wù)架構(gòu)下則可以只維護(hù)故障模塊,與之不相關(guān)的其余模塊均可繼續(xù)提供服務(wù)?;贙8s實(shí)現(xiàn)微服務(wù)的多副本部署可有效避免單點(diǎn)故障,同時(shí)提供負(fù)載均衡實(shí)現(xiàn)仿真平臺(tái)的高可用性。
高可擴(kuò)展性:當(dāng)平臺(tái)面向未來(lái)進(jìn)行功能擴(kuò)展時(shí),無(wú)需在原仿真平臺(tái)完整的復(fù)雜程序項(xiàng)目中修改代碼,只需部署一個(gè)新的微服務(wù)并設(shè)置相關(guān)服務(wù)的通信接口即可,實(shí)現(xiàn)仿真平臺(tái)的高可擴(kuò)展性。
版本控制、升級(jí)回滾:結(jié)合鏡像技術(shù)及K8s內(nèi)生的升級(jí)回滾功能可以更方便地實(shí)現(xiàn)平臺(tái)模塊的版本控制。更重要的是版本更新的過(guò)程是零停機(jī)的,在新版本完全替代舊版本后,舊版本才會(huì)自動(dòng)銷毀,停止服務(wù)。同時(shí),如遇到新版本程序錯(cuò)誤,還可實(shí)現(xiàn)一鍵版本回滾的操作。
基于微服務(wù)架構(gòu)實(shí)現(xiàn)平臺(tái)的架構(gòu)升級(jí),帶來(lái)了架構(gòu)層面的諸多優(yōu)勢(shì),提升了數(shù)字孿生仿真平臺(tái)的部署效率,實(shí)現(xiàn)了平臺(tái)的靈活性、松耦合性、高可用性、可擴(kuò)展性等特點(diǎn)。但由于在其仿真流程中,存在模塊與模塊間的信息傳遞,因此微服務(wù)架構(gòu)會(huì)引入一定的通信時(shí)延。為了減少通信時(shí)延的影響,同時(shí)凸顯微服務(wù)架構(gòu)靈活部署的特點(diǎn),可對(duì)用戶循環(huán)進(jìn)行拆分,以微服務(wù)容器的形式實(shí)現(xiàn)并行計(jì)算的效果來(lái)彌補(bǔ)通信時(shí)延的弊端。微服務(wù)架構(gòu)下的平臺(tái)運(yùn)行時(shí)間Tm(M,N,K)可表示為:
(2)
其中,M表示系統(tǒng)中的用戶數(shù),N表示循環(huán)的次數(shù),K表示將所有用戶拆分后的分組數(shù),則每個(gè)分組中的用戶數(shù)為M/K,t1(M/K)表示單個(gè)用戶在無(wú)線通信模塊中下半部分的運(yùn)行時(shí)間,t2(M/K)表示智能體的運(yùn)行時(shí)間,t0表示初始化、參數(shù)配置、結(jié)果處理等與循環(huán)次數(shù)無(wú)關(guān)的運(yùn)行時(shí)間,td(K)表示圖4中步驟1~步驟10中引入的全部通信時(shí)間。
將公式(2)與公式(1)對(duì)比可以發(fā)現(xiàn),通過(guò)用戶拆分可以減少每次循環(huán)的運(yùn)行時(shí)間,但是微服務(wù)架構(gòu)引入的通信時(shí)間又會(huì)導(dǎo)致平臺(tái)運(yùn)行時(shí)間的增加。當(dāng)減少的循環(huán)計(jì)算時(shí)延大于微服務(wù)架構(gòu)引入的通信時(shí)延時(shí),平臺(tái)整體運(yùn)行效率才會(huì)得以提升。
依托多維度資源精準(zhǔn)調(diào)配的網(wǎng)絡(luò)節(jié)能場(chǎng)景開展仿真和測(cè)試工作,其對(duì)應(yīng)的仿真拓?fù)鋱D如圖5所示,其中模擬了1 km × 1 km的區(qū)域,部署了2 個(gè)宏基站、8 個(gè)微基站以及一定數(shù)量的用戶,用戶在該區(qū)域內(nèi)以步行速度移動(dòng)。從圖5可以看出,當(dāng)用戶分布不均勻時(shí),部分無(wú)接入用戶的微基站可以被關(guān)閉,進(jìn)而節(jié)省系統(tǒng)總能耗。
圖5 仿真拓?fù)鋱D
數(shù)字孿生仿真平臺(tái)的無(wú)線通信孿生體負(fù)責(zé)用戶接入、信號(hào)與干擾噪聲比(Signal to Interference plus Noise Ratio,SINR)計(jì)算、無(wú)線傳輸資源分配、用戶算力需求分配等網(wǎng)絡(luò)參數(shù)的計(jì)算,并將數(shù)據(jù)傳遞給智能體模塊;智能體模塊依據(jù)歷史數(shù)據(jù)及當(dāng)前數(shù)據(jù),使用強(qiáng)化學(xué)習(xí)的方法制定出微基站的開啟與關(guān)閉策略,在保證用戶基本服務(wù)質(zhì)量要求滿足的前提下,使得系統(tǒng)總體能耗最低。
本文將對(duì)比使用圖3所示的傳統(tǒng)單體架構(gòu)和圖4所示的微服務(wù)架構(gòu)兩種方法開發(fā)的數(shù)字孿生仿真平臺(tái)的測(cè)試結(jié)果。
圖6 無(wú)線通信模塊單次運(yùn)行時(shí)間隨用戶數(shù)的變化
考慮到硬件成本方面的限制,測(cè)試采用單物理機(jī)多虛擬機(jī)部署的形式。物理機(jī)由一臺(tái)物理內(nèi)存為16 GB、裝載了Win10操作系統(tǒng)的電腦承擔(dān)。在虛擬機(jī)配置方面,使用Ubuntu 16.04系統(tǒng)。當(dāng)運(yùn)行單體架構(gòu)仿真平臺(tái)時(shí),使用配置了9.0 GB運(yùn)行內(nèi)存的單虛擬機(jī)。當(dāng)運(yùn)行微服務(wù)架構(gòu)仿真平臺(tái)時(shí),使用分別配置了3.0 GB運(yùn)行內(nèi)存的3個(gè)虛擬機(jī),用于模擬K8s服務(wù)器集群。其中,1個(gè)虛擬機(jī)部署為K8s Master節(jié)點(diǎn),另外2個(gè)虛擬機(jī)均部署為K8s Node節(jié)點(diǎn)?;贙8s平臺(tái)工作理念及運(yùn)算負(fù)載均衡的考慮,將圖4中的Master主控模塊、參數(shù)配置模塊、結(jié)果處理模塊部署于一個(gè)K8s Node節(jié)點(diǎn)中,將智能體模塊部署于另一個(gè)K8s Node節(jié)點(diǎn),而無(wú)線通信模塊可根據(jù)其服務(wù)的部署數(shù)量,平均分布在兩個(gè)Node節(jié)點(diǎn)中。
圖7 微服務(wù)架構(gòu)與傳統(tǒng)架構(gòu)運(yùn)算時(shí)間對(duì)比
如前文所述,無(wú)線通信模塊為整個(gè)仿真平臺(tái)中運(yùn)算量最大的模塊。因此,首先針對(duì)單體架構(gòu)中該模塊的運(yùn)行時(shí)間進(jìn)行測(cè)試,此處僅記錄仿真過(guò)程中無(wú)線通信模塊完成單次所有用戶數(shù)據(jù)計(jì)算的時(shí)間,經(jīng)統(tǒng)計(jì)平均后的測(cè)試結(jié)果如圖6所示。其中,橫坐標(biāo)為單次計(jì)算所包含的用戶數(shù),縱坐標(biāo)為單次計(jì)算的運(yùn)行時(shí)間。
從圖6可以看出,隨著用戶數(shù)的增加,單次運(yùn)行時(shí)間近似呈線性增長(zhǎng)。因此,在微服務(wù)架構(gòu)下,考慮通過(guò)部署拆解用戶數(shù)目的多服務(wù)實(shí)現(xiàn)并行計(jì)算,來(lái)提升該模塊的計(jì)算效率。
在微服務(wù)架構(gòu)中,考慮了如下子場(chǎng)景:不使用NFS共享數(shù)據(jù)庫(kù),但將無(wú)線通信模塊基于用戶拆分為雙服務(wù)部署,即用戶分組數(shù)K取值為2;使用NFS共享數(shù)據(jù)庫(kù),并將無(wú)線通信模塊基于用戶拆分為雙服務(wù)部署,即用戶分組數(shù)K取值為2;使用NFS共享數(shù)據(jù)庫(kù),但將無(wú)線通信模塊基于用戶拆分為四服務(wù)部署,即用戶分組數(shù)K取值為4。
當(dāng)引入NFS共享數(shù)據(jù)庫(kù)之后,微服務(wù)平臺(tái)的運(yùn)算時(shí)間將大大縮小。當(dāng)用戶數(shù)較少時(shí),微服務(wù)平臺(tái)的運(yùn)算時(shí)間仍然大于傳統(tǒng)平臺(tái),這同樣是由微服務(wù)平臺(tái)各模塊之間的通信時(shí)間導(dǎo)致的。但是,當(dāng)用戶數(shù)增加以后,通過(guò)雙服務(wù)或者四服務(wù)部署帶來(lái)的運(yùn)算時(shí)間的減少,已經(jīng)可以彌補(bǔ)模塊間的通信時(shí)間,縮短總運(yùn)算時(shí)間,提升平臺(tái)的運(yùn)行效率。
圖8 微服務(wù)架構(gòu)與傳統(tǒng)架構(gòu)的運(yùn)算時(shí)間差
圖8繪制了微服務(wù)架構(gòu)與傳統(tǒng)架構(gòu)相比的運(yùn)算時(shí)間差,時(shí)間差表示為不同微服務(wù)配置下仿真時(shí)間Tm減去傳統(tǒng)架構(gòu)仿真時(shí)間Ts。時(shí)間差大于0代表運(yùn)算時(shí)間增加,效率降低;小于0代表運(yùn)算時(shí)間減少,效率提高。從圖8中可以看出,當(dāng)不引入NFS共享數(shù)據(jù)庫(kù)時(shí),200 個(gè)用戶以內(nèi)的場(chǎng)景下時(shí)間差均大于0,但隨著用戶的增加,差值逐漸減小。對(duì)于引入NFS共享數(shù)據(jù)庫(kù),雙服務(wù)部署下,用戶數(shù)大于70 個(gè)時(shí),時(shí)間差小于0,運(yùn)算效率提升;四服務(wù)部署下,用戶數(shù)大于100 個(gè)時(shí),時(shí)間差小于0,運(yùn)算效率提升。因此,可知微服務(wù)架構(gòu)下用戶數(shù)量的門限值為70(雙服務(wù)部署)和100(四服務(wù)部署)。此外,從圖8中還可以看出,對(duì)于更大用戶數(shù)量的場(chǎng)景,四服務(wù)部署要比雙服務(wù)部署的效率提升效果更好。
為了進(jìn)一步討論運(yùn)行時(shí)間的構(gòu)成,將仿真時(shí)間拆分為計(jì)算時(shí)間和通信時(shí)間,并分別記錄。此處,以K=2、N=150 次,用戶數(shù)M=40 個(gè)和M=200個(gè)時(shí)的結(jié)果為例進(jìn)行對(duì)比討論,測(cè)量結(jié)果總結(jié)參見表1。從表1可以看出,當(dāng)用戶數(shù)較少時(shí),微服務(wù)架構(gòu)中的通信時(shí)間會(huì)抵消雙服務(wù)部署帶來(lái)的計(jì)算時(shí)間的降低,最終導(dǎo)致總仿真時(shí)間的延長(zhǎng)。當(dāng)用戶數(shù)增加至200 個(gè)時(shí),單體架構(gòu)的仿真時(shí)間顯著延長(zhǎng),而微服務(wù)架構(gòu)的計(jì)算時(shí)間和通信時(shí)間增加幅度沒有單體架構(gòu)下顯著,此時(shí)微服務(wù)架構(gòu)的仿真時(shí)間更短。在用戶數(shù)較大的情況下,通過(guò)引入多服務(wù)部署實(shí)現(xiàn)并行計(jì)算縮短的運(yùn)行時(shí)間足以彌補(bǔ)微服務(wù)架構(gòu)下的通信時(shí)間。從圖7和圖8可以看出,用戶數(shù)越大,微服務(wù)架構(gòu)的運(yùn)行效率提升效果越顯著。
表1 N=150 次時(shí)的運(yùn)行時(shí)間結(jié)果對(duì)比
上述結(jié)果中循環(huán)次數(shù)N設(shè)定為150 次。對(duì)于一次完整的仿真過(guò)程,循環(huán)次數(shù)N通常較大以便使得仿真平臺(tái)進(jìn)入穩(wěn)定狀態(tài)或模型收斂。表2給出了循環(huán)次數(shù)為75 000 次和120 000 次時(shí)的仿真時(shí)間對(duì)比,從中可以看出,基于微服務(wù)架構(gòu)的仿真平臺(tái)的仿真時(shí)間得以顯著縮短,仿真效率得到極大提升。
表2 不同循環(huán)次數(shù)下運(yùn)行時(shí)間結(jié)果對(duì)比
本文在研究數(shù)字孿生網(wǎng)絡(luò)架構(gòu)、功能以及技術(shù)需求的基礎(chǔ)上,以基于多維度資源精準(zhǔn)調(diào)配的網(wǎng)絡(luò)節(jié)能優(yōu)化場(chǎng)景為例,給出了使用傳統(tǒng)單體架構(gòu)實(shí)現(xiàn)數(shù)字孿生仿真平臺(tái)的設(shè)計(jì)方法。重點(diǎn)研究了微服務(wù)架構(gòu)的設(shè)計(jì)思想,并結(jié)合網(wǎng)絡(luò)節(jié)能優(yōu)化場(chǎng)景,完成了基于微服務(wù)的仿真平臺(tái)設(shè)計(jì),包括功能模塊拆分、模塊間數(shù)據(jù)傳遞、整體運(yùn)行流程等關(guān)鍵內(nèi)容,通過(guò)對(duì)平臺(tái)進(jìn)行的架構(gòu)升級(jí),有助于充分發(fā)揮微服務(wù)的各種架構(gòu)優(yōu)勢(shì)。同時(shí),依托計(jì)算機(jī)硬件,對(duì)基于微服務(wù)架構(gòu)的仿真平臺(tái)的部署方式及其運(yùn)算時(shí)間進(jìn)行了討論。試驗(yàn)表明,微服務(wù)架構(gòu)引入的通信過(guò)程往往是不可避免的,因此對(duì)通信時(shí)延的優(yōu)化尤為重要。此外,測(cè)試結(jié)果表明,當(dāng)用戶數(shù)較大時(shí),通過(guò)在微服務(wù)架構(gòu)中實(shí)現(xiàn)多服務(wù)部署達(dá)到并行計(jì)算的效果,可以顯著縮短運(yùn)算時(shí)間,提升運(yùn)算效率。