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