基于应用关系网络的最优化应用资源分布策略的制作方法

文档序号:14847764发布日期:2018-06-30 16:57阅读:249来源:国知局
基于应用关系网络的最优化应用资源分布策略的制作方法

本发明涉及云计算技术领域的一种资源分配策略,具体地,涉及一种基于应用关系网络的最优化应用资源分布策略。



背景技术:

在当今的Web和移动应用开发过程中,开发者倾向于基于服务去构建应用程序,而不是从车轮造起。一般情况下,这些服务称之为微服务——单用途,API可访问的应用变成了构建大型应用的基石。“微服务”架构是近期软件应用领域非常热门的概念,可以大幅度改善传统应用开发遇到的一些典型问题。例如,使用传统的整体式架构(Monolithic Architecture)应用开发系统,如CRM、ERP等大型应用,随着新需求的不断增加,企业更新和修复大型整体式应用变得越来越困难。随着移动互联网的发展,企业被迫将其应用迁移至现代化UI界面架构以便能兼容移动设备,这要求企业能实现应用功能的快速上线。

基于这种需求,越来越多的企业和行业的复杂系统的构建模式逐渐从传统的单体应用向微服务架构开始改变。这种改变带来的直接后果就是行业业务将从由几个相对独立的大型单体应用构成转变为由大量的相互有关联的微应用构成。这种模式将有力的改善行业业务系统的更新发展方式,推动行业业务应用以互联网的方式以迭代滚动的爆发式增长。这也将为行业业务带来无尽的活力。现在正在逐渐变为热点的DevOps相关的一系列技术以及基于云平台的应用自动化部署和发布等能力的大幅度发展都将有力的推动这一进程。

但是这种行业业务系统由大量微应用构成的方式也为系统的运维带来了新的挑战。应用的增加带来了运维的复杂度。尤其在云服务时代,这些应用通常都部署在云平台上以实现的资源的优化供应。但是现在的主要问题是如何为这些应用合理有效的分配资源。在运维过程中,如果我们需要对某个资源进行维护操作或者对某个资源进行故障排除,如何保证这种操作对整个业务系统的影响最小,从而降低运维成本,实现最优化的应用资源分配,成为本领域亟待解决的问题。

经过检索发现:

申请号为:201410189197.8的中国专利申请《一种云计算中资源分配策略的评估方法》,公开了一种云计算中资源分配策略的评估方法,包括:将部署在云计算平台上的项目划分为多个功能模块,根据功能模块之间的关系进行建模以生成工作流模型;根据资源分配策略将云计算资源分配至每个功能模块,确定每个功能模块的运行参数实现配置工作流模型;将工作流模型映射为时间自动机模型;将功能模块的运行时间误差及运行时间误差分布映射为时间自动机模型中子模块的时间误差;设定检验标准,计算时间自动机模型符合检验标准的概率值作为资源分配策略的评估结果。该方法可以自动化地分析当前分配策略下用户需求是否可被满足,并且定量地分析当前分配策略的可靠性,从而降低违反服务层次协议的几率。

上述方法仍存在如下问题:

该方法是基于项目的功能模块流形成的,这种面向对象的方法存在功能模块并未进行权重设置,都是平等的分配资源,并根据每个模块的故障率进行资源分配的合理性评估,并不能检验出功能模块和资源的最佳分配方案的问题;

该方法是根据工作流的方式进行的建模,这种建模方法存在无法根据应用的升级变更动态的调整应用资源的分配,达到运维资源最小化代价的问题。

目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。



技术实现要素:

针对现有技术中存在的上述不足,本发明的目的是提供一种基于应用关系网络的最优化应用资源分布策略。该策略基于应用所有的微服务关系形成的一个策略,并基于应用微服务关系网络和应用资源关系网络形成的一个基于应用重要性指标来定义部署策略。

本发明是通过以下技术方案实现的。

一种基于应用关系网络的最优化应用资源分布策略,包括如下步骤:

步骤S1,基于应用服务依赖关系进行应用重要性指标计算;

步骤S2,根据应用重要性指标,计算最小化资源运维影响下的应用资源分布策略;

步骤S3,根据应用资源分布策略动态调整应用的资源分布情况。

优选地,步骤S1,包括如下子步骤:

步骤S1.1,应用权重的分析:通过应用与应用之间的服务调用,得出相关应用的权重;

步骤S1.2,应用重要性的演进:在每个新应用部署后或者旧应用下线后周期性地重新计算系统中所有应用的重要性指标。

优选地,步骤S1.1采用多重链接的应用网络节点权重计算方式,包括如下过程:

定义1,应用网络有向图为G,如下式所示:

G(E,V)

式中,E表示节点关系集合,V表示节点集合;

定义2,有效服务引用集合Ef(u),如下式所示:

Ef(u)={v|v∈Follower(u)∩Response(u)>ε}

式中,ε是非负常数阈值,表示节点u的引用服务节点V对节点u反馈的程度门限,超过该阈值且属于节点u的应用节点为有效应用;

定义3,由链接关系所产生的节点权值IRL(Ui),其计算方法如下式所示:

IRL(Ui)=δN+(1-δ)∑Uj∈Follower(ui)IRL(ui)L(ui)

式中,IRL(Ui)表示节点Ui链接关系产生的节点权值,Follower(ui)为节点Ui所有关联服务集合,L(ui)为节点Ui关联服务数目,δ是介于0和1的阻尼系数,N为网络图中的总节点数。

优选地,步骤S2,具体为:

对于指定资源R,分析出R在运维时将要直接影响的应用,设这些应用为DE(R);根据应用服务依赖关系图,找到所有被影响的应用,最终所有被影响的应用的范围是整个应用服务依赖关系图中的一个子图,这个子图中所有应用的权值被定义为资源R的影响因子F(R);

假设系统中可被运维的总资源量是R1到Rn,那么运维对整个行业业务的总影响因子就是最优化的应用资源分布策略应该使得达到最小化;为此,我们需要在本课题中研究出一种创新的计算方法A来使得达到最小化的应用资源分布策略;

所述创新的计算方法A具体为:

步骤SA.1,按资源的优劣情况,如内存、CPU、硬盘和网卡等情况进行标签分级;

步骤SA.2,按应用的重要性和资源的优劣情况以标签的形式对资源进行分配;

步骤SA.3,通过弹性伸缩和横向扩展以及按打标签进行资源分配等方式使得总影响因子达到最小化。

优选地,步骤S3,具体为:

每次发生应用重要性的变化后,系统需要计算出应用资源的最优化分布模型,然后根据最优化分布模型的结论,自动调整对应应用的资源供应情况;其中,最优化分布模型采用计算方法B得到,包括如下步骤:

步骤SB.1,按应用服务依赖关系图,进行应用重要性权重再计算;

步骤SB.2,根据计算方法A,使得总资源运维业务影响因子最小化;

步骤SB.3,通过弹性伸缩和/或集群方式进行应用资源的最优化分布模型计算。

优选地,在步骤S1至S3中,根据云产品提供的基础设施、应用自动化部署和服务自动化交付构建系统运维体系,所述系统运维体系包括应用服务依赖关系管理模块、应用资源管理模块、应用资源分布策略管理模块和应用资源动态调度模块;其中:

所述应用服务依赖关系管理模块用于生成应用服务依赖网络,以及应用重要性和权重的计算;

所述应用资源管理模块用于生成应用资源依赖网络;

所述应用资源分布策略管理模块用于计算并生成应用资源的最优分布策略;

所述应用资源动态调度模块用于按照应用资源的最优分布策略进行重新调度并进行应用资源的分配。

优选地,还包括如下步骤:

步骤S4,包括如下任意一个或任意多个过程:

-对应用进行升级;

-对应用进行迁移和部署,通过对应用的权重与依赖进行计算,将重要的应用分散到不同的物理节点中,实现应用的高可用性;

-应用运维自动化,包括如下任意一项或任意多项:

故障自隔离,在运行中的应用出现故障时,对该故障应用进行隔离,并及时通知相关服务停止或者进行故障转移;

高可用自平衡,在将重要的应用部署在不同的物理节点中时,当物理节点发生故障,应用通知云平台将应用的高可用备份切换到可用物理节点上,实现高可用自平衡。

优选地,对应用进行升级采用替换方式进行,即预先部署不同的服务实例,再通过应用关系依赖替换的方式进行升级。

优选地,对应用进行升级前,先根据具体情况进行功能性和非功能性的测试以后再替换,升级失败后回退进行快速降级。

优选地,所述应用关系依赖替换的方式具体为:应用所关联的服务之间的访问方式的替换,即通过服务注册与服务发现的方式,将要访问的旧的服务的访问地址切换到新的服务实例上。

优选地,所述对应用的权重与依赖进行计算,具体包括如下步骤:

步骤a,根据云产品提供的应用服务关联关系,构造行业业务系统应用服务依赖网络;

步骤b,对于简单的行业业务系统应用服务依赖网络,可以通过应用的调用次数进行权重计算,对于复杂的行业业务系统应用服务依赖网络,可以加入应用在业务系统中的重要性来进行权重分析;

步骤c,通过最优化分布模型的计算方法得到的最优化分布模型进行应用资源的预分配计算。

优选地,在对应用进行迁移和部署的过程中,设置应用权重自平衡机制,该机制具体为:每当业务系统的应用有新增、删除修改的情况,系统应能够根据应用服务依赖关系网络进行权重的调整机制。

与现有技术相比,本发明具有如下的有益效果:

1、本发明基于应用的重要性,研究在资源有限的情况下,对每个应用最合理的资源供应方式,从而达到资源在运维时对整个业务系统的运行影响最小。

2、本发明摆脱了现有的盲目的根据时间顺序和人工操作来为应用分配资源的方式,而基于运维最优化的目标自动化的计算不同重要性的应用所需要的资源以及动态的根据应用的重要性变化来调整应用的资源供应。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为应用服务依赖网络示意图;

图2为应用资源依赖网络示意图;

图3为系统运维体系架构图;

图4为应用权重分配物理节点图;

图5为运维中心系统架构图。

具体实施方式

下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

实施例

本实施例提供了一种基于应用关系网络的最优化应用资源分布策略,包括如下步骤:

步骤S1、基于应用服务依赖关系进行应用重要性指标计算

根据现有的应用服务依赖关系图,一个行业业务系统中每个应用可以通过其在图中被调用的次数来简单的标示应用重要性指标,类似于在科研工作中通过论文被引用的次数来标示论文的价值度。

进一步的,可以考虑应用在业务上有不同层次的重要性,或者服务的调用存在不同程度的重要性,为此,可以在计算应用在图中的重要性指标时加入应用权重分析。

1)应用权重分析

应用与应用之间的服务调用,存在不同的调用程度,因此在系统中不同的应用的重要程度并不一致,根据应用与应用之间的调用关系,可以得出相关应用的权重。

应用权重的计算方式可以采用引用计数方式或多依赖路径方式进行计算。本实施例中,计算方式可参考多重链接的应用网络节点权重计算方式进行。

该方法的基本原理如下。

定义1应用网络有向图G,如下式所示:

G(E,V)

式中,E表示节点关系集合,V表示节点集合。

定义2有效服务引用集合Ef(u),如下式所示:

Ef(u)={v|v∈Follower(u)∩Response(u)>ε}

式中,ε是非负常数阈值,表示节点u的引用服务节点v对节点u反馈的程度门限,超过该阈值且属于节点u的应用节点才能算是有效应用。

定义3由链接关系所产生的节点权值IRL(Ui),其计算方法如下式所示:

IRL(Ui)=δN+(1-δ)∑Uj∈Follower(ui)IRL(ui)L(ui)

式中,IRL(Ui)表示节点Ui链接关系产生的节点权值,Follower(ui)为节点ui所有关联服务集合,L(ui)为节点ui关联服务数目,δ是介于0和1的阻尼系数,N为网络图中的总节点数。

2)应用重要性的演进

应用的重要性在行业业务系统中不是一成不变的。随着行业业务的发展,越来越多的应用被开发出来。在这个过程中,每个应用都可能有一个从被大量使用到逐渐被淘汰或者更新的生命周期。因此每个既有应用的被引用次数乃至权值都有可能在新应用被部署和使用一段时间后被改变。为了简化模型,可以初步认为每个应用在部署的一开始就能够明确其业务重要性。那么就需要在每个新应用部署以后或者旧应用下线后重新计算系统中所有应用的重要性指标。

进一步的,应用的业务重要性是在使用一段时间后根据用户的访问情况决定的。这种情况下,所有应用的重要性指标需要周期性的被重新计算。

步骤S2、根据应用重要性指标,计算最小化资源运维影响下的应用资源分布策略

从运维角度而言,可以先简单的将运维理解为对资源的升级维护或者故障排除工作。在这种情况下,一个资源将停止工作,从而有可能导致与这个资源相关的应用的工作受到影响。根据前述工作所构造的应用资源依赖网络,对于指定资源R,可以分析出R在运维时将要直接影响的应用,设这些应用为DE(R)。又从应用服务依赖关系图,可以找到所有这些被影响的应用,最终所有被影响的应用范围是整个应用服务依赖关系图中的一个子图。这个子图中所有应用的权值将被定义为资源R的影响因子F(R)。

假设系统中可被运维的总资源量是R1到Rn,那么运维对整个行业业务的总影响因子就是。最优化的应用资源分布策略应该使得达到最小化。为此,我们需要在本课题中研究出一种计算方法A来使得达到最小化的应用资源分布策略。

该创新的计算方法A,包括如下步骤:

1)按资源的优劣情况,如内存、CPU、硬盘和网卡等情况进行标签分级;

2)按应用的重要性和资源的优劣情况以标签的形式进行分配;

3)通过弹性伸缩和横向扩展以及按打标签进行资源分配等方式使得总影响因子达到最小化。

步骤S3、根据应用资源分布策略动态调整应用的资源分布情况

在步骤S1和步骤S2计算的基础上,本实施例需要在云平台中实现应用资源的动态调整。即每次发生应用重要性的变化后,系统需要计算出应用资源的最优化分布模型,然后根据模型的结论,自动的调整对应应用的资源供应情况,从而使得实际系统达到最佳效果。

计算应用资源的最优化分布模型,具体方法包括如下步骤:

1)按应用服务依赖关系图,进行应用重要性权重再计算;

2)根据计算方法A使得总资源运维业务影响因子最小化;

3)通过弹性伸缩、集群等方式进行应用资源的最优化分布模型计算。

为此,系统需要实现系统运维架构图中的架构,该架构的基本思想是在现有云产品提供的基础设施、应用自动化部署和服务自动化交付基础上构建系统运维体系。系统运维体系由应用服务依赖关系管理、应用资源管理、应用资源分布策略管理和应用资源动态调度四个模块组成。

在此步骤中,系统运维体系的作用为:通过计算生成应用服务依赖关系网络和应用资源依赖网络,并通过计算生成应用资源的最优分布策略,进而在系统运维升级的时候,进行应用资源的自平衡,重调度。

进一步的,所述应用服务依赖关系管理模块用于生成应用服务依赖网络,以及应用重要性和权重的计算;

所述应用资源管理模块用于生成应用资源依赖网络;

所述应用资源分布策略管理模块用于计算并生成应用资源的最优分布策略;

所述应用资源动态调度模块用于按照应用资源的最优分布策略进行重新调度并进行应用资源的分配。

步骤S4、运维延伸变化

随着本实施例核心创新点的研究,可以构建应用与资源的合理匹配方式。在此基础上,可以进一步考虑更复杂的运维行为,例如应用的升级更新、应用高可用、应用运维自动化等等。

1)应用升级与替换

微服务架构下的应用升级流程与相应的升级操作与传统的运维流程变化主要体现在以下几个方面:

i应用的升级对于整体系统的影响可以控制、隔离在一个相对可控的区间中,单个应用的升级不影响整系统的使用;

ii应用升级更多采用“替换”方式进行升级,可以先部署好不同的服务实例,再进行应用关系依赖替换的方式进行升级;所述应用关系依赖替换的方式具体为:应用所关联的服务之间的访问方式替换,通过服务注册与服务发现的方式将要访问的旧的服务的访问地址切换到新的服务实例上。

iii应用升级前可以根据具体情况进行功能性和非功能性的测试以后再替换,升级失败后回退可以快速降级,对于升级失败后的影响可控。

2)应用高可用

传统架构中,应用部署在虚拟机或者物理机中,很难实现底层资源的调度。每一个应用所占用的底层资源是有限的,要实现应用的高可用,必须要求资源之间实现高可用。新的架构下,不同应用所使用的资源是可调配的,故可以实现应用的迁移和相应部署。

通过应用的权重与依赖计算,可以将重要的应用分散到不同的物理节点中,实现应用的可靠高可用,参考图4。所述应用的权重与依赖计算,其计算方法具体为:

1)根据产品提供的应用服务关联关系,构造行业业务系统应用服务依赖网络;

2)简单的行业业务系统应用服务依赖网络可以通过应用的调用次数进行权重计算,

复杂的行业业务系统应用服务依赖网络可以加入应用在业务系统中的重要性来进行权重分析;

3)应用资源的依赖计算即是通过最优化分布模型的计算方法得到的最优化分布模型进行应用资源的预分配计算。

如图5架构图所示:不同应用都部署在云平台上,外部物理资源由云平台进行管理,包括计算、网络、存储的资源均由云平台对应用进行分配。

在大型复杂环境中,往往有大量的应用新增/删除操作,不同的应用进入或离开系统,将会导致在系统中的各个应用与服务的关系出现变化,因此系统需要具备应用权重自平衡机制,逐步调整每个应用和服务的权重与拓扑关系。所述应用权重自平衡机制,具体为每当业务系统的应用有新增、删除修改的情况,系统应能够根据应用服务依赖关系网络进行权重的调整机制。

3)应用运维自动化

微服务架构下的应用数量增加,应用的升级与维护均需要依赖云平台提供的能力进行自动化运维。这种自动化运维可以体现为以下两种能力:

一、故障自隔离:

由于环境中存在大量的应用,一旦某些运行中的应用出现故障,需要对应用进行隔离,及时通知相关服务停止或者进行故障转移。

二、高可用自平衡

应用的高可用需要将重要应用部署在不同的物理节点中,一旦物理节点发生故障,应用需要通知云平台将应用的高可用备份切换到可用节点上,以达到高可用自平衡的能力。

本实施例提出了一个适应资源运维的最优化的应用资源分配策略方案。其原理为:

设整个系统的资源足够,则每个应用都应该部署在不相关的多个资源上,以使得任何一个资源处于运维状态时(升级更新或者故障维护),整个行业业务系统的运行完全不受影响。这种情况称为理想的应用资源分配策略。但是现实中的系统往往处于资源不足够的情况。在这种情况下,只能设定一个优化的应用资源分配策略是重要的应用应该尽量部署在不相关的多个资源上,以使得任意资源处于运维状态时,整个行业业务系统受到尽量小的影响。

从上可见应用的重要性是推演这个优化策略的关键。在行业的规模化的微应用体系中,可以设定应用大部分都是通过服务相互关联的。行业业务系统是一个由应用服务调用关系构建起来的应用服务网络。不失一般性的,在这个网络中,一个应用的服务被其他应用引用得越多,可以认为这个应用更加重要。基于前面的设定,可以认为这样的应用应该被分配部署到多个不相关的资源上以保证系统的可靠性和可运维性。

根据这个设定,本实施例主要分为三个环节的内容:

1、如何识别应用的重要性;

2、如何按照应用的重要性定义资源分布策略以达到最优化

3、如何通过应用的自动化部署来实现这个最优化策略的落地。

同时,随着行业业务系统的发展,每个微应用的重要性可能存在着不断变化的过程。因此,以上三个环节的工作可能需要反复的重新执行使得整个行业业务系统始终处于最优化的状态。

本实施例的创新点主要包含以下三个方面的内容:

1、应用重要性指标计算;

2、根据应用重要性指标,计算最小化资源运维影响下的应用资源分布策略;

3、根据应用资源分布策略动态调整应用的资源分布情况。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1