基于微服务架构的数字孪生仿真平台设计方法
2023-12-06高月红张吉严靖炜刘奕彤郑青碧
高月红 张吉 严靖炜 刘奕彤 郑青碧
(1.北京邮电大学信息与通信工程学院,北京 100876;2.中国移动通信有限公司研究院未来研究院,北京 100053)
0 引言
传统无线网络的仿真往往采用基于时间驱动的仿真方法,根据一种特定的应用场景进行建模,有针对性地设置仿真参数和结构[1],然后依据时间轴推动仿真进程。因此,仿真平台的专用性强,难以扩展应用到其他场景。此外,在时间驱动方法中,一轮仿真通常使用串行计算方法,导致平台的执行效率较低。
随着网络容量的大规模增长及网络结构的不断复杂化,用户对无线网络各项指标的要求也日益提升。开发和设计能够高度复现真实物理网络的数字孪生仿真平台成为一项至关重要的研究内容。2002年,Michael Grieves[2]提出数字孪生概念,并在世界范围内被广泛应用,例如医疗、交通运输、能源行业、智慧城市和智能制造等领域[3-7]。
对于无线网络的仿真,数字孪生仿真平台能够适配多种网络配置,并能模拟用户行为逻辑以及网络决策对系统性能的影响。此外,数字孪生仿真平台常常引入基于人工智能(Artificial Intelligence,AI)算法的智能体模块实现网络的自优化功能[8],这也就意味着传统仿真与AI计算的高度融合,同时也会导致平台计算量增加、结构更加复杂、串行运算效率较低等情况。值得注意的是,若数字孪生仿真平台仍使用传统的单体架构,在面向平台未来升级改造或业务扩展时,往往会遇到架构层面带来的种种弊端,例如开发过程复杂且缓慢、部署不灵活、扩展性欠佳等[9]。此外,在面向计算量较大的情况时,运算效率低的问题也会更加凸显。
因此,在数字孪生仿真平台架构设计中引入可以提升仿真效率、改善扩展性的方法显得尤为重要。基于微服务的架构升级是改善上述问题的一种方式。微服务由Martin Fowler与James Lewis[10]于2014年共同提出。近年来,微服务架构已经在互联网等多个领域有了广泛应用[11-14],许多成熟的网络系统已升级为微服务架构,并凸显出便于开发、运维效率高、容错性高、扩展性强、功能独立且灵活等优势。但微服务技术尚未在基于数字孪生的无线通信系统仿真平台中得以广泛应用。
考虑到微服务架构的优势,本文通过引入该架构来提升数字孪生仿真平台的灵活性、松耦合性、可用性和可扩展性[15];并基于微服务架构的形式实现多服务的并行计算,进而提升平台的运行效率,缩短仿真时间。
1 数字孪生网络的架构及实例
图1 数字孪生网络架构图
根据数字孪生网络架构[16],数字孪生网络的核心组件与结构如图1所示,其中包含物理网络及其数字孪生仿真平台两大部分。数字孪生仿真平台通常需要从真实的物理网络中获取网络节点和用户数据,按照各功能模块实现真实物理网络的数字化建模,对各系统参数进行配置并运行平台获得仿真结果。之后,依托仿真结果进行网络性能的分析与优化,此时可以利用专家经验,也可以使用AI算法来生成优化决策,并基于决策结果进行下一步的仿真。经过多次反复迭代后得到最佳方案,并最终应用到真实物理网络中。
1.1 平台架构
从图1可以看出,数字孪生网络中的数字孪生仿真平台部分可以进一步划分为孪生体和智能体两部分。其中,孪生体通过数字孪生技术实现无线网络在数字域的复制,能够对各种节点参数(如节点位置坐标、覆盖范围、载波频段、负载功率、天线参数等)、用户位置信息和业务分布状态等进行模型化处理,并且可以根据运行的效果进行调整;智能体则根据业务需求和需要分析的参数,通过AI算法制定优化策略并生成执行决策,使网络达到预期的最佳状态。
在每一轮仿真中,孪生体根据模拟的场景进行参数配置,运行获得每个节点和用户的数据,并将这些数据作为智能体的输入;智能体处理孪生体送入的仿真结果,综合用户行为、业务需求、网络性能及其他场景中生成的针对孪生体的优化策略,在下一轮仿真中应用新的参数配置,以此形成图1中的内环,经反复迭代后生成动态场景下最优的系统配置[17]。
1.2 研究实例
数字孪生平台被视为物理世界的数字化复制。本文以基于多维度资源精准调配的网络节能优化场景为例,给出了该场景的拓扑图(见图2)。其中,宏基站和微基站通过异构组网为用户提供无线数据通信能力以及完成用户提出的算力资源需求[18]。
图2 基于多维度资源精准调配的网络节能优化场景拓扑图
假设系统中部署了Km个宏基站、Kp个微基站以及M个用户,用户在该系统中进行移动,每次更新位置后,选取当前位置信号质量最好的基站作为服务基站,并向其提出通信需求和算力请求。在传统方案中,所有宏基站和微基站始终处于开启状态,但是考虑到真实网络中用户位置分布以及业务需求通常存在时间、空间不均衡的现象,因此若能结合用户的时空分布,动态调整基站的开启与关闭,则可以降低网络的总体能耗,实现节能的目标。
在本文中,假设Kp个宏基站始终处于开启状态,目的是保证网络的基本覆盖能力。但是云端服务器可以依据所采集到的网络状态数据、用户位置变化、用户服务质量需求、网络节能目标等,制定Kp个微基站的开关决策。系统运行流程总结如下。
(1)孪生体初始化:在孪生体中确定宏基站的位置、微基站的位置以及用户的初始位置,此时默认所有宏基站和微基站均处于开启状态。
(2)用户接入:用户选取信号最强的基站作为服务基站,并开始通信传输和算力计算。
(3)用户位置移动:用户移动到新的位置并重新进行基站接入。
(4)智能体制定开关策略:云服务器根据收到的用户的位置信息、宏/微基站的状态信息,对下一时刻用户位置进行预测,并依据位置预测结果和孪生体反馈的用户传输速率、算力资源等信息,基于强化学习算法,制定下一时刻Kp个微基站的开启和关闭策略,并告知孪生体。
(5)孪生体状态更新:孪生体执行智能体做出的基站开关决策,关闭部分微基站,用户重新接入,计算其能够获得的通信速率和算力资源,计算网络能耗等参数,并将相关结果反馈给智能体的云服务器。
(6)重复(3)~(5),直至循环结束,完成结果输出后,整个仿真结束。
针对上述场景的数字孪生仿真平台需具备较好的架构设计,以便支撑平台内部各功能模块的交互与联动、支持不同参数配置下的仿真、满足未来场景升级改造的需要。此外,该场景也面临着计算量大的挑战,例如,每个时刻微基站开关状态变化后,需重新计算用户可获得的传输速率和算力资源;在智能体模块中,需要在每个时刻重新进行运算获取新的开关决策。因此,在进行平台设计时,计算效率是必须考虑的重要因素。
2 传统仿真平台设计方法
数字孪生仿真平台是解决网络优化问题的一把利剑,但是其设计与开发过程面临着重重挑战。传统实现方法基于单体结构,也就是说平台所有功能模块的仿真、计算、数据统计、训练、寻优等流程都在一个软件平台中完成。图3给出了基于传统单体结构设计的仿真流程图,其中各个模块按照系统工作流程运行,即各模块工作于串行模式。这种模式决定了需要将软件平台部署在一台硬件设备中,该设备将承担全部计算任务,往往会成为限制运算效率的瓶颈所在。此外,单体结构及串行模型很难适应高动态、高维度的复杂网络,在未来场景升级改造时,往往面临较高的平台升级难度。
图3 数字孪生仿真平台的传统单体结构
从仿真时间的角度看,将平台从“开始”到“结束”的运行时间定义为仿真时间,其中阴影部分的计算在一次仿真中会多次循环。其中,传统单体架构下的仿真时间Ts(M,N)可以表示为:
Ts(M,N) =t0+N(Mt1(M)+t2(M))
(1)
其中,M表示系统中的用户数,t1(M)表示针对一个用户完成“调整小区基站状态”和“计算用户性能和系统参数”所需要的时间,t2(M)表示智能体运行的时间,N表示循环的次数,t0表示除循环部分以外其他模块的运行时间。
3 基于微服务化的仿真平台设计方法
为适应多样性与复杂性不断增加的无线网络仿真需要,有必要探索新型仿真架构,进一步优化系统仿真流程。
3.1 技术选型
业界为实现微服务架构提供了多种技术框架,包括阿里巴巴集团的Dubbo和基于Spring Boot框架的Spring Cloud,以及谷歌开源的基于容器技术的Kubernetes(简称“K8s”)平台[19]。
虽然上述三种框架均可以作为实现微服务架构的方法,但其技术实现方式及适用机制并不完全相同。Dubbo主要实现服务治理功能,Spring Cloud对面向Java的平台更有利,而K8s采用一种将微服务进行容器化管理的实现方式,是语言通用的。结合图2给出的场景特点,本文选择采用基于容器技术的K8s平台实现微服务的搭建。
3.2 架构设计
首先,基于微服务的平台设计思路为拆分数字孪生仿真平台中松耦合的仿真单元,明确其流程的逻辑顺序,并设置通信接口[20];然后,将拆分的仿真组件以容器的形式封装成微服务;最后,在K8s平台中完成部署,实现容器的管理以及对微服务的发现、注册、部署、运行、维护等相关操作[21]。
图4 数字孪生仿真平台的微服务架构
基于微服务的数字孪生仿真平台的架构如图4所示。其中,传统仿真平台被拆分为5个模块,各模块功能如下。
参数配置模块:此模块实现用户与仿真平台的交互界面,用于完成每次仿真所需的参数配置。
Master主控模块:此模块是整个平台运行流程的大脑,完成对通信过程的控制,负责信息的接收与传递。
无线通信模块:此模块负责构建无线网络的数字化孪生体,完成网络中各节点及其运行参数的计算;此模块主要分为两部分,一部分负责环境初始化及业务数据生成,另一部分负责基站调整及用户性能参数计算。考虑到该模块通常为整个仿真平台中运算量占比最大的部分,因此可通过部署拆解用户数目的多服务实现并行计算,提升平台计算效率。
智能体模块:此模块负责制定优化策略和生成执行决策。
仿真结果处理模块:此模块完成对平台仿真结果的处理与输出。
此外,为了实现各个模块之间的数据存储与共享,并简化模块之间的数据传递,可以引入网络文件系统(Network File System,NFS)共享数据库。NFS是基于K8s的一种实现持久化存储的功能模块,可在其中放置一些必须的共享信息(如IP通信地址)及模块计算结果等。
在图4中,各个模块之间的连线以及编号指示了微服务平台的仿真运作流程。在仿真初始,由Master主控模块向参数配置模块读取输入参数,对应第1步和第2步;之后,由Master主控模块对无线通信模块和智能体模块完成初始化,对应第3步~第5步;然后,智能体模块与无线通信模块执行循环训练,对应第6步和第7步;当所有的循环次数执行完毕之后,由结果处理模块对仿真结果进行统计、处理与输出。
此处值得说明的是,当不引入NFS共享数据库模块时,第3步~第7步中需要直接进行数据传递;而当引入NFS共享数据库模块时,数据可通过该模块实现共享,第3步~第7步中仅需传递控制指令,进而节省通信过程引入的附加时延。
3.3 微服务架构的优势
基于微服务架构搭建的仿真平台,可以有效克服传统单体结构的弊端,同时也可以为平台带来如下架构层面的优势。
功能解耦、独立部署:微服务架构所依赖的容器技术,可以实现各个仿真单元环境的隔离部署,确保各个模块进程之间不会相互影响;同时,Docker内生的镜像技术允许将仿真组件与其依赖项封装打包,无需重复完成复杂的环境配置工作,实现仿真平台的高可移植性。
便于开发、快速交付:由于功能模块的解耦,开发人员只需负责其对应的微服务模块,无需考虑对其他模块的影响,同时避免了模块间在开发和交付过程中相互等待的过程,提升开发效率。
健壮性更强:在平台的升级迭代过程中,难免会遇到流程中某一个模块服务故障的情况。原单体架构的平台需停掉整个项目来完成故障维护,而在微服务架构下则可以只维护故障模块,与之不相关的其余模块均可继续提供服务。基于K8s实现微服务的多副本部署可有效避免单点故障,同时提供负载均衡实现仿真平台的高可用性。
高可扩展性:当平台面向未来进行功能扩展时,无需在原仿真平台完整的复杂程序项目中修改代码,只需部署一个新的微服务并设置相关服务的通信接口即可,实现仿真平台的高可扩展性。
版本控制、升级回滚:结合镜像技术及K8s内生的升级回滚功能可以更方便地实现平台模块的版本控制。更重要的是版本更新的过程是零停机的,在新版本完全替代旧版本后,旧版本才会自动销毁,停止服务。同时,如遇到新版本程序错误,还可实现一键版本回滚的操作。
3.4 微服务架构下的仿真平台运行效率
基于微服务架构实现平台的架构升级,带来了架构层面的诸多优势,提升了数字孪生仿真平台的部署效率,实现了平台的灵活性、松耦合性、高可用性、可扩展性等特点。但由于在其仿真流程中,存在模块与模块间的信息传递,因此微服务架构会引入一定的通信时延。为了减少通信时延的影响,同时凸显微服务架构灵活部署的特点,可对用户循环进行拆分,以微服务容器的形式实现并行计算的效果来弥补通信时延的弊端。微服务架构下的平台运行时间Tm(M,N,K)可表示为:
(2)
其中,M表示系统中的用户数,N表示循环的次数,K表示将所有用户拆分后的分组数,则每个分组中的用户数为M/K,t1(M/K)表示单个用户在无线通信模块中下半部分的运行时间,t2(M/K)表示智能体的运行时间,t0表示初始化、参数配置、结果处理等与循环次数无关的运行时间,td(K)表示图4中步骤1~步骤10中引入的全部通信时间。
将公式(2)与公式(1)对比可以发现,通过用户拆分可以减少每次循环的运行时间,但是微服务架构引入的通信时间又会导致平台运行时间的增加。当减少的循环计算时延大于微服务架构引入的通信时延时,平台整体运行效率才会得以提升。
4 测试结果
依托多维度资源精准调配的网络节能场景开展仿真和测试工作,其对应的仿真拓扑图如图5所示,其中模拟了1 km × 1 km的区域,部署了2 个宏基站、8 个微基站以及一定数量的用户,用户在该区域内以步行速度移动。从图5可以看出,当用户分布不均匀时,部分无接入用户的微基站可以被关闭,进而节省系统总能耗。
图5 仿真拓扑图
数字孪生仿真平台的无线通信孪生体负责用户接入、信号与干扰噪声比(Signal to Interference plus Noise Ratio,SINR)计算、无线传输资源分配、用户算力需求分配等网络参数的计算,并将数据传递给智能体模块;智能体模块依据历史数据及当前数据,使用强化学习的方法制定出微基站的开启与关闭策略,在保证用户基本服务质量要求满足的前提下,使得系统总体能耗最低。
本文将对比使用图3所示的传统单体架构和图4所示的微服务架构两种方法开发的数字孪生仿真平台的测试结果。
图6 无线通信模块单次运行时间随用户数的变化
4.1 仿真设备的软硬件配置
考虑到硬件成本方面的限制,测试采用单物理机多虚拟机部署的形式。物理机由一台物理内存为16 GB、装载了Win10操作系统的电脑承担。在虚拟机配置方面,使用Ubuntu 16.04系统。当运行单体架构仿真平台时,使用配置了9.0 GB运行内存的单虚拟机。当运行微服务架构仿真平台时,使用分别配置了3.0 GB运行内存的3个虚拟机,用于模拟K8s服务器集群。其中,1个虚拟机部署为K8s Master节点,另外2个虚拟机均部署为K8s Node节点。基于K8s平台工作理念及运算负载均衡的考虑,将图4中的Master主控模块、参数配置模块、结果处理模块部署于一个K8s Node节点中,将智能体模块部署于另一个K8s Node节点,而无线通信模块可根据其服务的部署数量,平均分布在两个Node节点中。
图7 微服务架构与传统架构运算时间对比
4.2 仿真结果
如前文所述,无线通信模块为整个仿真平台中运算量最大的模块。因此,首先针对单体架构中该模块的运行时间进行测试,此处仅记录仿真过程中无线通信模块完成单次所有用户数据计算的时间,经统计平均后的测试结果如图6所示。其中,横坐标为单次计算所包含的用户数,纵坐标为单次计算的运行时间。
从图6可以看出,随着用户数的增加,单次运行时间近似呈线性增长。因此,在微服务架构下,考虑通过部署拆解用户数目的多服务实现并行计算,来提升该模块的计算效率。
在微服务架构中,考虑了如下子场景:不使用NFS共享数据库,但将无线通信模块基于用户拆分为双服务部署,即用户分组数K取值为2;使用NFS共享数据库,并将无线通信模块基于用户拆分为双服务部署,即用户分组数K取值为2;使用NFS共享数据库,但将无线通信模块基于用户拆分为四服务部署,即用户分组数K取值为4。
当引入NFS共享数据库之后,微服务平台的运算时间将大大缩小。当用户数较少时,微服务平台的运算时间仍然大于传统平台,这同样是由微服务平台各模块之间的通信时间导致的。但是,当用户数增加以后,通过双服务或者四服务部署带来的运算时间的减少,已经可以弥补模块间的通信时间,缩短总运算时间,提升平台的运行效率。
图8 微服务架构与传统架构的运算时间差
图8绘制了微服务架构与传统架构相比的运算时间差,时间差表示为不同微服务配置下仿真时间Tm减去传统架构仿真时间Ts。时间差大于0代表运算时间增加,效率降低;小于0代表运算时间减少,效率提高。从图8中可以看出,当不引入NFS共享数据库时,200 个用户以内的场景下时间差均大于0,但随着用户的增加,差值逐渐减小。对于引入NFS共享数据库,双服务部署下,用户数大于70 个时,时间差小于0,运算效率提升;四服务部署下,用户数大于100 个时,时间差小于0,运算效率提升。因此,可知微服务架构下用户数量的门限值为70(双服务部署)和100(四服务部署)。此外,从图8中还可以看出,对于更大用户数量的场景,四服务部署要比双服务部署的效率提升效果更好。
为了进一步讨论运行时间的构成,将仿真时间拆分为计算时间和通信时间,并分别记录。此处,以K=2、N=150 次,用户数M=40 个和M=200个时的结果为例进行对比讨论,测量结果总结参见表1。从表1可以看出,当用户数较少时,微服务架构中的通信时间会抵消双服务部署带来的计算时间的降低,最终导致总仿真时间的延长。当用户数增加至200 个时,单体架构的仿真时间显著延长,而微服务架构的计算时间和通信时间增加幅度没有单体架构下显著,此时微服务架构的仿真时间更短。在用户数较大的情况下,通过引入多服务部署实现并行计算缩短的运行时间足以弥补微服务架构下的通信时间。从图7和图8可以看出,用户数越大,微服务架构的运行效率提升效果越显著。
表1 N=150 次时的运行时间结果对比
上述结果中循环次数N设定为150 次。对于一次完整的仿真过程,循环次数N通常较大以便使得仿真平台进入稳定状态或模型收敛。表2给出了循环次数为75 000 次和120 000 次时的仿真时间对比,从中可以看出,基于微服务架构的仿真平台的仿真时间得以显著缩短,仿真效率得到极大提升。
表2 不同循环次数下运行时间结果对比
5 结束语
本文在研究数字孪生网络架构、功能以及技术需求的基础上,以基于多维度资源精准调配的网络节能优化场景为例,给出了使用传统单体架构实现数字孪生仿真平台的设计方法。重点研究了微服务架构的设计思想,并结合网络节能优化场景,完成了基于微服务的仿真平台设计,包括功能模块拆分、模块间数据传递、整体运行流程等关键内容,通过对平台进行的架构升级,有助于充分发挥微服务的各种架构优势。同时,依托计算机硬件,对基于微服务架构的仿真平台的部署方式及其运算时间进行了讨论。试验表明,微服务架构引入的通信过程往往是不可避免的,因此对通信时延的优化尤为重要。此外,测试结果表明,当用户数较大时,通过在微服务架构中实现多服务部署达到并行计算的效果,可以显著缩短运算时间,提升运算效率。