掌桥专利:专业的专利平台
掌桥专利
首页

一种云平台启动方法、装置、电子设备及存储介质

文献发布时间:2024-04-18 19:58:21


一种云平台启动方法、装置、电子设备及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种云平台启动方法、装置、电子设备及存储介质。

背景技术

目前,当某一云平台出现异常(例如断电)之后需要对该云平台进行重新启动时,服务器可以依次启动该云平台中包括的每一个组件。

但是,上述方法中,当需要启动该云平台中包括的每一个组件时,均需要判断该每一个组件的上一个组件是否已经启动,如此可能导致该云平台的启动效率缓慢。

发明内容

本公开提供一种云平台启动方法、装置、电子设备及存储介质,解决了当需要启动该云平台中包括的每一个组件时,均需要判断该每一个组件的上一个组件是否已经启动,如此可能导致该云平台的启动效率缓慢的技术问题。

本公开实施例的技术方案如下:

根据本公开实施例的第一方面,提供一种云平台启动方法。该方法可以包括:获取目标云平台中包括的多个组件之间的依赖关系;基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序;按照该多个组件之间的启动顺序启动该目标云平台。

可选地,上述基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,具体可以包括:基于该多个组件之间的依赖关系以及拓扑排序算法,对该多个组件进行拓扑排序,得到该多个组件的启动顺序。

可选地,上述基于该多个组件之间的依赖关系以及拓扑排序算法,对该多个组件进行拓扑排序,得到该多个组件的启动顺序,具体包括:基于该多个组件之间的依赖关系以及该拓扑排序算法,确定该多个组件中每个组件的直接上游组件,其中,一个组件的直接上游组件为该组件的上游组件中与该组件存在依赖关系的组件;基于该每个组件的直接上游组件,生成目标数组,该目标数组包括该多个组件中每个组件的标识,该目标数组用于表征该多个组件的启动顺序。

可选地,上述基于该每个组件的直接上游组件,生成目标数组,包括:步骤A、确定该多个组件中每个组件的直接上游组件的数量;步骤B、将该多个组件中,直接上游组件的数量为0的组件添加至预设数组;步骤C、从至少一个组件的直接上游组件中删除该直接上游组件的数量为0的组件,该至少一个组件的直接上游组件包括该直接上游组件的数量为0的组件;迭代执行步骤A、步骤B以及步骤C直至该预设数组中包括的组件的数量与该多个组件的数量相同,并且将该预设数组确定为该目标数组。

可选地,上述云平台启动方法还包括:响应于目标服务器的启动,确定该目标云平台中包括的多个组件的数量;确定该目标服务器中是否包括该多个组件中每个组件的安装包以及依赖包;该获取目标云平台中包括的多个组件之间的依赖关系,包括:在该目标服务器中包括该多个组件中每个组件的安装包以及依赖包的情况下,获取该目标云平台中包括的多个组件之间的依赖关系。

可选地,上述云平台启动方法还包括:在该目标云平台启动失败的情况下,间隔预设时长重新按照该多个组件之间的启动顺序启动该目标云平台。

可选地,上述云平台启动方法还包括:在该目标云平台启动失败的次数大于或等于次数阈值的情况下,生成提示信息,该提示信息用于提示该目标云平台启动失败。

可选地,上述云平台启动方法还包括:运行该目标云平台;确定该目标服务器的中央处理器(central processing unit,CPU)负载和该目标服务器的图形处理器(graphicsprocessing unit,GPU)负载;在该目标服务器的CPU负载小于或等于第一负载阈值以及该目标服务器的GPU负载小于或等于第二负载阈值的情况下,确定该目标云平台启动成功。

根据本公开实施例的第二方面,提供一种云平台启动装置。该装置可以包括:获取模块和处理模块;该获取模块,被配置为获取目标云平台中包括的多个组件之间的依赖关系;该处理模块,被配置为基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序;该处理模块,还被配置为按照该多个组件之间的启动顺序启动该目标云平台。

可选地,上述处理模块,具体被配置为基于该多个组件之间的依赖关系以及拓扑排序算法,对该多个组件进行拓扑排序,得到该多个组件的启动顺序。

可选地,上述云平台启动装置,还包括确定模块,该确定模块,被配置为基于该多个组件之间的依赖关系以及该拓扑排序算法,确定该多个组件中每个组件的直接上游组件,其中,一个组件的直接上游组件为该组件的上游组件中与该组件存在依赖关系的组件;该处理模块,具体被配置为基于该每个组件的直接上游组件,生成目标数组,该目标数组包括该多个组件中每个组件的标识,该目标数组用于表征该多个组件的启动顺序。

可选地,该确定模块,还具体被配置为步骤A、确定该多个组件中每个组件的直接上游组件的数量;该处理模块,还具体被配置为步骤B、将该多个组件中,直接上游组件的数量为0的组件添加至预设数组;该处理模块,还具体被配置为步骤C、从至少一个组件的直接上游组件中删除该直接上游组件的数量为0的组件,该至少一个组件的直接上游组件包括该直接上游组件的数量为0的组件;该处理模块,还具体被配置为迭代执行步骤A、步骤B以及步骤C直至该预设数组中包括的组件的数量与该多个组件的数量相同;该确定模块,还具体被配置为将该预设数组确定为该目标数组。

可选地,该确定模块,还被配置为响应于目标服务器的启动,确定该目标云平台中包括的多个组件的数量;该确定模块,还被配置为确定该目标服务器中是否包括该多个组件中每个组件的安装包以及依赖包;该获取模块,具体被配置为在该目标服务器中包括该多个组件中每个组件的安装包以及依赖包的情况下,获取该目标云平台中包括的多个组件之间的依赖关系。

可选地,该处理模块,还被配置为在该目标云平台启动失败的情况下,间隔预设时长重新按照该多个组件之间的启动顺序启动该目标云平台。

可选地,该处理模块,还被配置为在该目标云平台启动失败的次数大于或等于次数阈值的情况下,生成提示信息,该提示信息用于提示该目标云平台启动失败。

可选地,该处理模块,还被配置为运行该目标云平台;该确定模块,还被配置为确定该目标服务器的CPU负载和该目标服务器的GPU负载;该确定模块,还被配置为在该目标服务器的CPU负载小于或等于第一负载阈值以及该目标服务器的GPU负载小于或等于第二负载阈值的情况下,确定该目标云平台启动成功。

根据本公开实施例的第三方面,提供一种电子设备,可以包括:处理器和被配置为存储处理器可执行指令的存储器;其中,处理器被配置为执行该指令,以实现上述第一方面中任一种可选地云平台启动方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当该计算机可读存储介质中的指令由电子设备的处理器执行时,使得该电子设备能够执行上述第一方面中任一种可选地云平台启动方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,当该计算机指令在电子设备的处理器上运行时,使得该电子设备执行如第一方面中任一种可选地云平台启动方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

基于上述任一方面,电子设备可以获取目标云平台中包括的多个组件之间的依赖关系,然后基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,并且按照该多个组件之间的启动顺序启动该目标云平台。本申请中,由于该多个组件之间的依赖关系用于表征该多个组件中任意两个组件之间的依赖关系,因此,该电子设备可以基于该多个组件之间的依赖关系对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,该电子设备直接按照该多个组件之间的启动顺序启动该目标云平台,可以提高云平台的启动效率,又由于按照该多个组件的启动顺序可以先启动被依赖的组件(即前驱依赖组件),再启动依赖该组件(即被依赖的组件)的组件,因此还提高了多个组件之间的启动顺序确定的准确性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1示出了本公开实施例提供的一种云平台启动系统示意图;

图2示出了本公开实施例提供的一种云平台启动方法的流程示意图;

图3示出了本公开实施例提供的又一种云平台启动方法的流程示意图;

图4示出了本公开实施例提供的一种AOV网络的结构示意图;

图5示出了本公开实施例提供的又一种云平台启动方法的流程示意图;

图6示出了本公开实施例提供的又一种云平台启动方法的流程示意图;

图7示出了本公开实施例提供的一种电子设备的内部结构示意图;

图8示出了本公开实施例提供的一种云平台启动装置的结构示意图;

图9示出了本公开实施例提供的又一种云平台启动装置的结构示意图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。

需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息、用户行为信息等)和数据(包括但不限于***等),均为经用户授权或者经过各方充分授权的信息和数据。

下面对本公开实施例所涉及的一些概念做解释说明。

如今,云平台已成为主要的企业级基础资源供给方式,为企业级用户提供了而基于云的解决方案,包括计算、数据存储、网络服务等资源,有效的帮助了企业提高效率和节约成本。随着技术的不断发展与创新,应用服务快速更新迭代,对基础设施的稳定性和可靠性提出了更高的要求。云平台作为可以提供稳定、可靠的基础设施资源的设施,为上层应用的快速搭建、管理与拓展提供了有效支撑,以其高灵活性、可拓展性、稳定安全等特性得到了广泛的使用。

对于承载企业级应用的云平台,需要持续重点关注云平台的可用性,以保障上层应用的稳定运行。在生产环境中,整个机房可能出现计划内停电或计划外的掉电,这将导致部署在单一机房云平台的停电不可用。对于未考虑容灾设计的应用,如果机房意外故障发生计划外的掉电,这带来的风险可能是灾难性的。云平台上电后的恢复的时间越长、云平台不可用的时间越长,可能对上层业务应用带来恶劣影响。此外,为应对计划外的机房掉电,通常会开展计划内的停电实施掉电演习,针对应急情况演练,预先识别与规避机房掉电引发的风险。因此,云平台需要具备在上电重启后快速恢复能力,缩短上层应用不可用时间。

云平台作为一个复杂的基础设施服务(infrastructure as a service,IAAS)平台,其产品和组件类型与数量通常与承载的业务复杂性、业务规模相关,通常至少需要包含支撑、管控、计算、存储、网络、监控等多种类型的产品,各产品具备多种类型组件,部分组件间存在着依赖关系。当云平台启动时,各组件的启动顺序至关重要,如果没有按照正确的依赖关系启动,可以会影响整个平台的可用性。非标准化的启动流程,通常需要浪费工程师大量的时间排查恢复。为了保障云平台具备在风险发生前可以演练预防、在风险发生时能快速恢复、在风险发生后能优化方案的能力,本申请提供了一种云平台启动方法、装置、电子设备及存储介质,能够实现在机房上电恢复后,云平台各组件标准、有序的快速恢复和启动。

相关技术中,在当需要启动该云平台中包括的每一个组件时,均需要判断该每一个组件的上一个组件是否已经启动,如此可能导致该云平台的启动效率缓慢。

基于此,本公开实施例提供一种云平台启动方法,由于该多个组件之间的依赖关系用于表征该多个组件中任意两个组件之间的依赖关系,因此,该电子设备可以基于该多个组件之间的依赖关系对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,该电子设备直接按照该多个组件之间的启动顺序启动该目标云平台,可以提高云平台的启动效率,又由于按照该多个组件的启动顺序可以先启动被依赖的组件(即前驱依赖组件),再启动依赖该组件(即被依赖的组件)的组件,因此还提高了多个组件之间的启动顺序确定的准确性。

本公开实施例提供的云平台启动方法、装置、电子设备及存储介质,应用于云平台启动场景中。当目标云平台需要重新启动时,可以依据本公开实施例提供的方法,获取目标云平台中包括的多个组件之间的依赖关系,然后基于该多个组件之间的依赖关系,确定该多个组件之间的启动顺序,并且按照该多个组件之间的启动顺序启动该目标云平台。

以下结合附图对本公开实施例提供的云平台启动方法进行示例性说明:

图1为本公开实施例提供的一种云平台启动系统示意图,如图1所示,该云平台启动系统中可以包括服务器101和电子设备102,服务器101可以通过有线网络或无线网络与电子设备102之间建立连接。

其中,电子设备102可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)虚拟现实(virtual reality,VR)设备等,本公开对电子设备102的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。

服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(content delivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

具体的,电子设备102可以获取目标服务器中部署的目标云平台中包括的多个组件之间的依赖关系,然后确定该多个组件之间的启动顺序,并且基于该启动顺序启动该目标云平台。

如图2所示,当云平台启动方法应用于上述电子设备时,该云平台启动方法可以包括S101-S103。

S101、电子设备获取目标云平台中包括的多个组件之间的依赖关系。

应理解,该多个组件为启动该目标云平台需要启动的组件,该多个组件之间的依赖关系用于表征该多个组件中任意两个组件之间的依赖关系,即某一个组件是否依赖另一个组件的启动。例如组件1的启动依赖于组件2的启动。

应理解,在组件1与组件2之间的依赖关系为该组件1的启动依赖于该组件2的启动的情况下,说明该组件2需要在该组件1启动之后才可以启动。

示例性的,该组件1与该组件2之间的依赖关系可以表示为<组件1,组件2>。

可选地,该一个组件的启动可以依赖于多个组件的启动。

示例性的,该多个组件之间的依赖关系可以为<组件1,组件2>、<组件1,组件3>、<组件1,组件4>。

在一种可选的实现方式中,该电子设备可以在部署模板中提前存储该多个组件之间的依赖关系,然后从该部署模板中抽取该多个组件之间的依赖关系。

可选地,该电子设备可以以json文件的方式存储该多个组件之间的依赖关系。

S102、电子设备基于多个组件之间的依赖关系,对多个组件进行拓扑排序,得到多个组件之间的启动顺序。

可以理解的是,该电子设备可以基于该多个组件之间的依赖关系,确定任意一个组件的启动是否依赖于另一个组件的启动,然后先启动被依赖的组件(即前驱依赖组件),再启动依赖该组件(即被依赖的组件)的组件。

可选地,该电子设备中可以包括排序模块,该电子设备可以基于该排序模块确定该多个组件之间的启动顺序。

S103、电子设备按照多个组件之间的启动顺序启动目标云平台。

可以理解的是,该电子设备可以按照该多个组件之间的启动顺序依次启动该多个组件,以使得该目标云平台启动。

在一种可选的实现方式中,该电子设备可以预先存储启动脚本,该启动脚本中包括多个组件中每个组件的启动指令,然后该电子设备通过运行该启动脚本,生成该多个组件中每个组件的启动指令,以启动该多个组件。

可选地,该电子设备中可以包括启动模块,该电子设备可以将启动脚本配置在linux引导过程中,systemd管理启动程序,调用启动模块中的自启动指令,以实现启动该目标云平台。

上述实施例提供的技术方案至少带来以下有益效果:由S101-S103可知,电子设备可以获取目标云平台中包括的多个组件之间的依赖关系,然后基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,并且按照该多个组件之间的启动顺序启动该目标云平台。本申请实施例中,由于该多个组件之间的依赖关系用于表征该多个组件中任意两个组件之间的依赖关系,因此,该电子设备可以基于该多个组件之间的依赖关系对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序,该电子设备直接按照该多个组件之间的启动顺序启动该目标云平台,可以提高云平台的启动效率,又由于按照该多个组件的启动顺序可以先启动被依赖的组件(即前驱依赖组件),再启动依赖该组件(即被依赖的组件)的组件,因此还提高了多个组件之间的启动顺序确定的准确性。

在本申请实施例的一种实现方式中,该电子设备可以基于该多个组件之间的依赖关系以及拓扑排序算法,对该多个组件进行拓扑排序,得到该多个组件的启动顺序。

可选地,该电子设备可以基于拓扑排序算法,对该多个组件进行拓扑排序。

可选地,该拓扑排序算法可以内置与排序模块中。

在本申请实施例的一种实现方式中,在目标云平台启动失败的情况下,电子设备可以间隔预设时长重新按照多个组件之间的启动顺序启动目标云平台。

可以理解的是,在该目标云平台启动失败的情况下,可能是某一个组件启动失败,或者该启动脚本未正常运行,此时,该电子设备可以间隔预设时长重新启动该多个组件,以启动该目标云平台。

在一种可选的实现方式中,该电子设备可以设置定时任务,定时检查该目标云平台是否已经启动,并且在该目标云平台启动失败的情况下,自动启动该目标云平台。

本申请实施例中,该电子设备在目标云平台启动失败的情况下,间隔预设时长重新按照多个组件之间的启动顺序启动目标云平台,可以提高目标云平台启动成功的概率。

在本申请实施例的一种实现方式中,在目标云平台启动失败的次数大于或等于次数阈值的情况下,该电子设备可以生成提示信息。

其中,该提示信息用于提示目标云平台启动失败。

应理解,在该目标云平台启动失败的次数大于或等于次数阈值的情况下,说明该目标云平台启动失败的次数过多,该目标云平台可能无法基于本申请实施例提供的云平台启动方法自动启动,此时,该电子设备可以生成该提示信息。

可选地,该电子设备还可以将该提示信息记录在错误日志中。

本申请实施例中,该电子设备在目标云平台启动失败的次数过多的情况下,不再重新启动该目标云平台,并且生成提示信息,可以提高确定该目标云平台无法启动的准确性,并且及时的反馈该信息,以使得相关技术人员对该目标云平台进行人工处理,可以提高该目标云平台启动的有效性。

在本申请实施例的一种实现方式中,结合图2,如图3所示,上述电子设备基于多个组件之间的依赖关系,确定多个组件之间的启动顺序,具体包括S1021-S1022。

S1021、电子设备基于多个组件之间的依赖关系,确定多个组件中每个组件的直接上游组件。

其中,一个组件的直接上游组件为该组件的上游组件中与该组件存在依赖关系的组件。

应理解,一个组件的上游组件为在该多个组件的启动过程中,在该组件启动之前启动的组件。

可以理解的是,该电子设备可以基于该多个组件中任意两个组件之间的依赖关系,确定出某一个组件与其他组件的依赖关系。

示例性的,假设该多个组件包括组件1、组件2、组件3以及组件4,该多个组件的依赖关系为<组件1,组件2>、<组件1,组件3>、<组件3,组件4>以及<组件2,组件4>,则该电子设备可以确定该组件1不存在直接上游组件,该组件2的直接上游组件为组件1,该组件3的直接上游组件为组件1,该组件4的直接上游组件为组件2和组件3。

可选地,该电子设备可以以集合的形式表示每个组件的直接上游组件的依赖关系。

示例性的,对于组件x的依赖关系可表示为:

其中,

目标云平台中包括的全部组件之间的依赖关系可表示为:

其中,

S1022、电子设备基于每个组件的直接上游组件,生成目标数组。

其中,该目标数组包括该多个组件中每个组件的标识,该目标数组用于表征该多个组件的启动顺序。

应理解,在一个组件不存在直接上游组件的情况下,说明该组件的启动不依赖于其他组件的启动,此时,该电子设备可以确定优先启动该组件。

可以理解的是,在一个组件不存在于其他组件的直接上游组件中时,说明该组件的启动不被其他组件依赖,此时,该电子设备可以确定最后启动该组件。

应理解,在一个组件(例如组件2)的直接上游组件中仅包括一个组件(例如组件1),并且该组件1已经启动的情况下,该电子设备可以确定在启动优先启动该组件2。

本申请实施例中,该目标数组用于表征该多个组件之间的启动顺序,因此该电子设备可以基于该多个组件之间的启动顺序依次将该多个组件的标识放入该目标数组。

在一种可选的实现方式中,该电子设备可以将不存在直接上游组件的组件的标识放在该目标数据的开始位置,然后确定优先将直接上游组件中仅包括目标组件(该已经放入该目标数组的组件)的组件的标识放入该目标数组,并且确定最后将不存在与其他组件的直接上游组件中的组件放在该目标数组的结束位置,以生成该目标数组。

上述实施例提供的技术方案至少带来以下有益效果:由S1021-S1022可知,电子设备可以基于多个组件之间的依赖关系,确定多个组件中每个组件的直接上游组件,然后基于每个组件的直接上游组件,生成目标数组。本申请实施例中,由于该多个组件之间的依赖关系用于表征该多个组件中任意两个组件之间的依赖关系,因此,该电子设备可以基于该每个组件与其他组件之间的依赖关系,确定出该组件所有的直接上游组件,由于该组件的直接上游组件为该组件的上游组件中与该组件存在依赖关系的组件,因此,该电子设备可以基于该每个组件的直接上游组件确定出该多个组件之间的先后顺序,即该目标数组,由于该目标数组中包括多个组件中每个组件的标识,因此该电子设备可以直接基于该目标数组依次确定出要启动的组件,提高了该云平台启动的效率。

在本申请实施例的一种实现方式中,上述电子设备基于每个组件的直接上游组件,生成目标数组,具体包括步骤A-步骤C。

步骤A、确定多个组件中每个组件的直接上游组件的数量。

可选地,该电子设备可以基于该每个组件的直接上游组件集合,确定该直接上游组件集合中包括的组件的标识的数量。

步骤B、将该多个组件中,直接上游组件的数量为0的组件添加至预设数组。

结合上述实施例的描述,应理解,在一个组件不存在直接上游组件的情况下,说明该组件的启动不依赖于其他组件的启动。可以理解的是,在一个组件的直接上游组件的数量为0的情况下,说明该组件的启动不需要依赖于其他组件的启动,该组件的启动在其他组件的启动之前,此时,该电子设备可以将该组件的标识添加至该预设数组。

需要说明的是,该直接上游组件的数量为0的组件可能为多个,此时,该电子设备可以以任意顺序将该多个直接上游组件的数量为0的组件的标识添加至该预设数组。

步骤C、从至少一个组件的直接上游组件中删除直接上游组件的数量为0的组件。

其中,该至少一个组件的直接上游组件包括直接上游组件的数量为0的组件。

应理解,应理解,上述将直接上游组件的数量为0的组件添加至预设数组,说明在按照该目标数组启动该多个组件的过程在,该直接上游组件的数量为0的组件已经启动,此时,该电子设备可以确定该至少一个组件的启动不再需要等待该直接上游组件的数量为0的组件的启动,该电子设备可以从该至少一个组件的直接上游组件中删除直接上游组件的数量为0的组件。

可以理解的是,该电子设备可以基于该每个组件的直接上游组件,以及该直接上游组件的数量为0的组件的标识,确定出该至少一个组件。

在本申请实施例的一种实现方式中,上述电子设备基于每个组件的直接上游组件,生成目标数组,还包括:迭代执行步骤A、步骤B以及步骤C直至预设数组中包括的组件的数量与多个组件的数量相同,并且将预设数组确定为该目标数组。

可以理解的是,在电子设备从至少一个组件的直接上游组件中删除直接上游组件的数量为0的组件之后,该电子设备可以重新确定该剩余组件(即多个组件中除了添加至预设数组的组件以外的组件)的直接上游组件的数量,然后在该剩余组件中直接上游组件的数量为0的组件的标识添加至该目标数组,具体为添加至上一轮添加至目标数组的组件的标识之后。

示例性的,假设该多个组件包括组件1、组件2、组件3以及组件4,该组件1的该组件1不存在直接上游组件,该组件2的直接上游组件为{组件1},该组件3的直接上游组件为{组件1},该组件4的直接上游组件为{组件2和组件3},则该此时该电子设备确定该组件的直接上游组件的数量为0,将该组件1添加至预设数组,该预设数组为[组件1];然后该电子设备从该组件2和组件3的直接上游组件中删除该组件1,此时,该组件2的直接上游组件的数量为0,组件3的直接上游组件的数量为0,组件4的直接上游组件为{组件2,组件3},然后该电子设备可以确定将该组件2的标识以及组件3的标识添加至预设数组,此时,该预设数组为[组件1,组件2,组件3],或者该预设数组可以为[组件1,组件3,组件2];然后该电子设备将组件2的标识以及组件3的标识从组件4的上游组件中删除,此时,该组件4的直接上游组件的数量为0,该电子设备可以将该组件4的标识添加至该预设数组,此时,该预设数组为[组件1,组件2,组件3,组件4],或者该预设数组可以为[组件1,组件3,组件2,组件4],该预设数组的中包括的组件的数量与多个组件的数量相同,该电子设备可以将该预设数组确定为目标数组。

在一种可选的实现方式中,该电子设备可以记录已添加至预设数组的组件的数量,然后基于该数量确定该预设数组中包括的组件的数量与多个组件的数量是否相同。

本申请实施例的一种实现方式中,该多个组件之间的依赖关系也可以理解为一个AOV网络,该AON网络中包括顶点和有向边,该一个组件可以理解为一个顶点,两个组件之间的依赖关系可以理解为一个有向边,该有向边的起点可以理解为前驱,该有向边的终点可以理解为后继,一个有向边的起点可以理解为该有向边的终点的直接上游组件,该每个组件的直接上游组件的数量也可以理解为该每个顶点的入度。

在一种可选的实现方式中,该电子设备可以对该AOV网络求解,得到符合该依赖关系的该多个组件之间的启动顺序。

可选地,该电子设备可以基于该AOV网络中每个顶点的入度,当某一个顶点的入度为0时,将该顶点对应的组件的标识添加至该预设数组,并且在该AOV网络中删除该顶点,当预设数组中包括的组件的数量与多个组件的数量相同的情况下,将预设数组确定为目标数组。

示例性的,如图4所示,该AOV网络中包括顶点1、顶点2、顶点3、以及顶点4,该顶点1表示组件1,该顶点2表示组件2,该顶点3表示组件3,该顶点4表示组件4。

该顶点1的入度为0,顶点2的入度为1,顶点3的入度为1,顶点4的入度为2,此时该电子设备可以将该组件1的标识添加至预设数组,并且从该AOV网络中删除该顶点1,此时,该顶点2的入度为0,该顶点3的入度为0,该电子设备可以将该组件2的标识以及组件3的标识添加至该预设数组,并且从该AOV网络中删除该顶点2以及该顶点3,此时该顶点4的入度为0,该电子设备可以将该组件4的标识添加至该预设数组,得到该预设数组为[顶点1、顶点2、顶点3、顶点4]。然后将该预设数组确定为目标数组。

在一种可选的实现方式中,在该预设数组中包括的组件的数量与多个组件的数量不同的情况下,说明该剩余组件中不存在直接上游组件的数量为0的组件,可能该剩余组件存在相互引用的依赖关系,即该剩余组件的拓扑图中存在环,此时,该电子设备无法确定该剩余组件的启动顺序,该电子设备可以生成错误日志,用于记录该电子设备无法确定该多个组件之间的启动顺序。

本申请实施例中,由于在一个组件的直接上游组件的数量为0的情况下,说明此时该组件的启动不需要依赖于其他组件,因此,该电子设备可以将该组件的标识添加至预设数组,由于该目标数组用于表征该多个组件之间的启动顺序,因此该已添加至该预设数组的组件可以理解为已启动的组件,此时该电子设备从至少一个组件的直接上游组件中删除该已添加至该预设数组的组件,并给迭代执行上述操作,可以确定添加至预设数组的组件均为不需要依赖于其他组件启动的组件,可以提高多个组件之间的启动顺序确定的准确性。并且该电子设备在该预设数组中包括的组件的数量与多个组件的数量相同的情况下,将该预设数组确定为目标数组,可以提高目标数组中包括组件的数量的完整性,进而该电子设备基于该目标数组启动该目标云平台,可以提高该目标云平台启动成功的概率。

在本申请实施例的一种实现方式中,结合图2,如图5所示,上述电子设备基于多个组件之间的依赖关系,确定多个组件之间的启动顺序,具体包括S104-S105。

S104、电子设备响应于目标服务器的启动,确定目标云平台中包括的多个组件的数量。

可以理解的是,该目标服务器为部署该目标云平台的服务器。

应理解,该电子设备响应于目标服务器的启动,可以先检查该目标服务器的运行环境是否可以正常运行该目标云平台,具体的,该电子设备可以确定该目标云平台中包括的多个组件的数量。

本申请实施例中,该电子设备提前存储该多个组件的数量以及该多个组件中每个组件的标识。

可选地,该目标服务器的启动可以为目标服务器重新上电。

可选地,响应于该目标服务器的启动,该电子设备还可以获取启动路径、启动属主等。

可选地,该目标服务器可以为多个,该电子设备中可以存储多个服务器的基本信息,例如服务器的互联网协议(internet protocol,IP)地址,固资编码,产品序列号(serial number,SN),机架,机位,带外IP,带外用户名密码等,然后响应于目标服务器的启动,确定该目标服务器的基本信息。

在一种可选的实现方式中,该目标服务器的数量可以为多个,该电子设备可以检查该多个目标服务器中每个目标服务器的运行环境。

可选地,该电子设备中可以包括模板模块,该模板模块在可以包括部署模块,该部署模块中包括该环境变量启动路径、启动属主、启动顺序等基本信息,该模板采用json格式。

S105、电子设备确定目标服务器中是否包括多个组件中每个组件的安装包以及依赖包。

具体的,该电子设备确定该目标服务器中包括的安装包以及依赖包的数量是否正确,以及每个组件的安装包和依赖包是否正确。

可选地,该电子设备可以基于每个组件的安装包和依赖包的存储路径确定该目标服务器中是否存储有该每个组件的安装包和依赖包。

可选地,该电子设备可以基于该算法对该每个组件的安装包以及依赖包进行解析,确定该每个组件的安装包以及依赖包是否正确。

继续如图5所示,上述获取目标云平台中包括的多个组件之间的依赖关系,具体包括S1011。

S1011、在目标服务器中包括多个组件中每个组件的安装包以及依赖包的情况下,电子设备获取目标云平台中包括的多个组件之间的依赖关系。

应理解,在该目标服务器中包括多个组件中每个组件的安装包以及依赖包的情况下,说明该多个组件可以被启动,该目标服务器的运行环境正常,此时,该电子设备可以获取目标云平台中包括的多个组件之间的依赖关系,然后确定该多个组件之间的启动顺序,进而启动该目标云平台。

可选地,该电子设备还可以对该目标服务器的环境变量以及文件路径进行检查,避免在启动过程中无法找到正确配置,并且在该目标服务器的环境变量正常已经该文件路径正确的情况下,获取目标云平台中包括的多个组件之间的依赖关系。

在一种可选的实现方式中,该电子设备可以预知环境检查脚本,通过运行该环境检查脚本,对该目标服务器中包括的每个组件的安装包和依赖包的正确性、版本以及环境变量进行检查。

在一种可选的实现方式中,在目标服务器中不包括多个组件中每个组件的安装包以及依赖包的情况下,电子设备可以通过拉取镜像、拉取配置的方式修正该错误,在无法修复错误的情况下,生成错误日志,用于记录该环境检查异常。

本申请实施例中,该电子设备在该目标服务器启动之后,对目标服务器中包括的多个组件中每个组件的安装包和依赖包进行检查,并且在目标服务器中包括每个组件的安装包以及依赖包的情况下,获取目标云平台中包括的多个组件之间的依赖关系,可以避免在目标云平台的启动过程中因缺失部分关键内容而造成启动失败,保障了目标云平台的正常启动。

在本申请实施例的一种实现方式中,结合图2,如图6所示,在该电子设备按照多个组件之间的启动顺序启动目标云平台启动之后,该目标该云平台启动方法,还包括S106-S108。

S106、电子设备运行目标云平台。

S107、电子设备确定目标服务器的CPU负载和目标服务器的GPU负载。

可以理解的是,该电子设备在运行该目标云平台之后,可以检查该目标服务器的健康状态,以确定该目标服务器是否可以正常运行。

具体的,该电子设备可以检查该目标服务器的GPU负载和CPU负载。

S108、在目标服务器的CPU负载小于或等于第一负载阈值以及目标服务器的GPU负载小于或等于第二负载阈值的情况下,电子设备确定目标云平台启动成功。

可以理解的是,在目标服务器的CPU负载小于或等于第一负载阈值以及目标服务器的GPU负载小于或等于第二负载阈值的情况下,说明该目标服务器运行该目标云平台的负载在该目标服务器的负载能力之内,该目标服务器仍然可以正常运行,此时,该电子设备可以确定该目标云平台启动成功。

可选地,该电子设备还可以检查服务的数量和状态是否正常,以及检查该目标云平台的运行状态是否正常。

在一种可选的实现方式中,在目标服务器的健康状态异常(例如该目标服务器的CPU负载大于第一负载阈值以及目标服务器的GPU负载大于第二负载阈值)的情况下,该电子设备可以确定该目标服务器启动异常,并且生成错误日志,用于提示该目标服务器健康状态异常。

可选地,在上述该目标云平台启动失败的情况下,该电子设备还可以检查启动过程中生成的错误日志,并且生成提示信息,该提示信息中包括该错误日志中记录的内容。

在本申请实施例的一种实现方式中,如图7所示,执行本申请实施例提供的云平台启动方法的电子设备可以包括环境检查模块、模板模块、排序模块、启动模块、以及验证模块。

具体的,该环境检查模块用于在启动目标云平台前的检查目标服务器的运行环境。主要检查以下内容:第一,每个组件的安装包及其依赖包的完整性;第二,环境变量以及文件路径是否准确。

该模板模块为启动系统启动目标云平台时的依据。该模板模块中包含了启动脚本、应用安装包、全量服务器信息台账和部署模板。启动脚本是指在执行各组件启动的具体操作指令;应用安装包是目标云平台正常启动的基础;全量服务器台账中存储了服务器的基本信息,包含服务器IP,固资编码,SN号,机架,机位,带外IP,带外用户名密码等信息;部署模板包括多个组件的依赖关系。

该排序模板用于对目标云平台中包括多个组件的启动顺序进行排序。

该启动模块用于按照排序模块求解的多个组件之间的启动顺序启动目标云平台。

该验证模块用于验证目标云平台启动后目标服务器的健康状态。

可以理解的,在实际实施时,本公开实施例该的电子设备可以包含有用于实现前述对应云平台启动方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。

基于这样的理解,本公开实施例还对应提供一种云平台启动装置,图8示出了本公开实施例提供的云平台启动装置的结构示意图。如图8所示,该云平台启动装置20可以包括:获取模块201和处理模块202。

获取模块201,被配置为获取目标云平台中包括的多个组件之间的依赖关系。

处理模块202,被配置为基于该多个组件之间的依赖关系,对该多个组件进行拓扑排序,得到该多个组件之间的启动顺序。

处理模块202,还被配置为按照该多个组件之间的启动顺序启动该目标云平台。

可选地,处理模块202,具体被配置为基于所述多个组件之间的依赖关系以及拓扑排序算法,对所述多个组件进行拓扑排序,得到所述多个组件的启动顺序。

可选地,上述云平台启动装置,还包括确定模块203。

可选地,确定模块203,被配置为基于该多个组件之间的依赖关系以及该拓扑排序算法,确定该多个组件中每个组件的直接上游组件,其中,一个组件的直接上游组件为该组件的上游组件中与该组件存在依赖关系的组件。

处理模块202,具体被配置为基于该每个组件的直接上游组件,生成目标数组,该目标数组包括该多个组件中每个组件的标识,该目标数组用于表征该多个组件的启动顺序。

可选地,确定模块203,还具体被配置为步骤A、确定该多个组件中每个组件的直接上游组件的数量。

处理模块202,还具体被配置为步骤B、将该多个组件中,直接上游组件的数量为0的组件添加至预设数组。

处理模块202,还具体被配置为步骤C、从至少一个组件的直接上游组件中删除该直接上游组件的数量为0的组件,该至少一个组件的直接上游组件包括该直接上游组件的数量为0的组件。

处理模块202,还具体被配置为迭代执行步骤A、步骤B以及步骤C直至该预设数组中包括的组件的数量与该多个组件的数量相同。

确定模块203,还具体被配置为将该预设数组确定为该目标数组。

可选地,确定模块203,还被配置为响应于目标服务器的启动,确定该目标云平台中包括的多个组件的数量。

确定模块203,还被配置为确定该目标服务器中是否包括该多个组件中每个组件的安装包以及依赖包。

获取模块201,具体被配置为在该目标服务器中包括该多个组件中每个组件的安装包以及依赖包的情况下,获取该目标云平台中包括的多个组件之间的依赖关系。

可选地,处理模块202,还被配置为在该目标云平台启动失败的情况下,间隔预设时长重新按照该多个组件之间的启动顺序启动该目标云平台。

可选地,处理模块202,还被配置为在该目标云平台启动失败的次数大于或等于次数阈值的情况下,生成提示信息,该提示信息用于提示该目标云平台启动失败。

可选地,处理模块202,还被配置为运行该目标云平台。

确定模块203,还被配置为确定该目标服务器的CPU负载和该目标服务器的GPU负载。

确定模块203,还被配置为在该目标服务器的CPU负载小于或等于第一负载阈值以及该目标服务器的GPU负载小于或等于第二负载阈值的情况下,确定该目标云平台启动成功。

如上所述,本公开实施例可以根据上述方法示例对云平台启动装置进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。

关于上述实施例中的云平台启动装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。

图9是本公开提供的另一种云平台启动装置的结构示意图。如图9,该云平台启动装置30可以包括至少一个处理器301以及用于存储处理器可执行指令的存储器303。其中,处理器301被配置为执行存储器303中的指令,以实现上述实施例中的云平台启动方法。

另外,云平台启动装置30还可以包括通信总线302以及至少一个通信接口304。

处理器301可以是一个CPU,微处理单元,ASIC,或一个或多个用于控制本公开方案程序执行的集成电路。

通信总线302可包括一通路,在上述组件之间传送信息。

通信接口304,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。

存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。

其中,存储器303用于存储执行本公开方案的指令,并由处理器301来控制执行。处理器301用于执行存储器303中存储的指令,从而实现本公开方法中的功能。

在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,例如图9中的CPU0和CPU1。

在具体实现中,作为一种实施例,云平台启动装置30可以包括多个处理器,例如图9中的处理器301和处理器307。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在具体实现中,作为一种实施例,云平台启动装置30还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。例如,输出设备305可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emittingdiode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接受用户的输入。例如,输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。

本领域技术人员可以理解,图9中示出的结构并不构成对云平台启动装置30的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

另外,本公开还提供一种计算机可读存储介质,包括指令,当指令由电子设备的处理器执行时,使得电子设备执行如上述实施例所提供的云平台启动方法。

另外,本公开还提供一种计算机程序产品,包括指令,当指令由电子设备的处理器执行时,使得电子设备执行如上述实施例所提供的云平台启动方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种漆面识别方法、装置、存储介质及电子设备
  • 一种植物观赏方法、装置、电子设备和存储介质
  • 一种题目搜索、批改方法、装置、电子设备和存储介质
  • 一种虚拟形象视频播放方法、装置、电子设备及存储介质
  • 云平台测试方法、云平台测试装置、电子设备及存储介质
  • 冷启动产品的启动方法、装置、电子设备及存储介质
技术分类

06120116481656