CN113064700B - 容器部署方法及装置 - Google Patents
容器部署方法及装置 Download PDFInfo
- Publication number
- CN113064700B CN113064700B CN202110479464.5A CN202110479464A CN113064700B CN 113064700 B CN113064700 B CN 113064700B CN 202110479464 A CN202110479464 A CN 202110479464A CN 113064700 B CN113064700 B CN 113064700B
- Authority
- CN
- China
- Prior art keywords
- utilization rate
- micro
- resource utilization
- container
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 49
- 238000003860 storage Methods 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 20
- 230000001419 dependent effect Effects 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 42
- 230000006870 function Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008602 contraction Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种容器部署方法及装置,涉及金融技术领域,该方法包括:针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;采集所述第一容器对应的资源利用率和资源请求量;根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。本申请能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种容器部署方法及装置。
背景技术
微服务由其具有专注、并发性、无状态性、独立性和扩展性等特点,使得服务之间彼此独立,能够随时随地进行部署且不会影响其他的服务,且服务之间通过轻量级机制进行通信,能够解决传统单体架构较低的扩展性和开发效率等问题。而容器凭借自身轻量级、隔离性好、启动快、操作简单、资源消耗小和部署灵活等优点,逐步成为支撑微服务运行的主流架构平台,可很好地满足互联网应用负载突变对实时资源供给的需求,在微服务的开发中扮演极其重要的角色。
微服务的引入也给容器部署带来一些挑战,有些使用微服务架构设计的应用对响应时间有严格的限制,而现有的基于虚拟机技术的微服务伸缩,不能很好的应用于容器环境,通信成本较高,并且存在时延较长和质量较差等问题。
发明内容
针对现有技术中的问题,本申请提出了一种容器部署方法及装置,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应。
为了解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种容器部署方法,包括:
针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
采集所述第一容器对应的资源利用率和资源请求量;
根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
进一步地,在所述根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率之前,还包括:
获取多元时间序列;
应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
进一步地,所述根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器,包括:
应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度;
根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机;
根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器。
进一步地,在所述若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器之前,还包括:
获取所述应用程序中的各个微服务之间的依赖关系和依赖强度;
根据所述微服务之间的依赖关系和依赖强度,生成所述微服务依赖图,该微服务依赖图中的节点表示微服务实例,两个节点之间的边表示依赖关系,并且边上的权重表示与该边相邻的两个节点之间的依赖强度。
进一步地,在所述部署所述目标微服务对应的第二容器之后,还包括:
若所述目标微服务的响应时间大于预设的响应时间,则再次应用所述资源利用率和预测资源利用率训练所述预设的资源利用率预测模型。
第二方面,本申请提供一种容器部署装置,包括:
第一确定模块,用于针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
采集模块,用于采集所述第一容器对应的资源利用率和资源请求量;
第二确定模块,用于根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
部署模块,用于若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
进一步地,所述的容器部署装置,还包括:
获取模块,用于获取多元时间序列;
训练模块,用于应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
进一步地,所述部署模块,包括:
判断单元,用于应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度;
待部署主机确定单元,用于根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机;
部署单元,用于根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的容器部署方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的容器部署方法。
由上述技术方案可知,本申请提供一种容器部署方法及装置。其中,该方法包括:针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应;具体地,能够提前感知微服务的工作负载和资源使用情况,准确有效地对下一刻的工作负载和资源请求量进行预测,基于注意力机制的变分循环网络来学习多元时间序列的时间依赖关系和复杂分布,且设计反馈机制来不断提高预测准确性,避免资源浪费和资源不足,在预测结束后,针对微服务伸缩的具体位置,考虑到微服务间的通信特性,应用无向加权图来建模微服务的依赖关系、依赖强度和分配的资源量,以此求得整个应用通信距离最小的最佳位置。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中容器部署方法的流程示意图;
图2是本申请实施例中主机集群的结构示意图;
图3是本申请实施例中容器部署方法步骤301至步骤303的流程示意图;
图4是本申请实施例中容器部署装置的结构示意图;
图5是本申请应用实例中容器部署装置的结构示意图;
图6是本申请应用实例中预测模块执行过程的流程示意图;
图7是本申请应用实例中资源计划器模块执行过程的流程示意图;
图8是本申请应用实例中反馈模块执行过程的流程示意图;
图9为本申请实施例的电子设的系统构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,针对微服务应用的容器部署还存在如下问题:
1)目前主流的容器管理工具没有针对微服务通信延迟特性来考虑部署策略。
2)只考虑微服务之间的依赖关系,忽略了微服务之间的依赖强度。例如,现有A、B和C三个微服务相互依赖,在整个请求中,A微服务和C微服务之间的通信次数大于A和B之间的通信次数,现有技术很大可能会将A和B微服务放在一个主机上,而C微服务部署在另一个主机,导致A和C微服务之间的通信距离增加,整个应用的响应时间延长。
3)忽略了工作负载与分配的计算资源、存储资源和网络资源之间的关系,难以精确地计算需要对下一刻的请求分配的资源量,只能机械地按照以往容器实例的资源量进行分配,容易导致分配的资源不能满足负载请求或者超出负载请求,造成资源浪费。
基于此,本申请考虑提供一种容器部署方法及装置,1)在资源计划过程中,为了减少通信延迟对响应时间的影响,将微服务组件的依赖关系建模为无向加权图,然后根据图中的依赖关系、依赖强度、微服务的资源请求、主机的剩余资源约束为方程等式,且以整个微服务应用的通信距离最小为目标来选择伸缩实例的主机位置,以供容器调度器进行部署。
2)基于细粒度地动态感知、主动感知主机的资源和负载情况、微服务的资源和负载情况,提前对应用进行伸缩评估,并且通过不断地对模型参数、主机占有的计算和存储资源进行调整,提高预测的精确度,最后根据微服务的依赖关系、依赖强度、请求的资源和主机的剩余资源来选择一个最佳的调度位置。
3)监控指标之间具有关联性,如工作负载的增加往往会导致响应时间、CPU利用率和内存利用率等也发生变化。因此,按照一定时间规则监控采集的工作负载、响应时间和常用的资源指标序列一起进行考虑,由于组成的多元时间序列具有时间依赖、高维和随机特征,改进深度学习算法来学习多元时间序列的复杂分布,然后再将离线训练的模型用于在线实时预测,若预测得到的预测资源利用率超出资源利用率阈值区间,则删除容器并重新部署容器。
4)在选择对多元时间序列的预测方法中,针对已有的研究中使用确定性变量建模时间序列关系,或者假设数据点独立未能考虑到数据的时间依赖关系,不能很好的捕捉多元时间序列的复杂分布,本申请应用一种基于注意力机制的变分循环网络进行多元时间序列的预测,能够提高预测准确性。
基于此,为了提高容器部署的可靠性,进而保证高质量且低延时的微服务响应,本申请实施例提供一种容器部署装置,该装置可以是一微服务器或客户端设备,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备和智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表和智能手环等。
在实际应用中,进行容器部署的部分可以在如上述内容所述的微服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的微服务器进行通信连接,实现与所述微服务器的数据传输。所述微服务器可以包括任务调度中心一侧的微服务器,其他的实施场景中也可以包括中间平台的微服务器,例如与任务调度中心微服务器有通信链接的第三方微服务器平台的微服务器。所述的微服务器可以包括单台计算机设备,也可以包括多个微服务器组成的微服务器集群,或者分布式装置的微服务器结构。
所述微服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
需要说明的是,本申请公开的容器部署方法及装置可用于金融技术领域,也可用于除金融技术领域之外的任意领域,本申请公开的容器部署方法及装置的应用领域不做限定。
具体通过下述各个实施例进行说明。
为了提高容器部署的可靠性,进而保证高质量且低延时的微服务响应,本实施例提供一种执行主体是容器部署装置的容器部署方法,该容器部署装置包括但不限于微服务器,如图1所示,该方法具体包含有如下内容:
步骤100:针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器。
具体地,所述主机集群可以表示服务器集群,如图2所示,所述主机集群可以包含有多台通信连接的主机,主机内部署有容器;所述应用程序可以是一种金融交易系统;所述应用程序可以包含有多个微服务,每个微服务可以对应一个或多个第一容器,第一容器为目标微服务对应的当前启动的容器;微服务是一种新兴的软件架构,是把一个大型的单体应用程序和服务拆分为多个的支持微服务。
步骤200:采集所述第一容器对应的资源利用率和资源请求量。
具体地,所述资源利用率可以包括:实时采集的容器的工作负载、CPU利用率、内存利用率、I/O利用率和响应时间等;所述资源请求量可以包括:第一容器对应的服务实例分配的计算资源、存储资源和网络资源。
步骤300:根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率。
具体地,所述预测资源利用率可以为预测的第一容器对应的服务实例未来的资源利用率;预测资源利用率可以包括:工作负载、响应时间、CPU利用率、内存利用率和I/O利用率等。
步骤400:若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
具体地,删除所述第一容器表示对目标微服务原先分配的资源进行回收;所述第二容器为执行容器部署后所述目标微服务对应的容器;超出资源利用率阈值区间是指大于所述资源利用率阈值区间的上限或者小于所述资源利用率阈值区间的下限;剩余资源量可以表示主机当前可用的资源量。
为了进一步提高资源利用率预测模型的可靠性,在本申请一个实施例中,在步骤200之前,还包括:
步骤021:获取多元时间序列。
具体地,将按照一定的时间规则(如间隔一分钟)采集容器的工作负载、CPU利用率、内存利用率、I/O利用率和响应时间形成多元时间序列。而多元时间序列表示为x=(x(1),x(2),…,x(N)),其中,N为多元时间序列x的监控时间,是一个M维的向量(M=5),表示t时刻监控的指标值,即/>而/>表示t时刻的容器的工作负载,/>表示t时刻的容器的CPU利用率,/>表示t时刻的容器的内存利用率,/>表示t时刻的容器的I/O利用率,/>表示t时刻的微服务的响应时间。
步骤022:应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
具体地,采集容器的工作负载、CPU利用率、内存利用率、I/O利用率和响应时间形成多元时间序列,应用多元时间序列训练预测模型,应用训练完成的预测模型预测得到预测资源利用率,包括:工作负载、CPU利用率、内存利用率、I/O利用率和响应时间,若预测资源利用率不在阈值区间内,会进行容器的伸缩:(1)根据预测出的CPU利用率、内存利用率、I/O利用率以及原先为这个服务实例分配的计算、存储和网络资源来计算下一刻为满足工作负载需要分配的资源量,如应分配的CPU资源量为其中,/>为预测得到的CPU利用率,/>为相应的CPU资源量阈值,为当前分配的CPU资源量;接下来可以根据服务依赖图计算最佳部署位置。
可以将多元时间序列进行标准化,使其每个指标都符合正太分布;划分时间窗口。用滑动窗口将x划分为子序列,移动步长为1个单位。为了更好地确定序列的最佳窗口长度,使用不同的窗口大小来判断不同长度下的预测准确性,如w=3*i,i=1,2,…,10来获得最佳窗口大小W;可以根据预设的资源利用率预测模型来预测下一个时间窗口的预测资源利用率。
具体地,离线训练主要是根据历史数据、目标函数、设计的网络结构来训练模型直至收敛,一般每隔一周或者一月进行一次,以使模型能够及时捕捉多元时间序列的变化特征,提高预测准确性。
为了进一步提高容器部署的可靠性,参见图3,在本申请一个实施例中,步骤400包括:
步骤301:应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度。
步骤302:根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机。
具体地,最佳主机应满足如下条件:1)它的剩余资源量应大于所述预测资源利用率;2)容器部署后要使得整个微服务应用的通信距离最小。因此可以将最佳位置的寻找过程即确定待部署主机的过程建立为方程等式进行求解,目标函数是最小化即C值最小时的a主机作为所述待部署主机。
约束条件为:
其中,表示是否将si微服务部署在ha主机上,如果是则/>否则/> 分别表示第a个主机可用剩余的计算资源、存储资源和网络资源;表示将si微服务部署在ha主机以及sj微服务部署在hb主机上的通信系数,当部署的微服务si和sj不在同一台主机时,通信系数为两个微服务的依赖强度的一半,即有表示第i个微服务和第j个微服务间的依赖强度,否则/>
步骤303:根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器。
进一步地,如果预测出的工作负载和响应时间是在阈值区间内,则可以等待下一轮预测,否则根据预测出的CPU利用率、内存利用率、I/O利用率来决定是扩展还是收缩实例,并进行下一步的处理。
为了进一步提高微服务依赖图的可靠性,在本申请一个实施例中,在步骤400之前,还包括:
步骤031:获取所述应用程序中的各个微服务之间的依赖关系和依赖强度。
具体地,微服务之间的依赖关系可根据实际需要进行设置,本申请对此不作限制;所述依赖强度表示微服务之间当前已调用的次数。
步骤032:根据所述微服务之间的依赖关系和依赖强度,生成所述微服务依赖图,该微服务依赖图中的节点表示微服务实例,两个节点之间的边表示依赖关系,并且边上的权重表示与该边相邻的两个节点之间的依赖强度。
具体地,所述微服务依赖图可以是无向加权图,可以基于微服务架构的应用是通过微服务之间的相互作用来共同处理请求的,并且微服务之间的通信是双向的,各个微服务之间的依赖强度不同。因此应用无向加权图来刻画微服务之间的依赖关系,节点表示微服务实例,一个微服务可以有多个微服务实例,容器和微服务实例一一对应,节点间的连线表示两个节点对应的微服务之间的依赖关系,而边上的权重表示与该边相邻的两个节点对应的微服务之间的依赖强度;进一步地,每一个节点还可以应用一个三元组来表示为这个微服务分配的计算资源、存储资源和网络资源,形如<cpu,memory,net>,根据微服务的依赖关系、依赖强度、以及微服务分配的计算资源、存储资源和网络资源,得到的无向加权图,能够便于数据存储和表达,同时能够提高数据的可视化程度。
为了进一步提高容器部署的可靠性,在本申请一个实施例中,在步骤300之后,还包括:
若所述目标微服务的响应时间大于预设的响应时间,则再次应用所述资源利用率和预测资源利用率训练所述预设的资源利用率预测模型。
具体地,监控容器部署后目标微服务的响应时间,并将结果作为模型参数调整的依据,以便满足预设的响应时间,提高预测准确性;预设的响应时间可以是微服务等级协议SLA下约定的响应时间,可根据实际需要进行设置,本申请对此不作限制。将应用程序部署于云环境之前用户和云产商约定微服务等级协议SLA和响应时间,能够避免造成请求处理时间过长和卡顿现象。若所述目标微服务的响应时间大于微服务等级协议约定的响应时间,则基于当前的工作负载重新触发模型的训练,否则等待下一轮的部署。
从软件层面来说,为了提高容器部署的可靠性,进而保证高质量且低延时的微服务响应,本申请提供一种用于实现所述容器部署方法中全部或部分内容的容器部署装置的实施例,参见图4,所述容器部署装置具体包含有如下内容:
第一确定模块10,用于针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器。
采集模块20,用于采集所述第一容器对应的资源利用率和资源请求量。
第二确定模块30,用于根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
部署模块40,用于若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
在本申请一个实施例中,所述的容器部署装置,还包括:
获取模块,用于获取多元时间序列;
训练模块,用于应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
在本申请一个实施例中,所述部署模块,包括:
判断单元,用于应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度;
待部署主机确定单元,用于根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机;
部署单元,用于根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器。
本说明书提供的容器部署装置的实施例具体可以用于执行上述容器部署方法的实施例的处理流程,其功能在此不再赘述,可以参照上述容器部署方法实施例的详细描述。
为了进一步说明本方案,本申请提供一种容器部署装置的应用实例,参见图5,该装置主要由数据分析模块、预测模块、微服务依赖图构建模块、资源计划器模块、反馈模块和容器调度器模块组成,数据分析模块实现的功能可以相当于上述采集模块和获取模块结合实现的功能,预测模块实现的功能可以相当于上述第二确定模块和训练模块结合实现的功能,资源计划器模块和容器调度器模块结合实现的功能可以相当于上述部署模块实现的功能,所述容器部署装置具体描述如下:
数据分析模块:是一种离线模块,主要用于实现两部分功能,一是将周期性监控采集的各微服务之间依赖关系、所有主机和容器资源进行存储和分析,并统计各微服务之间的调用次数,然后将两个微服务之间的调用次数之和作为微服务之间的依赖强度,这些数据作为基础信息流入微服务依赖图构建模块。二是将按照一定的时间规则(如间隔一分钟)采集容器的工作负载、CPU利用率、内存利用率、I/O利用率和响应时间,形成多元时间序列。
预测模块:长短期记忆网络LSTM是一种强大的非线性模型,且通过反馈连接、循环机制具有建模时间依赖关系的能力,常被用作时间序列的预测技术。但LSTM对序列中每一个时间窗口中的数据赋予相同的关注,不能区分出重点样本进行训练,导致有限的隐藏空间不能存储较长的时间依赖关系,而注意力机制对不同的数据赋予不同的权重,能够让模型关注重要的数据,且多头注意机制Transformer不仅能够捕捉长期的依赖关系,还能够在模型的训练过程中使用多个注意力头进行并行化计算,且每一个注意力头捕捉数据之间的一种特殊关系,提高了收敛速度。因此,本应用实例通过使用LSTM学习局部依赖关系、Transformer来捕捉长期依赖关系,但较于云环境中需要监控的微服务数量庞大,且监控的指标不断变化,在时间序列的预测过程中还引入变分自编码器VAE技术,将确定的隐藏状态与随机的潜在变量相结合,代替变分自编码VAE的前馈神经网络来进行编码和解码,以此来刻画工作负载、响应时间、CPU利用率、内存利用率和I/O利用率之间的时间依赖关系,学习数据的复杂分布,增强鲁棒性。如图6所示,预测模块执行过程具体包含有:
S01:输入多元时间序列。
S02:标准化数据。将输入的多元时间序列数据进行标准化,使其每个指标都符合正太分布。
S03:划分时间窗口。用滑动窗口将x划分为子序列,移动步长为1个单位。为了更好地确定序列的最佳窗口长度,使用不同的窗口大小来判断不同长度下的预测准确性,如w=3*i,i=1,2,…,10来获得最佳窗口大小W。
S04:判断是否为历史数据,若是,则执行步骤S05,否则执行步骤S08。
S05:设计网络结构。基于注意力机制的变分循环网络包括编码和解码两个部分,在编码网络部分,首先将划分的时间窗口子序列利用LSTM进行局部编码,以此学习更深层次的表达,最后将每个短序列的深层次表达合并,形成多元时间序列的短期依赖然后将所有隐藏状态进行拼接,再使用并行的多头注意机制Transformer来学习多元时间序列的长期依赖关系,并用带伸缩的点乘来学习相似矩阵,用于对隐藏状态进行改进,使得模型在那个时刻只关注相关数据,尽可能忽略与之无关的数据,得出加权后的特征矩阵multie=MultiHead(he)=Concat(head1(he),…,headh(he))Wo。
其中,WQ,WK,WV是变化矩阵,vi是将LSTM编码获得的隐藏状态投影获得,即/>而k∈{1,2,…,n},n表示多头注意和前馈神经网络堆叠层的个数;再使用一个位置全联通的前馈神经网络子层对获取的特征矩阵进行非线性变换FeedForward(multie)=max(0,multieW1+b1)W2+b2;然后再把获取的特征通过Reshape转化为一维数据,并使用一个全连接层将前面所提取的特征进行综合考虑,得到最后的编码隐藏特征;最后通过线性层来估算潜在变量的均值和方差,即/>其中,Wu、Wσ、bu、bσ分布是对应网络训练获得的权重和偏差。而解码网络在u和σ的基础上,从先验分布qφ(z|x)中进行随机抽样,组成随机变量z,然后依次通过局部LSTM、Transformer、前馈神经网络、Reshape得出重建的/>以此作为模型的预测值进行输出。
S06:设定目标函数
S07:离线训练模型。离线训练主要是根据历史数据、目标函数、设计的网络结构来训练模型直至收敛,一般每隔一周或者一月进行一次,以使模型能够及时捕捉多元时间序列的变化特征,提高预测准确性。
S08:在线预测。实时数据经过标准化和时间窗口划分后,根据离线训练的模型来预测下一个时间窗口的工作负载、响应时间、CPU利用率、内存利用率和I/O利用率。
S09:判断预测出的工作负载和响应时间是否在各自对应的阈值区间内,若是,则执行步骤S091,否则执行步骤S092。
S091:等待下一轮预测。如果预测出的工作负载和响应时间是在阈值区间内,则等待下一轮预测。
S092:根据预测出的CPU利用率、内存利用率和I/O利用率来决定是扩展还是收缩实例。
S093:调用资源计划器模块处理。
微服务依赖图构建模块:构建微服务依赖图。
资源计划器模块:用于根据预测模块预测出的CPU利用率、内存利用率、I/O利用率以及当前分配的容器实例的CPU资源、存储资源和网络资源提前计算出承载下一时刻工作负载需要的资源请求量。其次,根据两个微服务之间的依赖强度以及它们部署的主机位置来计算一个通信系数。最后,根据资源请求量、所有主机可用的剩余资源量、以及微服务依赖图中的依赖关系来寻找一个微服务间主机节点通信距离最小的位置进行调度。部署时尽量确保高度依赖的两个微服务部署在同一个主机节点,以此最小化请求的响应时间,收缩时尽量减少通信距离较远的实例,且在寻找满足条件的最佳位置过程中,资源计划器将资源分配建模为方程等式进行求解。如图7所示,资源计划器模块执行过程具体如下:
S11:输入预测的CPU利用率、内存利用率和I/O利用率。
S12:统计微服务依赖图的节点;统计微服务依赖图中为所有微服务分配的计算资源、存储资源和网络资源;统计微服务依赖图的所有权重值;统计集群中的主机;根据微服务之间的权重值和所在的主机节点,计算微服务之间的通信系数。
具体地,步骤S12包含有:
S121:统计微服务依赖图的节点,si表示第i个微服务i∈(1,2,…,S),S为微服务的总数。
S122:统计微服务依赖图中为所有微服务分配的计算资源、存储资源和网络资源,记为<scpu,smemory,snet>,而表示第i个微服务分配的计算资源、存储资源和网络资源i∈(1,2,…,S)。
S123:统计微服务依赖图的所有权重值,用集合d表示,dij表示第i个微服务和第j个微服务之间的依赖强度。
S124:统计集群中的主机,并用集合h表示,ha表示第a个主机a∈(1,2,…,H),而H为集群中的主机数量。
S125:计算两个微服务之间的依赖强度以及二者所在的主机之间的通信系数Cost。表示将si微服务部署在ha主机以及sj微服务部署在hb主机上的通信系数,当部署的微服务不在同一台主机时,通信系数为两个微服务的通信强度的一半,即有否则/>
S13:根据预测的CPU利用率、内存利用率、I/O利用率以及原先为微服务分配的计算资源、存储资源和网络资源得出满足微服务未来工作负载需求的资源请求量。
具体地,根据预测的CPU利用率、内存利用率、I/O利用率以及原先为微服务分配的计算资源、存储资源和网络资源来计算下一刻为满足工作负载需要分配的资源量,然后在服务依赖图中删除第一容器,收回分配的容器资源,并以整个微服务应用的通信距离最小来求解最佳放置的主机位置,在容器调度器操作成功后,更新到服务依赖图中。
S14:若CPU、内存、I/O利用率大于各自对应的资源利用率阈值区间上限,则确定扩展实例。
S15:若CPU、内存、I/O利用率小于各自对应的资源利用率阈值区间下限,则确定收缩实例。
S16:建立方程规划求解通信距离最小的主机位置。
S17:调用容器调度器进行处理。
具体地,根据步骤S16确定的主机位置进行扩展和伸缩实例。可以调用容器调度器进行伸缩微服务即删除或部署容器,并对原先分配的资源及时进行回收。
如图8所示,反馈模块执行过程具体包含有:
S21:监控部署后的微服务的响应时间和SLA的响应时间。
S22:判断响应时间是否大于SLA的响应时间,若是,则执行步骤S23,否则执行步骤S24。
S23:将当前的工作负载反馈给预测模块。
S24:等待下一轮部署。
具体地,监控资源伸缩后微服务的响应时间,并将结果反馈到预测模块作为模型参数调整的依据,以便满足微服务等级协议SLA下约定的响应时间,提高预测准确性。如果伸缩后的响应时间大于微服务等级协议的响应时间,则将当前的工作负载反馈给预测模块,重新触发模型的训练,否则等待下一轮的伸缩。
容器调度器模块:容器调度器模块作为容器集群的调度中心,具有增减主机资源以及按照资源计划器计算出的资源请求量和满足条件的最佳位置来进行微服务部署等功能,并及时对收缩容器即上述第一容器的资源进行回收。
由上述描述可知,本申请提供的容器部署方法及装置,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应;具体地,能够提前感知容器的工作负载和资源使用情况,准确有效地对下一刻的工作负载和资源请求量进行预测,基于注意力机制的变分循环网络来学习多元时间序列的时间依赖关系和复杂分布,且设计反馈机制来不断提高预测准确性,避免资源浪费和资源不足,在预测结束后,针对微服务伸缩的具体位置,考虑到微服务间的通信特性,应用无向加权图来建模微服务的依赖关系、依赖强度和分配的资源量,以此求得整个应用通信距离最小的最佳位置。
从硬件层面来说,为了提高容器部署的可靠性,进而保证高质量且低延时的微服务响应,本申请提供一种用于实现所述容器部署方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述容器部署装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述容器部署方法的实施例及用于实现所述容器部署装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,容器部署功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
步骤200:采集所述第一容器对应的资源利用率和资源请求量;
步骤300:根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
步骤400:若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
从上述描述可知,本申请的实施例提供的电子设备,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应。
在另一个实施方式中,容器部署装置可以与中央处理器9100分开配置,例如可以将容器部署装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现容器部署功能。
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应。
本申请的实施例还提供能够实现上述实施例中的容器部署方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的容器部署方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
步骤200:采集所述第一容器对应的资源利用率和资源请求量;
步骤300:根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
步骤400:若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高容器部署的可靠性,进而保证高质量且低延时的微服务响应。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种容器部署方法,其特征在于,包括:
针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
采集所述第一容器对应的资源利用率和资源请求量;
根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器;
所述根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器,包括:
应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度;
根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机;
根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器;
在所述若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器之前,还包括:
获取所述应用程序中的各个微服务之间的依赖关系和依赖强度;
根据所述微服务之间的依赖关系和依赖强度,生成所述微服务依赖图,该微服务依赖图中的节点表示微服务实例,两个节点之间的边表示依赖关系,并且边上的权重表示与该边相邻的两个节点之间的依赖强度。
2.根据权利要求1所述的容器部署方法,其特征在于,在所述根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率之前,还包括:
获取多元时间序列;
应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
3.根据权利要求1所述的容器部署方法,其特征在于,在所述部署所述目标微服务对应的第二容器之后,还包括:
若所述目标微服务的响应时间大于预设的响应时间,则再次应用所述资源利用率和预测资源利用率训练所述预设的资源利用率预测模型。
4.一种容器部署装置,其特征在于,包括:
第一确定模块,用于针对部署在主机集群中的应用程序,确定该应用程序中的目标微服务对应的第一容器;
采集模块,用于采集所述第一容器对应的资源利用率和资源请求量;
第二确定模块,用于根据所述资源利用率和预设的资源利用率预测模型,确定预测资源利用率;
部署模块,用于若所述预测资源利用率超出资源利用率阈值区间,则删除所述第一容器,并根据预设的微服务依赖图、主机集群中的各个主机的剩余资源量、所述预测资源利用率和资源请求量,部署所述目标微服务对应的第二容器;
所述部署模块,包括:
判断单元,用于应用预设的微服务依赖图,确定所述目标微服务的依赖微服务,以及该目标微服务与依赖微服务之间的依赖强度;
待部署主机确定单元,用于根据各个主机的剩余资源量、所述依赖强度和预测资源利用率,确定待部署主机;
部署单元,用于根据所述预测资源利用率和资源请求量,在所述待部署主机中部署所述目标微服务对应的第二容器;
所述容器部署装置还用于:
获取所述应用程序中的各个微服务之间的依赖关系和依赖强度;
根据所述微服务之间的依赖关系和依赖强度,生成所述微服务依赖图,该微服务依赖图中的节点表示微服务实例,两个节点之间的边表示依赖关系,并且边上的权重表示与该边相邻的两个节点之间的依赖强度。
5.根据权利要求4所述的容器部署装置,其特征在于,还包括:
获取模块,用于获取多元时间序列;
训练模块,用于应用多元时间序列对基于注意力机制的变分循环网络模型进行训练,得到所述资源利用率预测模型。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至3任一项所述的容器部署方法。
7.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时实现权利要求1至3任一项所述的容器部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110479464.5A CN113064700B (zh) | 2021-04-30 | 2021-04-30 | 容器部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110479464.5A CN113064700B (zh) | 2021-04-30 | 2021-04-30 | 容器部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064700A CN113064700A (zh) | 2021-07-02 |
CN113064700B true CN113064700B (zh) | 2024-06-07 |
Family
ID=76568146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110479464.5A Active CN113064700B (zh) | 2021-04-30 | 2021-04-30 | 容器部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064700B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672335A (zh) * | 2021-07-08 | 2021-11-19 | 浙江一山智慧医疗研究有限公司 | 容器调度方法、装置、电子装置和存储介质 |
CN113609019B (zh) * | 2021-08-09 | 2024-03-08 | 山东乾云启创信息科技股份有限公司 | 一种容器云应用跨集群部署的流水线方法及装置 |
CN113778949A (zh) * | 2021-09-27 | 2021-12-10 | 武汉英仕达信息技术有限公司 | 一种面向物联网的数据中间件系统 |
US11558265B1 (en) * | 2021-12-21 | 2023-01-17 | Intel Corporation | Telemetry targeted query injection for enhanced debugging in microservices architectures |
CN114995900B (zh) * | 2022-05-23 | 2024-05-14 | 中国联合网络通信集团有限公司 | 多个微服务模块的部署方法、装置及计算机可读存储介质 |
CN115190010B (zh) * | 2022-07-01 | 2023-04-07 | 北京友友天宇系统技术有限公司 | 基于软件服务依赖关系的分布推荐方法和装置 |
CN116302509A (zh) * | 2023-02-21 | 2023-06-23 | 中船(浙江)海洋科技有限公司 | 一种基于CNN-Transformer的云服务器动态负载优化方法及装置 |
CN116192962B (zh) * | 2023-02-27 | 2023-11-14 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234589A (zh) * | 2016-12-22 | 2018-06-29 | 瞻博网络公司 | 微服务应用的自动缩放 |
CN109597605A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用微服务部署方法、装置、存储介质及终端设备 |
CN111813601A (zh) * | 2020-07-09 | 2020-10-23 | 中国工商银行股份有限公司 | 有状态分布式集群的微服务回滚方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10951692B1 (en) * | 2019-08-23 | 2021-03-16 | International Business Machines Corporation | Deployment of microservices based on back-end resource affinity |
-
2021
- 2021-04-30 CN CN202110479464.5A patent/CN113064700B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234589A (zh) * | 2016-12-22 | 2018-06-29 | 瞻博网络公司 | 微服务应用的自动缩放 |
CN109597605A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用微服务部署方法、装置、存储介质及终端设备 |
CN111813601A (zh) * | 2020-07-09 | 2020-10-23 | 中国工商银行股份有限公司 | 有状态分布式集群的微服务回滚方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113064700A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113064700B (zh) | 容器部署方法及装置 | |
CN108833352B (zh) | 一种缓存方法及系统 | |
CN106453608B (zh) | 一种基于云端的移动应用的后台请求自适应调度算法 | |
CN110267292B (zh) | 基于三维卷积神经网络的蜂窝网络流量预测方法 | |
CN111932267A (zh) | 企业金融服务风险预测方法及装置 | |
CN102741840B (zh) | 用于对个性化场景建模的方法和装置 | |
CN107995370A (zh) | 通话控制方法、装置及存储介质和移动终端 | |
CN112269650A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN111105016A (zh) | 一种数据处理方法、装置、电子设备及可读存储介质 | |
WO2020000689A1 (zh) | 基于迁移学习的智能投顾策略生成方法及装置、电子设备、存储介质 | |
CN110472798A (zh) | 时间序列数据的预测方法、装置及计算机可读存储介质 | |
CN113205319A (zh) | 人力资源分配方法及装置 | |
CN111949795A (zh) | 工单自动分类方法及装置 | |
CN112766825A (zh) | 企业金融服务风险预测方法及装置 | |
Pandey et al. | Exploiting the untapped potential of mobile distributed computing via approximation | |
CN111222631A (zh) | 业务预测方法以及装置 | |
CN114118570A (zh) | 业务数据预测方法及装置、电子设备和存储介质 | |
CN113256339A (zh) | 资源投放的方法、装置、存储介质及电子设备 | |
Song et al. | Personalized federated learning with server-side information | |
US20220138574A1 (en) | Method of training models in ai and electronic device | |
CN114239406A (zh) | 一种基于强化学习的财务流程挖掘方法和相关装置 | |
EP4349055A2 (en) | Dimensioning of telecommunication infrastructure | |
CN113570044A (zh) | 客户流失分析模型训练方法及装置 | |
CN113065109A (zh) | 人机识别方法及装置 | |
Liu et al. | Towards Multi-Task Generative-AI Edge Services with an Attention-based Diffusion DRL Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |