一种应用部署方法、装置、计算机设备及存储介质
专利摘要:本申请实施例属于信息安全技术领域,涉及一种应用部署方法、装置、计算机设备及存储介质,该应用部署方法包括下述步骤:获取当前应用部署方式,对当前应用部署方式进行量化处理得到当前部署数组;获取预设应用部署的节点数M及M个节点期望分布的集群数N;获取M个节点的多个部署方式,分别对M个节点的多个部署方式进行量化处理得到的多个部署数组,并对M个节点的多个部署数组进行排序;根据集群数N从多个部署数组队列中获取标准部署数组;将当前部署数组与标准部署数组进行比较,并判断当前部署数组与标准部署数组之间的排序关系是否满足预设条件;若满足,则发送报警信息,并对当前部署方式进行调整。本发明能够提高应用部署的高可用性。
专利说明:
一种应用部署方法、装置、计算机设备及存储介质
[0001] 技术领域
[0002] 本申请涉及信息安全技术领域,尤其涉及一种应用部署方法、装置、计算机设备及存储介质。
[0003] 背景技术
[0004] 现有技术中,随着微服务框架的成熟和发展,服务按照不同的维度进行拆分,一次请求常常涉及多个不同的应用节点,为了保证服务的高可用,一个应用都是部署在多个服务器上,但是如果这些服务器共用一个物理机或者存储,一旦物理机宕机或者存储设备异常,那么所有的业务系统将全部不可用。通常在部署应用的时候,运维人员会提前规划好部署的方案以及部署服务器,需要运维人员人工去检查并判断应用部署的位置,耗时长并容易出错;并且,由于微服务部署的复杂性,运维难度也逐渐加大,运维人员很难手动去检查和保证应用部署的高可用性;可见,现有的应用部署方式存在高可用性低的问题。
[0005] 发明内容
[0006] 本申请实施例的目的在于提出一种应用部署方法,以解决现有技术中存在应用部署高可用性低的问题。
[0007] 为了解决上述技术问题,本申请实施例提供一种应用部署方法,采用了如下所述的技术方案:
[0008] 获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组;
[0009] 获取预设应用部署的节点数M及所述M个节点期望分布的集群数N;
[0010] 获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到的对应的多个部署数组,并对所述M个节点的多个部署数组进行排序;
[0011] 根据集群数N从排序好的多个部署数组队列中获取标准部署数组;
[0012] 将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;
[0013] 若满足,则发送报警信息,并对当前部署方式进行调整。
[0014] 进一步的,所述获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序的步骤包括:
[0015] 获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组;
[0016] 获取每个部署数组的数组长度;
[0017] 计算每个部署数组的数组方差;
[0018] 获取每个部署数组中最大元素值;
[0019] 根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
[0020] 进一步的,所述根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序的步骤具体包括:
[0021] 依次将多个部署数组的数组长度进行相互比较;
[0022] 若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序;
[0023] 若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
[0024] 进一步的,所述根据集群数N从排序好的多个部署数组队列中获取标准部署数组的步骤包括:
[0025] 从排序好的多个部署数组中获取M个节点部署在N个集群上的部署数组中数组方差最小的部署数组,并将M个节点部署在N个集群上的部署数组中数组方差最小的部署数组确定为标准部署数组。
[0026] 进一步的,所述将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件的步骤包括:
[0027] 获取当前部署数组及标准部署数组在排序队列中的排序序号;
[0028] 将当前部署数组与标准部署数组的排序序号进行比较;
[0029] 若所述当前部署数组排在。所述标准部署数组之前,则确认所述当前部署数组满足预设条件。
[0030] 为了解决上述技术问题,本申请实施例还提供一种应用部署装置,采用了如下所述的技术方案:
[0031] 第一获取模块,用于获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组;
[0032] 第二获取模块,用于获取预设应用部署的节点数M及所述M个节点期望分布的集群数N;
[0033] 排序模块,用于获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序;
[0034] 第三获取模块,用于根据集群数N从排序好的多个部署数组队列中获取标准部署数组;
[0035] 判断模块,用于将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;
[0036] 及报警模块,用于若满足,则发送报警信息,并对当前部署方式进行调整。
[0037] 进一步的,所述排序模块包括:
[0038] 第一获取子模块,用于获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组;
[0039] 第二获取子模块,用于获取每个部署数组的数组长度;
[0040] 计算子模块,用于计算每个部署数组的数组方差;
[0041] 第三获取子模块,用于获取每个部署数组中最大元素值;
[0042] 排序子模块,用于根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
[0043] 进一步的,所述排序子模块模块包括:
[0044] 第一比较子单元,用于依次将多个部署数组的数组长度进行相互比较;
[0045] 第二比较子单元,用于若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序;
[0046] 第三比较子单元,用于若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
[0047] 为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述实施例所述的应用部署方法的步骤。
[0048] 为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
[0049] 所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的应用部署方法的步骤。
[0050] 与现有技术相比,本申请实施例主要有以下有益效果:获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组;获取预设应用部署的节点数M及所述M个节点期望分布的集群数N,其中,所述N小于等于M;获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序;根据集群数N从排序好的多个部署数组队列中获取标准部署数组;将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;用于若满足,则发送报警信息,并对当前部署方式进行调整。本发明通过获取应用节点数M及期望部署集群数N进而获取到标准部署数组,也即标准部署方式,检测当前部署方式与标准部署方式进行比较,若满足预设条件,则报警,由此判断当前部署方式的高可用性低,并进行自动迁移调整,调整到当前应用部署方式不满足预设条件后停止报警,由此判断当前部署方式的均匀性,和实现应用部署调整。进而提高当前应用部署的高可用性。
[0051] 附图说明
[0052] 为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053] 图1是本申请可以应用于其中的示例性系统架构图;
[0054] 图2是本申请的应用部署方法的一个实施例的流程图;
[0055] 图3是图2中步骤203的一种具体实施方式的流程图;
[0056] 图4是图3中步骤305的一种具体实施方式的流程图;
[0057] 图5是图2中步骤204的一种具体实施方式的流程图;
[0058] 图6是图2中步骤205的一种具体实施方式的流程图;
[0059] 图7是根据本申请的应用部署装置的一个实施例的结构示意图;
[0060] 图8是图7所示排序模块一种具体实施方式的结构示意图;
[0061] 图9是图8所示排序子模块一种具体实施方式的结构示意图;
[0062] 图10是根据本申请的计算机设备的一个实施例的结构示意图。
[0063] 具体实施方式
[0064] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
[0065] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0066] 为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0067] 如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0068] 用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
[0069] 终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
[0070] 服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
[0071] 需要说明的是,本申请实施例所提供的应用部署方法一般由服务器/终端设备执行,相应地,应用部署装置一般设置于服务器/终端设备中。
[0072] 应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0073] 继续参考图2,示出了根据本申请的应用部署方法的一个实施例的流程图。所述的应用部署方法,包括以下步骤:
[0074] 步骤201,获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组。
[0075] 在本实施例中,该应用部署方法运行于其上的电子设备(例如图1所示的服务器/终端设备)。其中,上述当前部署方式,即为应用当前已经部署好的部署方式。当前部署数组可以是依据应用部署节点数以及集群数组成的,也可以说是对应用部署方式对应量化得到的。这里所说的节点相当于一个服务器,集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。当前部署数组便于用户了解该应用当前部署在多少个节点上,以及这些节点分别分布在多少个集群上,这样应用部署更数据化,便于分析应用部署情况。例如,用户想将该应用部署在8个节点上,期望将这8个节点分别在4个集群上;而用户对系统中已有的集群个数未知,于是将这8个节点输入系统,系统将这8个节点随机部署在多个集群上,具体的部署在多少个集群,且部署在哪些集群上也是未知,应用部署是否均匀或合理也是未知。只有等待系统自动检测、识别并返回当前应用的当前部署方式,对所述当前部署方式进行量化处理后得到当前部署数组,用户才知道该应用的部署情况,用户可以通过显示屏等获取到当前应用部署方式。但是用户得到的当前应用部署情况不一定是用户想要的8个节点分布在4个集群上,比如,得到的当前部署数组为[1,1,6],[1,1,6]该部署数组表示的是,应用部署在3个集群上,并且有1个集群上部署了1个节点、有1个集群上部署了1个节点、另1个集群上部署了6个节点。这样的部署方式可以说是不合理的,因为,当部署了6个节点的这个集群损坏,也就意味着有6个节点不可用,仅剩余2个节点可用了,这样的应用部署方式高可用性比较低。
[0076] 步骤202,获取预设应用部署的节点数M及所述M个节点期望分布的集群数N。
[0077] 在本实施例中,上述预设应用部署的节点数M是用户根据应用需要预先输入的,M的取值为大于等于2的整数。集群数N也是用户根据需要预设输入的,N的取值为小于等于M。集群数N的取值一般都是用户根据应用节点数M进行设置的,且认为是M个节点至少部署在N个集群上。比如,当M=8,N=4;意思就是,将应用部署在8个节点上,且用户期望的这8个节点至少部署在4个集群上。节点数M及集群数N均可以根据系统的高可用性高低要求进行设置并输入系统中。
[0078] 步骤203,获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序。
[0079] 在本实施例中,上述多个部署方式可以是将M个节点以不同的集群数进行部署得到的不重复的所有部署方式的总和。上述分别对所述M个节点的多个部署方式进行量化得到的多个部署数组还可以是将M个节点依据数字均匀分布、相同的应用多个节点部署的时候尽可能分布在不同的集群上、以及当集群故障或者存储设备异常的时候单点集群能力不要下降的太快的要求去量化多个部署方式得到对应的多个部署数组。得到多个部署数组后,对该多个部署数组进行排序,进而得到应该部署的所有部署方式对应的部署数组的排序队列。需要说明的是,当运维时,只要在开始部署应用的时候输入最初的应用部署信息,系统自动去读取这些部署信息,并列举该应用部署的所有部署可能性,也即是该步骤203中的多个部署方式。上述单点集群能力不要下降得太快可以是指每个部署数组中的组成元素均是按部署在每个集群上的节点个数从小到大,从左到右进行排序。
[0080] 步骤204,根据集群数N从排序好的多个部署数组队列中获取标准部署数组。
[0081] 在本实施例中,其中,标准部署数组可以是部署在集群数N所形成的部署数组中数组方差最小的部署数组,比如,M个节点至少部署在N个集群上,当数组长度为N的时候方差最小的数组就是我们要找的维度标准,也即标准部署数组。标准部署数组为应用部署均匀或不均匀,合理或不合理,高可用性低或高可用性高的分界线。
[0082] 步骤205,将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件。
[0083] 在本实施例中,上述预设条件可以是当前部署数组在排序好的部署数组队列中的位置在标准数组在队列中的位置之前。具体的,将当前部署数组与标准部署数组进行比较,并进行排序,得到排序结果。若当前部署数组排在标准部署数组之前则确定当前部署数组满足条件,若当前部署数组排在标准部署数组之后,则确定当前部署数组不满足条件。
[0084] 在另一种实施例中,根据期望集群数生成告警阀值,若当前部署方式满足告警阀值,说明应用部署不均匀,若不满足则说明应用部署在能接受的范围内。
[0085] 步骤206,若满足,则发送报警信息,并对当前部署信息进行调整。
[0086] 其中,上述报警信息可以称为告警信息,也可以称为提示信息。若当前部署数组满足预设条件,则发送报警信息给用户,用以提示用户当前应用部署方式不均匀,没有达到期望的部署标准。在发送报警信息后,系统可以自动将节点部署在其他的集群上,也就是说系统可以自动迁移服务器到现有的集群上。进一步的,若用户需要调整就可以建集群、或者将节点迁移到其他集群得到应用新的当前部署数组,然后在与标准部署数组进行比较,若新的当前部署数组还是不满足预设条件,则继续发送报警信息,直到该应用的当前部署数组在标准数组之后,才停止发送报警信息。进而使得应用部署均匀,提高应用部署的高可用。
[0087] 在本发明一个可行实施例中,用户在收到报警信息后,用户可以选择无视该报警信息。需要说明的是,若用户无视该报警信息,就可以不需要调整该应用的部署方式。
[0088] 在本发明另一个实施例中,当发生物理机宕机或者存储设备异常时,检测到当前应用部署不均匀影响应用的高可用,也可以发送告警信息,并自动迁移,或者等待用户自主选择是否迁移。
[0089] 在本发明实施例中,本发明通过获取应用节点数M及期望部署集群数N进而获取到标准部署数组,也即标准部署方式,检测当前部署方式与标准部署方式进行比较,若满足预设条件,则报警,由此判断当前部署方式的高可用性低,并进行自动迁移调整,调整到当前应用部署方式不满足预设条件后停止报警,由此判断当前部署方式的均匀性,和实现应用部署调整。进而提高当前应用部署的高可用性。这样运维人员不需要人工的去检查应用部署的均匀性,大大减少了运维成本,当故障发生的时候也不会因为部署的问题造成服务大面积不可用。
[0090] 在本实施例的一些可选的实现方式中,继续参见图3,图3是图2中步骤203的一种具体实施方式的流程图;在步骤201,获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到的对应的多个部署数组,并对所述M个节点的多个部署数组进行排序中,上述电子设备还可以执行以下步骤:
[0091] 步骤301,获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组。
[0092] 步骤302,获取每个部署数组的数组长度。
[0093] 步骤303,计算每个部署数组的数组方差。
[0094] 步骤304,获取每个部署数组中最大元素值。
[0095] 步骤305,根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
[0096] 其中,上述M个节点依次部署在1至M个集群的多个部署方式可以是M个节点部署在1个集群上得到的所有部署方式、M个节点部署在2个集群上得到的所有部署方式、M个节点部署在3个集群上得到的所有部署方式、…、以及M个节点部署在M个集群上得到的所有部署方式的总和。上述数组长度为M个节点部署的集群数,比如,M个节点部署在4个集群上,那么部署在4个集群上的所有部署数组的数组长度均为4。每个部署数组中的组成元素均是按部署在每个集群上的节点个数从小到大,从左到右进行排序。上述数组方差可以是每个部署数组的方差。部署在同一集群数上的部署数组的数组方差越小说明部署数组中的节点部署越均匀。上述每个部署数组中最大元素值可以是按部署在每个集群上的节点个数从小到大,从左到右进行排序的部署数组中最后一个元素。更需要说明的是,M个节点部署在某一个集群数大于1或者集群数小于总节点数上时,会存在多种部署方式,且每种部署方式均不同。最后根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对M个节点依次部署在1至M个集群上的所有部署数组进行排序。
[0097] 在本发明实施例中,假设应用要部署M个节点,至少要分布在N个集群上,穷举应用部署的全部方案[k(i)]=M,这是一个数组,数组中值得和为M,数组中的值是有序的。在本实施例中,节点数M可以为大于等于2的整数。
[0098] 示例性的,节点数M为8时,8个节点部署在1至8个集群得到的所有部署方式对应的部署数组、数组方差、数组长度、部署数组中最大元素值如下:
[0099] 1)、8个节点部署在1个集群上时,有1个部署方式,对1个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0100] [8]:0.0:1:8;
[0101] 2)、8个节点部署在2个集群上时,有4个部署方式,对4个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0102] [1,7]:9.0:2:7;
[0103] [2,6]:4.0:2:6;
[0104] [3,5]:1.0:2:5;
[0105] [4,4]:0.0:2:4;
[0106] 3)、8个节点部署在3个集群上时,有5个部署方式,对5个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0107] [1,1,6]:5.555555555555556:3:6;
[0108] [1,2,5]:2.8888888888888893:3:5;
[0109] [1,3,4]:1.5555555555555554:3:4;
[0110] [2,2,4]:0.8888888888888888:3:4;
[0111] [2,3,3]:0.22222222222222224:3:3;
[0112] 4)、8个节点部署在4集群上时,有5个部署方式,对5个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0113] [1,1,1,5]:3.0:4:5;
[0114] [1,1,2,4]:1.5:4:4;
[0115] [1,1,3,3]:1.0:4:3;
[0116] [1,2,2,3]:0.5:4:3;
[0117] [2,2,2,2]:0.0:4:2;
[0118] 5)、8个节点部署在5个集群上时,有3个部署方式,对3个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0119] [1,1,1,1,4]:1.44:5:4;
[0120] [1,1,1,2,3]:0.64:5:3;
[0121] [1,1,2,2,2]:0.24:5:2;
[0122] 6)、8个节点部署在6个集群上时,有2个部署方式,对2个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0123] [1,1,1,1,1,3]:0.5555555555555556:6:3;
[0124] [1,1,1,1,2,2]:0.22222222222222224:6:2;
[0125] 7)、8个节点部署在7个集群上时,有1个部署方式,对1个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0126] [1,1,1,1,1,1,2]:0.12244897959183675:7:2;
[0127] 8)、8个节点部署在8个集群上时,有1个部署方式,对1个部署方式量化得到的部署数组、数组方差、数组长度、数组最大元素值具体如下:
[0128] [1,1,1,1,1,1,1,1]:0.0:8:1。
[0129] 由上可知,8个节点依次部署在1至8个集群上时,得到的所有部署方式为22个,也即M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组。
[0130] 在本实施例中,当获取到用户输入的应用部署节点数时,能够自动获取到应用部署节点的所有部署可能性,也即所有的部署方式。便于系统调整应用部署进而提高应用部署的高可用。
[0131] 在一些可选的实现方式中,继续参见图4,图4是图3中步骤305的一种具体实施方式的流程图;在步骤305,根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序中,上述电子设备可以执行以下步骤:
[0132] 步骤401,依次将多个部署数组的数组长度进行相互比较。
[0133] 步骤402,若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序。
[0134] 步骤403,若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
[0135] 根据步骤401、402、403可以对M个节点部署在1至M个集群上的所有的部署数组进行排序。
[0136] 示例性的,例如:节点数M为8个,那么,8个节点依次部署在1至8个集群上得到的多个部署数组排序序号-部署数组-数组方差-数组长度-部署数组最大元素值排序如下:
[0137] 1、[8]:0.0:1:8;
[0138] 2、[1,7]:9.0:2:7;
[0139] 3、[2,6]:4.0:2:6;
[0140] 4、[1,1,6]:5.555555555555556:3:6;
[0141] 5、[3,5]:1.0:2:5;
[0142] 6、[1,2,5]:2.8888888888888893:3:5;
[0143] 7、[1,1,1,5]:3.0:4:5;
[0144] 8、[4,4]:0.0:2:4;
[0145] 9、[1,3,4]:1.5555555555555554:3:4;
[0146] 10、[2,2,4]:0.8888888888888888:3:4;
[0147] 11、[1,1,2,4]:1.5:4:4;
[0148] 12、[1,1,1,1,4]:1.44:5:4;
[0149] 13、[2,3,3]:0.22222222222222224:3:3;
[0150] 14、[1,1,3,3]:1.0:4:3;
[0151] 15、[1,2,2,3]:0.5:4:3;
[0152] 16、[1,1,1,2,3]:0.64:5:3;
[0153] 17、[1,1,1,1,1,3]:0.5555555555555556:6:3;
[0154] 18、[2,2,2,2]:0.0:4:2;
[0155] 19、[1,1,2,2,2]:0.24:5:2;
[0156] 20、[1,1,1,1,2,2]:0.22222222222222224:6:3;
[0157] 21、[1,1,1,1,1,1,2]:0.12244897959183675:7:2;
[0158] 22、[1,1,1,1,1,1,1,1]:0.0:8:1。
[0159] 由上可知,进而得到M个节点部署在1至M个集群上的所有可能性部署方式对应的数组,在这里即是,8个节点部署在1至8个集群上的22个部署方式对应的22个部署数组。在本实施例中,节点数M可以为大于等于2的整数。
[0160] 在本实施例中,能够对应用部署节点数的全部部署方式进行量化后进行高可用排序,得到排序队列。这样就可以知道每种部署方式之间的高可用性。这样便于判断当前部署方式的高可用性以及便于调整当前应用的部署方式,进而提高应用部署的高可用性。
[0161] 在一些可选的实现方式中,继续参见图5,图5是图2中步骤204的一种具体实施方式的流程图;在步骤204,所述根据集群数N从排序好的多个部署数组队列中获取标准部署数组中,上述电子设备可以执行以下步骤:
[0162] 步骤501,从排序好的多个部署数组中获取M个节点部署在N个集群上的部署数组中数组方差最小的部署数组,并将M个节点部署在N个集群上的部署数组中数组方差最小的部署数组确定为标准部署数组。
[0163] 在本实施例中,集群数N为用户期望部署的集群数,也可以说是系统部署时的最低要求。例如,希望8个节点部署在4个集群上,那么得到的部署数组按照步骤401、402、403中的排序策略进行排序得到的部署数组以及对应的数组方差、数组长度、部署数组中最大元素值具体为:
[0164] [1,1,1,5]:3.0:4:5;
[0165] [1,1,2,4]:1.5:4:4;
[0166] [1,1,3,3]:1.0:4:3;
[0167] [1,2,2,3]:0.5:4:3;
[0168] [2,2,2,2]:0.0:4:2;
[0169] 由此可知,8个节点部署在4个集群上的所有部署数组中[2,2,2,2]的数组方差最小,则将[2,2,2,2]作为标准部署数组。并且[2,2,2,2]作为排序好的多个部署数组是否部署均匀的分界线,排在[2,2,2,2]之前的为不均匀或不合理,排在[2,2,2,2]之后的为均匀或合理。
[0170] 在本发明实施例中,在获取到期望集群数时,能够快速的得到标准部署方式,进而在步骤401、402、403排序得到的排序队列中所有部署方式的与标准部署方式的情况,由此判断当前应用部署的高可用性。便于后期调整,提高应用部署的高可用性。
[0171] 在一些可选的实现方式中,继续参见图6,图6是图2中步骤205的一种具体实施方式的流程图;在步骤205,所述将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件中,上述电子设备可以执行以下步骤:
[0172] 步骤601,获取当前部署数组及标准部署数组在排序队列中的排序序号。
[0173] 步骤602,将当前部署数组与标准部署数组的排序序号进行比较。
[0174] 步骤603,若所述当前部署数组排在所述标准部署数组之前,则确认所述当前部署数组满足预设条件。
[0175] 具体的,在确定标准部署数组后,获取当前应用部署及标准部署数组在步骤401、402、403排序好的部署数组队列中的排列序号。若当前部署数组在排序队列中的序号在标准部署数组之前,则当前部署数组与标准部署数组之间的排序关系满足预设条件,也即当前部署数组部署不均匀或不合理,当前应用部署高可用性低。若当前部署数组在排序队列中的序号在标准部署数组之后,则当前部署数组与标准部署数组之间的排序关系不满足预设条件,也即当前部署数组部署均匀或合理,当前应用部署高可用性高。
[0176] 在本发明一个实施例中,获取所述当前部署数组的数组方差、数组长度、以及部署数组中最大元素值;将所述当前部署数组的数组方差、数组长度、部署数组中最大元素值与标准部署数组的数组方差、数组长度、部署数组中最大元素值进行比较,将所述当前部署数组与所述标准部署数组进行排序。
[0177] 根据排序结果进行判断当前部署数组与标准部署数组之间的排序关系是否满足预设条件,若当前部署数组排在标准部署数组的前面,则说明当前部署方式满足预设条件。
[0178] 具体的,当前部署数组与标准部署数组的排序方式为:将当前部署数组的数组长度与标准部署数组的数组长度进行比较;若当前部署数组及标准部署数组的数组长度相同,则比较当前部署数组及标准部署数组的数组方差,根据数组方差的大小,按大到小进行排序;若当前部署数组及标准部署数组的数组长度不同,则比较当前部署数组及标准部署数组中最大元素值,根据当前部署数组及标准部署数组中最大元素值的大小,按大到小进行排序;以及若当前部署数组及标准部署数组的最大元素值的大小相同,则比较当前部署数组及标准部署数组的数组长度,根据部署数组的数组长度的大小,按小到大进行排序,进而得到排序结果。
[0179] 例如,当前部署数组及其数组长度、部署数组中最大元素值为[1,3,4]:1.5555555555555554:3:4;标准部署数组及其数组长度、部署数组中最大元素值为[1,1,2,2,2]:0.24:5:2。那么根据上述当前部署数组与标准部署数组的排序方式可得到当前部署数组[1,3,4]:1.5555555555555554:3:4排在标准部署数组[1,1,2,2,2]:0.24:5:2之前,那么可以确定,当前部署方式满足预设条件。则可执行步骤206发送告警信息。
[0180] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
[0181] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0182] 进一步参考图7,作为对上述图2所示方法的实现,本申请提供了一种应用部署装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0183] 如图7所示,图7是根据本申请的应用部署装置的一个实施例的结构示意图;本实施例所述的应用部署装置包括:第一获取模块11、第二获取模块12、排序模块13、第三获取模块14、判断模块15及报警模块16。其中,
[0184] 第一获取模块11,用于获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组。
[0185] 第二获取模块12,用于获取预设应用部署的节点数M及所述M个节点期望分布的集群数N。
[0186] 排序模块13,用于获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序。
[0187] 第三获取模块14,用于根据集群数N从排序好的多个部署数组队列中获取标准部署数组。
[0188] 判断模块15,用于将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;及报警模块16,用于若满足,则发送报警信息,并对当前部署信息进行调整。
[0189] 在本发明实施例中,本发明通过获取应用节点数M及期望部署集群数N进而获取到标准部署数组,也即标准部署方式,检测当前部署方式与标准部署方式进行比较,若不满足预设条件,则判断当前应用部署不均匀,由此判断当前部署方式的高可用性低,则报警,并进行自动迁移调整,直到当前应用部署方式满足预设条件,由此判断当前部署方式均匀,进而提高当前应用部署的高可用性。这样运维人员不需要人工的去检查应用部署的均匀性,大大减少了运维成本,当故障发生的时候也不会因为部署的问题造成服务大面积不可用。
[0190] 参阅图8,图8是图7所示排序模块13一种具体实施方式的结构示意图;该排序模块13包括:第一获取子模块131、第三获取子模块134、计算子模块133、第三获取子模块134及排序子模块135。
[0191] 第一获取子模块131,用于获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组。
[0192] 第三获取子模块134,用于获取每个部署数组的数组长度。
[0193] 计算子模块133,用于计算每个部署数组的数组方差。
[0194] 第三获取子模块134,用于获取每个部署数组中最大元素值。
[0195] 排序子模块135,用于根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
[0196] 参阅图9,图9是图8所示排序子模块135一种具体实施方式的结构示意图;该排序子模块135包括第一比较子单元1351、第二比较子单元1352、第三比较子单元1353,其中,
[0197] 第一比较子单元1351,用于依次将多个部署数组的数组长度进行相互比较;
[0198] 第二比较子单元1352,用于若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序。
[0199] 第三比较子单元1353,用于若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
[0200] 在本实施例的一些可选的实现方式中,上述第三获取模块14还用于从排序好的多个部署数组中获取M个节点部署在N个集群上的部署数组中数组方差最小的部署数组,并将M个节点部署在N个集群上的部署数组中数组方差最小的部署数组确定为标准部署数组。
[0201] 在本实施例的一些可选的实现方式中,上述判断模块15还用于获取当前部署数组及标准部署数组在排序队列中的排序序号;将当前部署数组与标准部署数组的排序序号进行比较;若所述当前部署数组排在所述标准部署数组之前,则确认所述当前部署数组满足预设条件。
[0202] 另一种实施例中,上述判断模块15还用于获取所述当前部署数组的数组方差、数组长度、以及部署数组中最大元素值;将所述当前部署数组的数组方差、数组长度、部署数组中最大元素值与标准部署数组的数组方差、数组长度、部署数组中最大元素值进行比较,将所述当前部署数组与所述标准部署数组进行排序。
[0203] 根据排序结果进行判断当前部署数组与标准部署数组之间的排序关系是否满足预设条件,若当前部署数组排在标准部署数组的前面,则说明当前部署方式满足预设条件。
[0204] 为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。
[0205] 所述计算机设备6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有组件61-63的计算机设备6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
[0206] 所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
[0207] 所述存储器61至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器61可以是所述计算机设备6的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器61也可以是所述计算机设备6的外部存储设备,例如该计算机设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括其外部存储设备。本实施例中,所述存储器61通常用于存储安装于所述计算机设备6的操作系统和各类应用软件,例如应用不是方法的程序代码等。此外,所述存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0208] 所述处理器62在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制所述计算机设备6的总体操作。本实施例中,所述处理器62用于运行所述存储器61中存储的程序代码或者处理数据,例如运行所述应用部署方法的程序代码。
[0209] 所述网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在所述计算机设备6与其他电子设备之间建立通信连接。
[0210] 本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有应用部署程序,所述应用部署程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的应用部署方法的步骤。
[0211] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
[0212] 显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
权利要求:1.一种应用部署方法,其特征在于,包括下述步骤:
获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组;
获取预设应用部署的节点数M及所述M个节点期望分布的集群数N;
获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序;
根据集群数N从排序好的多个部署数组队列中获取标准部署数组;
将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;
若满足,则发送报警信息,并对当前部署方式进行调整。
2.根据权利要求1所述的应用部署方法,其特征在于,所述获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到对应的多个部署数组,并对所述M个节点的多个部署数组进行排序的步骤包括:
获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组;
获取每个部署数组的数组长度;
计算每个部署数组的数组方差;
获取每个部署数组中最大元素值;
根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
3.根据权利要求2所述的应用部署方法,其特征在于,所述根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序的步骤具体包括:
依次将多个部署数组的数组长度进行相互比较;
若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序;
若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
4.根据权利要求2所述的应用部署方法,其特征在于,所述根据集群数N从排序好的多个部署数组队列中获取标准部署数组的步骤包括:
从排序好的多个部署数组中获取M个节点部署在N个集群上的部署数组中数组方差最小的部署数组,并将M个节点部署在N个集群上的部署数组中数组方差最小的部署数组确定为标准部署数组。
5.根据权利要求1-4中任一项所述的应用部署方法,其特征在于,所述将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件的步骤包括:
获取当前部署数组及标准部署数组在排序队列中的排序序号;
将当前部署数组与标准部署数组的排序序号进行比较;
若所述当前部署数组排在所述标准部署数组之前,则确认所述当前部署数组满足预设条件。
6.一种应用部署装置,其特征在于,包括:
第一获取模块,用于获取当前应用部署方式,对所述当前应用部署方式进行量化处理得到当前部署数组;
第二获取模块,用于获取预设应用部署的节点数M及所述M个节点期望分布的集群数N;
排序模块,用于获取所述M个节点的多个部署方式,分别对所述M个节点的多个部署方式进行量化处理得到的对应的多个部署数组,并对所述M个节点的多个部署数组进行排序;
第三获取模块,用于根据集群数N从排序好的多个部署数组队列中获取标准部署数组;
判断模块,用于将所述当前部署数组与所述标准部署数组进行比较,并判断所述当前部署数组与所述标准部署数组之间的排序关系是否满足预设条件;
及报警模块,用于若满足,则发送报警信息,并对当前部署方式进行调整。
7.根据权利要求6所述的应用部署装置,其特征在于,所述排序模块包括:
第一获取子模块,用于获取M个节点依次部署在1至M个集群的多个部署方式,分别对所述M个节点依次部署在1至M个集群的多个部署方式进行量化得到对应的多个部署数组;
第二获取子模块,用于获取每个部署数组的数组长度;
计算子模块,用于计算每个部署数组的数组方差;
第三获取子模块,用于获取每个部署数组中最大元素值;
排序子模块,用于根据每个部署数组的数组长度、数组方差及部署数组中最大元素值对多个部署数组进行排序。
8.根据权利要求7所述的应用部署装置,其特征在于,所述排序子模块模块包括:
第一比较子单元,用于依次将多个部署数组的数组长度进行相互比较;
第二比较子单元,用于若部署数组的数组长度相同,则比较部署数组的数组方差,根据数组方差的大小,按大到小进行排序;
第三比较子单元,用于若部署数组的数组长度不同,则比较部署数组中最大元素值的大小;若部署数组中最大元素值的大小不同,则根据部署数组中最大元素值的大小,按大到小进行排序;若部署数组中最大元素值的大小相同,则根据部署数组的数组长度的大小,按小到大进行排序。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的应用部署方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的应用部署方法的步骤。
公开号:CN110597682
申请号:CN201910648310.7A
发明人:戴开云
申请人:平安科技(深圳)有限公司
申请日:2019-07-18
公开日:2019-12-20