CN109144724A - 一种微服务资源调度系统及方法 - Google Patents
一种微服务资源调度系统及方法 Download PDFInfo
- Publication number
- CN109144724A CN109144724A CN201810840458.6A CN201810840458A CN109144724A CN 109144724 A CN109144724 A CN 109144724A CN 201810840458 A CN201810840458 A CN 201810840458A CN 109144724 A CN109144724 A CN 109144724A
- Authority
- CN
- China
- Prior art keywords
- service
- machine learning
- micro services
- algorithm
- prediction
- 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.)
- Pending
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种微服务资源调度系统及方法,属于微服务技术领域。所述微服务资源调度系统,包括:监控服务模块,用于收集微服务产生的资源需求的系统指标;应用控制器服务模块,用于通过调度监控服务、机器学习模型的训练和预测,管理这些微服务的生命周期;云存储服务模块,用于存储监控数据,将从监控服务中收集的监控数据作为机器学习的训练样本;机器学习服务模块,用于将训练请求发送至独立的算法模型,其中每个算法都是并行和独立训练的;交叉验证服务模块,用于评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;预测服务模块,用于通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务。
Description
技术领域
本发明涉及微服务技术领域,特别涉及一种微服务资源调度方法及系统。
背景技术
微服务通常的形态是大量小粒度的功能被捆绑在一起,并在需要按需扩展的后台系统上生成流量。当微服务产生变化和意想不到的异常情况时,挑战在于对后台系统的工作负载进行分类,并调整扩展策略以及时准确地反映资源需求。微服务体系结构提供了一种在不断变化的工作负载下实施自管理的云端服务的集成解决方案。微服务是通过定义明确的、并且已经明确发布的接口完全解耦。因此,每项服务都是自治和全栈功能的。微服务的松散耦合特性使它们能够在运行时捆绑在一起,从而在后台系统上生成动态汇集的流量。这导致很难理解这些微服务对后台系统的性能影响,首要关键问题是,它需要系统级别的架构帮助来确定后台存储系统在各种工作负载和容量收缩情况下的行为。因此,配置后台集群,横向扩展和收缩资源的操作应该在不同的工作负载下运行。将微服务部署在云上时,集群的扩展性,持久性存储将受益于云服务提供商的自动调节功能。自动缩放允许在特定条件下提供虚拟化资源,可以是基于时间表、事件触发或基于阈值的。这些条件触发的自动调节机制是反应性的而不是预测性的。这意味着自动缩放操作的决策基于以前的度量标准,而不是基于工作负载预测的趋势操作。现在业界已经做了不少的研究来预测Web服务,和Web服务器系统的工作负载。这些预测技术需要与云平台的自动调节功能相结合。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种微服务资源调度方法及系统,其中采用的微服务体系结构,封装了监控指标和学习工作负载模型的功能,此服务体系结构能够较好地用于预测未来多类分类的资源调配决策。
所述技术方案如下:
一方面,提供了一种微服务资源调度系统,包括:监控服务模块,用于收集微服务产生的资源需求的系统指标;应用控制器服务模块,用于通过调度监控服务、机器学习模型的训练和预测,管理这些微服务的生命周期;云存储服务模块,用于存储监控数据,将从监控服务中收集的监控数据作为机器学习的训练样本;机器学习服务模块,用于将训练请求发送至独立的算法模型,其中每个算法都是并行和独立训练的;交叉验证服务模块,用于评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;预测服务模块,用于通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
优选地,所述系统指标包括工作负载指标。
优选地,所述应用控制器服务模块用于:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。
优选地,所述机器学习服务模块,用于利用机器学习API,使用AWSLambda将这些API作为微服务包装到每个算法中,通过简单通知服务调用相应的lambda函数来启动机器学习的算法模型。
优选地,所述交叉验证服务模块用于:利用简单通知服务、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWSDynamoDB中。
另一方面,提供了一种上述任一种方案中的微服务资源调度系统进行微服务资源调度的方法,所述方法包括:监控:收集微服务产生的资源需求的系统指标;应用控制器控制:通过调度监控、机器学习模型的训练和预测,管理这些微服务的生命周期;云存储:存储监控数据,将从监控中收集的监控数据作为机器学习的训练样本;机器学习:将由应用控制器发出的训练请求发送至独立的算法模型,其中每个算法都是并行和独立训练的;交叉验证:经过机器学习后,评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;预测:通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
优选地,所述系统指标包括工作负载指标。
优选地,所述应用控制器控制包括:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。
优选地,所述机器学习包括:利用机器学习API,使用AWS Lambda将这些API作为微服务包装到每个算法中,通过简单通知服务调用相应的lambda函数来启动机器学习的算法模型。
优选地,所述交叉验证包括:利用SNS、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWS DynamoDB中。
本发明实施例提供的技术方案带来的有益效果是:
1、该架构可部署在云平台上,以利用云服务,包括度量指标的监控和集成自动扩展功能;
2、预测工作量利用各种类型的机器学习模型,这些机器学习模型充当了机器学习的服务;
3、这种架构是通用的,适用于不同类型的工作负载下的资源调配,甚至面对机器人。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的微服务资源调度系统结构示意图;
图2是本发明实施例提供的微服务资源调度系统进行微服务资源调度的方法流程示意图;
图3是在AWS EC2三节点群集上从NDBenchmark收集的十四天CPU工作负载工作情况示意图;
图4是应用实施例中预测的类别和真实类别的矩阵示意图;
图5是线性回归模型的残差图;
图6是使用线性回归模型预测工作负载的10分钟的工作量示意图;
图7示出了两个CPU工作负载之间的比较;
图8是基于在图7中呈现的工作负载添加和删除的EC2实例的数量示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的微服务资源调度方法及系统,提供了一个由多个机器学习模型组成的基于微服务的方法体系结构,以学习在线工作负载模式,并通过实时工作负载生成在线预测,预测结果将用于资源缩扩容决定,此服务体系结构能够较好地用于预测未来多类分类的资源调配决策,可广泛应用于涉及微服务的多种技术领域。
下面结合实施例及附图,对本发明实施例提供的微服务资源调度方法及系统,作具体说明。
实施例1
图1是本发明实施例提供的微服务资源调度系统结构示意图,如图1所示,本发明实施例提供的微服务资源调度系统包括监控服务模块11、应用控制器服务模块12、云存储服务模块13、机器学习服务模块14、交叉验证服务模块15以及预测服务模块16。需要说明的是,这里用于试验的系统的微服务和来自AWS的服务的映射也可以应用于其他公共云服务。
其中,监控服务模块11主要用于收集微服务产生的资源需求的系统指标。这里的系统指标优选地包括工作负载指标。示例性地,由CloudWatch和Cron作业两个组件实现。CloudWatch跟踪指标,生成日志文件,设置警报并自动将警报发送到AWS资源。Cron作业是一种用作基于Linux的操作系统的基于时间的调度程序的脚本,Cron作业负责从CloudWatch中检索日志并将其存储到AWSS3中,并给定一段时间,这些保存的日志作为用于机器学习的数据样本。
应用控制器服务模块12用于通过调度监控服务、机器学习模型的训练和预测,管理这些微服务的生命周期。
优选地,应用控制器服务模块12用于:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。示例性地,为了获得更好的训练结果,在新的微服务开始时,应用控制器需要累积至少一天的样本,然后启动训练,随着微服务长时间的持续运行,训练样本的规模在不断增长,由此提高了训练和验证的准确性。
云存储服务模块13,用于存储监控数据,将从监控服务中收集的监控数据作为机器学习的训练样本,为预测进行工作负载的算法模型的机器学习。这里的云存储可以使用现有技术中任何可能的云存储服务,本发明实施例不对其加以特别限制。
机器学习服务模块14,用于将训练请求发送至独立的算法模型,其中每个算法(如图中的算法一、算法二)都是并行和独立训练的。需要注意的是,这里的算法一和算法二只是示例性的,本发明实施例不对其具体采用何种特定的算法以及数量加以特别限制,在其不脱离本发明构思的情况下,可以采用现有技术中任何可能的算法以及对算法数量进行自由变换。
优选地,机器学习服务模块14,用于利用机器学习API,使用AWS Lambda将这些API作为微服务包装到每个算法中,通过简单通知服务调用相应的lambda函数来启动机器学习的算法模型。示例性地,机器学习使用亚马逊机器学习API,这些API为多类分类模型提供多项逻辑回归算法,为回归模型提供线性回归算法。并使用AWS Lambda将这些API作为微服务包装到每个算法中。AWS Lambda是AWS云上的serverless计算服务,就是说执行逻辑并非都在服务端,仅在需要时才执行代码,为了接收和发送训练通知,通过亚马逊的简单通知服务(SNS)调用相应的lambda函数来启动机器学习算法模型。
交叉验证服务模块15,用于评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器。优选地,交叉验证服务模块15用于:利用简单通知服务、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWSDynamoDB中。
预测服务模块16,用于通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
示例性地,上述机器学习采用两个机器学习模型:多项逻辑回归和线性回归。下面简单介绍这两种模型的在线训练和预测,另外还提出了一个模型选择方法来汇总来自两个模型的预测结果,以便与服务架构的数据流集成。
A.多项逻辑回归模型
多项逻辑回归是一种将逻辑回归简化为多类问题的分类方法,它为每个响应变量生成一个类别并以次与目标类别进行比较,该算法提供了许多逻辑回归模型,例如,如果有g个类别,则有g-1个逻辑模型。在一例子中,有三个CPU使用目标组,即高,正常和低三种。因此,三个目标群体的分类使用两个逻辑模型,就如下图的等式表示的那样。这两种模型提供两个估算值用来影响每个解释变量X_i和观察值i关联后的回应,因此,该模型提供了响应变量总值的近似值。
多类模型的输出是一组预测得分,该分数衡量一个观察与每个分类的匹配程度,具有最高预测分数的分类被用于最终分类结果。宏平均F1得分,下面图中所显示的,用于评估多类指标的预测准确性。亚马逊的ML中为k多类模型提供了宏平均F1分数的基线值。
B.线性回归模型
线性回归模型通过拟合观测数据的线性方程来模拟变量之间的关系,其中y是观测数据的估计值,X是观测数据记录的向量。系数β,ε是通过求解基于先前工作量y(i-1),y(i-2)...等等。
y=βX+ε
标准均方根误差(RMSE)指标,用于度量精度。它是预测的数值目标和实际数值答案之间的残差。一个完美的正确预测的模型的RMSE为0。
C.交叉验证和模型选择
在k倍交叉验证中,原始样本被随机划分为k个相同大小的子样本。保留一个子样本作为用于测试模型的验证数据,剩余的k-1个子样本用作训练数据。然后将交叉验证过程重复k次,每一个k个子样本仅用作验证数据一次,然后可以将来自折叠的k结果组合以产生单个估值。在我们的实验中,对CPU的使用样本数据采用4倍交叉验证。选择配置相同的随机种子,以确保对执行的训练数据进行相同的分割,并且每个算法都在同一组数据样本上进行精确评估。我们分别为回归和多类分类模型运行交叉验证方法。
交叉验证后,比较两种模型的准确性,并为下一轮在线预测选择更高准确度的模型。这里的分类模型使用宏F1分数来评估精度和回撤的组合分数。一般来说,F1得分越高,模型就越好。亚马逊ML使用F1得分的未加权平均值来评估模型,评估结果显示对多类预测的正确结果高于80%。这里模型中的工作量是随时间变化的,不是静态数字,这意味着当收集新的监测数据时,该模型将进行再训练以反映最新的趋势。因此建立一个具有固定模型参数的模型是不现实的,在我们的工作中,不断监控工作量并定期重新训练模型。
实施例2
图2是本发明实施例提供的微服务资源调度系统进行微服务资源调度的方法流程示意图。如图2所示,本发明实施例提供的微服务资源调度系统进行微服务资源调度的方法,包括以下操作步骤:
监控:收集微服务产生的资源需求的系统指标;
应用控制器控制:通过调度监控、机器学习模型的训练和预测,管理这些微服务的生命周期;
云存储:存储监控数据,将从监控中收集的监控数据作为机器学习的训练样本;
机器学习:将由应用控制器发出的训练请求发送至独立的算法模型,其中每个算法(如图中的算法一、算法二)都是并行和独立训练的;需要注意的是,这里的算法一和算法二只是示例性的,本发明实施例不对其具体采用何种特定的算法以及数量加以特别限制,在其不脱离本发明构思的情况下,可以采用现有技术中任何可能的算法以及对算法数量进行自由变换。
交叉验证:经过机器学习后,评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;
预测:通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
优选地,上述系统指标包括工作负载指标。
优选地,上述应用控制器控制包括:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。
优选地,上述机器学习包括:利用机器学习API,使用AWS Lambda将这些API作为微服务包装到每个算法中,通过简单通知服务(SNS)调用相应的lambda函数来启动机器学习的算法模型。
优选地上述交叉验证包括:利用SNS、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWS DynamoDB中。
需要说明的是:上述实施例提供的微服务资源调度系统在触发微服务资源调度业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的微服务资源调度方法与微服务资源调度系统实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
应用实施例
下面对本发明实施例提供的微服务资源调度系统及其微服务资源调度方法的应用实施例进行说明。
本应用实施例实的具体验评估实施步骤如下:
A.微服务后端工作负载仿真
Step1.我们使用Netflix数据基准测试(NDBench)来模拟微服务的资源需求。NDBench用来检查微服务体系结构在后台数据系统的性能影响。NDBench可用于各种云平台,它与Archaius配合使用,Spectator用于指标,Eureka用于服务发现。
Step2.NDBench将生成两种类型的负载,即随机流量和滑动窗口流量。在我们的试验中,我们采用滑动窗口流量,通过硬盘的输入和输出操生成实际负载,就像网络集群中的每个节点的读写操作一样。
Step3.我们有一个分散的NDBench实例并连接到一个数据存储的ApacheCassandra的集群后台系统。Apache Cassandra是一个高度可扩展的高性能分布式数据库,可以处理大量服务器上的大量数据,提供高可用性,无单点故障。Cassandra是一种NoSQL数据库。表1示出了Cassandra和NDBench实例的AWS配置。
Step4.我们选择的NDBench实例每分钟生成一个样本,因此20160样本为期两周。我们共收集了2016年的CPU数据样本以供培训。图3示出了在AWSEC2三节点群集上从NDBenchmark收集的十四天CPU工作负载工作情况。每个数据样本都有一个标签,分别为高,正常或低三种值。我们将AWS自动缩扩容阈值的配置映射到标签设置。
表1 Cassandra集群配置
Step5.在AWS自动缩扩容中,添加实例的阈值设置为高标签,删除阈值设置为低标签。它们之间的值是用于正常标签的。例如,80%或以上的CPU使用量是AWS中自动调节设置中的添加阈值。然后,我们使用高标签设置一个具有80%或更高CPU使用率的示例。同样,我们设置一个简单的CPU使用率低标签为为30%或更低,低标签对应于自动扫描设置中的移除阈值。在这些样本中,70%的样本(14112个样本)用于训练,30%的样本(6048个样本)用于验证。
B.机器学习模型结果
F1得分介于0和1之间,得分越高,模型的整体精度越好。这个ML模型在三个类别中得分为1。图4中的矩阵通过比较观察预测的类别和真实类别,在表格中标出了每个类别(低,高,正常)的正确和不正确预测的数量或百分比。
图5代表了我们线性回归模型的残差。在这个直方图中,我们选择bin大小为0.2。x轴表示每个bin的样本数量。y轴代表残差。正残差表示高估,负残差表示低估。这些残差的均值以零为中心。我们模型的RMSE是1.9426。
结果显示两种模型都能产生可接受的准确度。从收集的样本训练的超参数值被用于校准每个模型以进行预测。
表2列出了我们测量训练,交叉验证和预测的时间。对于交叉验证部分,我们测量每个算法所有4倍的时间。我们每10分钟运行一次预测模型,提前一分钟进行一次预测。
表2模型预测的平均部署
Training | Duration(min) |
Multiclass | 8.25 |
Regression | 6.24 |
Cross-Validation(4fold) | Duration(min) |
Multiclass | 48.30 |
Regression | 33.02 |
Prediction | Duration(ms) |
Average | 1928.74 |
C.资源提供和撤销
定期监视CPU使用情况,并使用这些监测样本作为预测模型的输入,以预测未来的工作负载,然后对工作负载进行分类。图6显示了使用线性回归模型预测工作负载的10分钟的工作量,预测是每分钟一个样本,因此预测是针对10个数据样本。
我们拥有AWS lambda函数作为ManageResource,可根据预测的工作负载分类添加或删除资源。每10分钟监测一次,预测模型检查上述两个模型的结果并对结果进行处理。如果结果为“高”,则预测模型调用具有“add-resource”消息的ManageResource lambda函数。此外,ManageResource从AWS中的自动扩缩容配置中查询实例的所有必需数据,例如ImageID,实例类型,区域等。然后ManageResource创建一个新实例并将新创建的实例添加到后端群集。如果分类结果为“低”,则将“终止实例”请求发送到ManageResource终止一个额外的实例。如果分类结果为“正常”,则直到下一轮预测才采取行动。我们考虑两种情况来评估我们的方法。在第一种情况下,我们在没有机器学习的情况下部署正常的基于阈值的自动扩缩容。CloudWatch警报设置为10分钟。例如,如果工作负载超过阈值,则每10分钟CloudWatch将该警报发送到自动扩缩容组。
然后,将这个结果与我们应用机器学习预测的方法的结果进行比较,并将其与资源提供和取消配置整合。另外,我们假设预测的窗口时间为10分钟。图7演示了上述场景的两个CPU工作负载之间的比较。阈值设置为80%,用于添加更多资源,30%用于删除空闲资源。
正如我们所看到的,我们的方法在前10分钟内CPU使用率超过了阈值。在我们添加资源之后,时间点22的工作负荷将低于阈值。但是,对于正常自动扩缩容解决方案来说,资源会被添加,并且工作负载在时间点25下降到阈值以下。
图8显示了基于我们在图7中呈现的工作负载添加和删除的EC2实例的数量。在此评估中,我们计算了一个简单度量作为比较每种提供资源方法的总成本。假设T是评估的总时间,I_i是持续时间t_i的实例数量。总成本定义如下,计算实例的时间加权总和作为权重。我们计算出直接使用自动缩放的总成本为320,而无需使用图8中的机器学习方法。我们的机器学习方法的总成本为280,这意味着与默认的自动扩缩容相比,我们的方法可帮助系统总共使用更少的实例时间方法。
在NDBench对Cassandra节点集群生成的工作负载下进行的这个实验显示,我们的方法比AWS默认的自动扩缩容组更为主动,成本更低。
有关对有效性的威胁,我们确定了我们提出的方法的有效性威胁的三个来源如下:
多云平台:一个来源是体系结构应该普遍适用于不同的云平台。目前,我们已经在AWS云平台上实施了我们提出的架构。我们使用微服务设计基于机器学习的工作负载分析和预测,这使得架构解耦,并且它们与技术无关。每个云提供商都提供用于监控,通知,调度,数据存储和机器学习模型的不同技术组件。架构实现实际上是服务组件到云特定技术的映射。例如,Amazon提供了用于实现机器学习算法的Python API,而Azure则提供了机器学习工作室是图形和手动的基础。它仍然是我们未来在Microsoft Azure和Google云计算平台上实施架构的工作;
多个数据存储后台系统:在本文中,我们使用NDBench产生不同类型的工作负载到一个的NoSQL数据库Cansandra。由于NDBench是专为插入不同类型的数据存储系统而设计,因此我们相信此方法也将有用于自动调节其他类型的后台系统资源;
多个指标:在本文中,我们演示了只有一个指标cpu使用率的监控,数据收集,训练和预测。为了收集和训练多种指标,可能会存在一些技术问题,云平台的监控服务可能不会收集所有关注指标,例如,AWS中的CloudWatch服务默认情况下不会收集内存使用情况,另外,不同的指标值具有不同的值范围,因此,在将指标作为机器学习算法的输入应用之前,对数据做预处理(如归一化)很重要。
本应用实施例提供的微服务体系结构,可自适应地监控微服务的工作负载,并调度多个机器学习模型以在线学习工作负载模型,并预测微服务的运行时工作负载分类。其中所提到的模型训练,交叉验证,预测的过程被解耦成单独的微服务。另外,为进行评估,我们使用Netflix Data Benchmark,是为了探究微服务产生的性能影响。可将该微服务架构应用于亚马逊网络服务以及两种多类分类和逻辑回归的机器学习算法。并且,我们演示了实时预测与云基础架构的自动调节配置集成以添加或删除计算资源。由于这种微服务架构独立于分布式框架,因此适用于其他云基础架构。
综上所述,本发明实施例提供的微服务资源调度系统及方法,相对于现有技术具有以下有益效果:
1、该架构可部署在云平台上,以利用云服务,包括度量指标的监控和集成自动扩展功能;
2、预测工作量利用各种类型的机器学习模型,这些机器学习模型充当了机器学习的服务;
3、这种架构是通用的,适用于不同类型的工作负载下的资源调配,甚至面对机器人。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种微服务资源调度系统,其特征在于,包括:
监控服务模块,用于收集微服务产生的资源需求的系统指标;
应用控制器服务模块,用于通过调度监控服务、机器学习模型的训练和预测,管理这些微服务的生命周期;
云存储服务模块,用于存储监控数据,将从监控服务中收集的监控数据作为机器学习的训练样本;
机器学习服务模块,用于将训练请求发送至独立的算法模型,其中每个算法都是并行和独立训练的;
交叉验证服务模块,用于评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;
预测服务模块,用于通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
2.根据权利要求1所述的系统,其特征在于,所述系统指标包括工作负载指标。
3.根据权利要求1所述的系统,其特征在于,所述应用控制器服务模块用于:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。
4.根据权利要求1所述的系统,其特征在于,所述机器学习服务模块,用于利用机器学习API,使用AWS Lambda将这些API作为微服务包装到每个算法中,通过简单通知服务调用相应的lambda函数来启动机器学习的算法模型。
5.根据权利要求1所述的系统,其特征在于,所述交叉验证服务模块用于:利用简单通知服务、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWS DynamoDB中。
6.一种根据权利要求1至5任一项所述的微服务资源调度系统进行微服务资源调度的方法,其特征在于,所述方法包括:
监控:收集微服务产生的资源需求的系统指标;
应用控制器控制:通过调度监控、机器学习模型的训练和预测,管理这些微服务的生命周期;
云存储:存储监控数据,将从监控中收集的监控数据作为机器学习的训练样本;
机器学习:将由应用控制器发出的训练请求发送至独立的算法模型,其中每个算法都是并行和独立训练的;
交叉验证:经过机器学习后,评估每个算法的结果以进行实时预测,每个算法模型的训练参数保存到模型存储器;
预测:通过应用控制器按预设时间间隔触发预测服务,执行实时负载的预测服务,包括从机器学习服务包中查询要使用的算法模型,然后从模型存储器中检索训练的参数值,最后,将推论预测结果返回给系统的自动扩缩容服务以进行资源预决策。
7.根据权利要求6所述的方法,其特征在于,所述系统指标包括工作负载指标。
8.根据权利要求6所述的方法,其特征在于,所述应用控制器控制包括:通过设定相应时间间隔,调度服务周期性地调用监控服务来收集工作负载指标;以及调用机器学习服务来训练算法模型并使用训练过的算法模型启动预测服务。
9.根据权利要求6所述的方法,其特征在于,所述机器学习包括:利用机器学习API,使用AWS Lambda将这些API作为微服务包装到每个算法中,通过简单通知服务调用相应的lambda函数来启动机器学习的算法模型。
10.根据权利要求6所述的方法,其特征在于,所述交叉验证包括:利用SNS、Lambda函数和机器学习API的服务构建,训练完成后,参数值将作为算法模型存储在AWS DynamoDB中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810840458.6A CN109144724A (zh) | 2018-07-27 | 2018-07-27 | 一种微服务资源调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810840458.6A CN109144724A (zh) | 2018-07-27 | 2018-07-27 | 一种微服务资源调度系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144724A true CN109144724A (zh) | 2019-01-04 |
Family
ID=64799153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810840458.6A Pending CN109144724A (zh) | 2018-07-27 | 2018-07-27 | 一种微服务资源调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144724A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933452A (zh) * | 2019-03-22 | 2019-06-25 | 中国科学院软件研究所 | 一种面向异常传播的微服务智能监测方法 |
CN110162414A (zh) * | 2019-02-01 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 基于微服务架构实现人工智能服务的方法及装置 |
CN110490334A (zh) * | 2019-08-27 | 2019-11-22 | 上海丙晟科技有限公司 | 一种低延迟的机器学习即服务的生成方法 |
CN110503208A (zh) * | 2019-08-26 | 2019-11-26 | 第四范式(北京)技术有限公司 | 多模型探索中的资源调度方法和资源调度装置 |
CN110661842A (zh) * | 2019-08-12 | 2020-01-07 | 广州亦云信息技术股份有限公司 | 一种资源的调度管理方法、电子设备和存储介质 |
CN110855578A (zh) * | 2019-11-06 | 2020-02-28 | 西安电子科技大学 | 基于相似度的云上微服务资源调度优化方法 |
CN111163085A (zh) * | 2019-12-29 | 2020-05-15 | 北京车与车科技有限公司 | 一种灰度发布场景优化方法 |
CN111181773A (zh) * | 2019-12-13 | 2020-05-19 | 西安交通大学 | 面向异构边云协同智能系统的多组件应用的延迟预测方法 |
CN111651274A (zh) * | 2020-06-04 | 2020-09-11 | 重庆英楼维兴信息科技有限公司 | 一种基于微服务架构的业务分发方法及相关装置 |
CN111832735A (zh) * | 2019-04-18 | 2020-10-27 | 第四范式(北京)技术有限公司 | 基于模板来执行机器学习过程的方法和系统 |
CN111860853A (zh) * | 2019-05-22 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 在线预测系统、设备、方法及电子设备 |
CN111984398A (zh) * | 2019-05-22 | 2020-11-24 | 富士通株式会社 | 调度操作的方法及计算机可读介质 |
CN112073239A (zh) * | 2020-09-04 | 2020-12-11 | 天津大学 | 一种云计算环境分布式应用性能预测方法 |
CN112311605A (zh) * | 2020-11-06 | 2021-02-02 | 北京格灵深瞳信息技术有限公司 | 提供机器学习服务的云平台及方法 |
CN112350898A (zh) * | 2020-11-10 | 2021-02-09 | 安徽继远检验检测技术有限公司 | 一种微服务应用全链路性能实时监测系统及其检测方法 |
CN112580816A (zh) * | 2019-09-30 | 2021-03-30 | 脸谱公司 | 机器学习训练资源管理 |
CN112799742A (zh) * | 2021-02-09 | 2021-05-14 | 上海海事大学 | 一种基于微服务的机器学习实训系统及方法 |
CN112817711A (zh) * | 2021-01-22 | 2021-05-18 | 海南大学 | 基于微服务的数据融合系统 |
JP2021125150A (ja) * | 2020-02-07 | 2021-08-30 | 株式会社日立製作所 | 代替候補推薦システム及び方法 |
CN113507385A (zh) * | 2021-06-25 | 2021-10-15 | 上海派拉软件股份有限公司 | 用于身份认证的微服务资源智能调度方法及系统 |
CN114928633A (zh) * | 2022-05-16 | 2022-08-19 | 江苏赞奇科技股份有限公司 | 一种基于复杂云应用环境的高效控制方法及系统 |
CN115242648A (zh) * | 2022-07-19 | 2022-10-25 | 北京百度网讯科技有限公司 | 扩缩容判别模型训练方法和算子扩缩容方法 |
US11842214B2 (en) | 2021-03-31 | 2023-12-12 | International Business Machines Corporation | Full-dimensional scheduling and scaling for microservice applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
CN107948254A (zh) * | 2017-11-10 | 2018-04-20 | 上海华讯网络系统有限公司 | 混合云平台的大数据处理框架编排系统及方法 |
CN107995039A (zh) * | 2017-12-07 | 2018-05-04 | 福州大学 | 面向云软件服务的资源自学习与自适应分配方法 |
-
2018
- 2018-07-27 CN CN201810840458.6A patent/CN109144724A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107404523A (zh) * | 2017-07-21 | 2017-11-28 | 中国石油大学(华东) | 云平台自适应资源调度系统和方法 |
CN107948254A (zh) * | 2017-11-10 | 2018-04-20 | 上海华讯网络系统有限公司 | 混合云平台的大数据处理框架编排系统及方法 |
CN107995039A (zh) * | 2017-12-07 | 2018-05-04 | 福州大学 | 面向云软件服务的资源自学习与自适应分配方法 |
Non-Patent Citations (1)
Title |
---|
HANIEH ALIPOUR等: "Online Machine Learning for Cloud Resource Provisioning of Microservice Backend Systems", 《2017 IEEE INTERNATIONAL CONFERENCE ON BIG DATA (BIGDATA)》 * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162414A (zh) * | 2019-02-01 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 基于微服务架构实现人工智能服务的方法及装置 |
CN110162414B (zh) * | 2019-02-01 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 基于微服务架构实现人工智能服务的方法及装置 |
CN109933452B (zh) * | 2019-03-22 | 2020-06-19 | 中国科学院软件研究所 | 一种面向异常传播的微服务智能监测方法 |
CN109933452A (zh) * | 2019-03-22 | 2019-06-25 | 中国科学院软件研究所 | 一种面向异常传播的微服务智能监测方法 |
CN111832735A (zh) * | 2019-04-18 | 2020-10-27 | 第四范式(北京)技术有限公司 | 基于模板来执行机器学习过程的方法和系统 |
CN111984398A (zh) * | 2019-05-22 | 2020-11-24 | 富士通株式会社 | 调度操作的方法及计算机可读介质 |
CN111860853A (zh) * | 2019-05-22 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 在线预测系统、设备、方法及电子设备 |
CN111860853B (zh) * | 2019-05-22 | 2024-01-12 | 北京嘀嘀无限科技发展有限公司 | 在线预测系统、设备、方法及电子设备 |
CN110661842B (zh) * | 2019-08-12 | 2022-12-02 | 广州亦云信息技术股份有限公司 | 一种资源的调度管理方法、电子设备和存储介质 |
CN110661842A (zh) * | 2019-08-12 | 2020-01-07 | 广州亦云信息技术股份有限公司 | 一种资源的调度管理方法、电子设备和存储介质 |
CN110503208B (zh) * | 2019-08-26 | 2022-05-17 | 第四范式(北京)技术有限公司 | 多模型探索中的资源调度方法和资源调度装置 |
CN110503208A (zh) * | 2019-08-26 | 2019-11-26 | 第四范式(北京)技术有限公司 | 多模型探索中的资源调度方法和资源调度装置 |
CN110490334A (zh) * | 2019-08-27 | 2019-11-22 | 上海丙晟科技有限公司 | 一种低延迟的机器学习即服务的生成方法 |
CN112580816A (zh) * | 2019-09-30 | 2021-03-30 | 脸谱公司 | 机器学习训练资源管理 |
CN110855578A (zh) * | 2019-11-06 | 2020-02-28 | 西安电子科技大学 | 基于相似度的云上微服务资源调度优化方法 |
CN110855578B (zh) * | 2019-11-06 | 2022-07-26 | 西安电子科技大学 | 基于相似度的云上微服务资源调度优化方法 |
CN111181773A (zh) * | 2019-12-13 | 2020-05-19 | 西安交通大学 | 面向异构边云协同智能系统的多组件应用的延迟预测方法 |
CN111181773B (zh) * | 2019-12-13 | 2021-09-07 | 西安交通大学 | 面向异构边云协同智能系统的多组件应用的延迟预测方法 |
CN111163085A (zh) * | 2019-12-29 | 2020-05-15 | 北京车与车科技有限公司 | 一种灰度发布场景优化方法 |
CN111163085B (zh) * | 2019-12-29 | 2022-10-14 | 北京车与车科技有限公司 | 一种灰度发布场景优化方法 |
JP7382245B2 (ja) | 2020-02-07 | 2023-11-16 | 株式会社日立製作所 | 代替候補推薦システム及び方法 |
JP2021125150A (ja) * | 2020-02-07 | 2021-08-30 | 株式会社日立製作所 | 代替候補推薦システム及び方法 |
CN111651274A (zh) * | 2020-06-04 | 2020-09-11 | 重庆英楼维兴信息科技有限公司 | 一种基于微服务架构的业务分发方法及相关装置 |
CN112073239A (zh) * | 2020-09-04 | 2020-12-11 | 天津大学 | 一种云计算环境分布式应用性能预测方法 |
CN112311605B (zh) * | 2020-11-06 | 2023-12-22 | 北京格灵深瞳信息技术股份有限公司 | 提供机器学习服务的云平台及方法 |
CN112311605A (zh) * | 2020-11-06 | 2021-02-02 | 北京格灵深瞳信息技术有限公司 | 提供机器学习服务的云平台及方法 |
CN112350898A (zh) * | 2020-11-10 | 2021-02-09 | 安徽继远检验检测技术有限公司 | 一种微服务应用全链路性能实时监测系统及其检测方法 |
CN112817711A (zh) * | 2021-01-22 | 2021-05-18 | 海南大学 | 基于微服务的数据融合系统 |
CN112799742B (zh) * | 2021-02-09 | 2024-02-13 | 上海海事大学 | 一种基于微服务的机器学习实训系统及方法 |
CN112799742A (zh) * | 2021-02-09 | 2021-05-14 | 上海海事大学 | 一种基于微服务的机器学习实训系统及方法 |
US11842214B2 (en) | 2021-03-31 | 2023-12-12 | International Business Machines Corporation | Full-dimensional scheduling and scaling for microservice applications |
CN113507385A (zh) * | 2021-06-25 | 2021-10-15 | 上海派拉软件股份有限公司 | 用于身份认证的微服务资源智能调度方法及系统 |
CN114928633A (zh) * | 2022-05-16 | 2022-08-19 | 江苏赞奇科技股份有限公司 | 一种基于复杂云应用环境的高效控制方法及系统 |
CN114928633B (zh) * | 2022-05-16 | 2024-04-16 | 江苏赞奇科技股份有限公司 | 一种基于复杂云应用环境的高效控制方法及系统 |
CN115242648A (zh) * | 2022-07-19 | 2022-10-25 | 北京百度网讯科技有限公司 | 扩缩容判别模型训练方法和算子扩缩容方法 |
CN115242648B (zh) * | 2022-07-19 | 2024-05-28 | 北京百度网讯科技有限公司 | 扩缩容判别模型训练方法和算子扩缩容方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144724A (zh) | 一种微服务资源调度系统及方法 | |
Gao et al. | Machine learning based workload prediction in cloud computing | |
Gmach et al. | Capacity management and demand prediction for next generation data centers | |
CN103294546B (zh) | 多维度资源性能干扰感知的虚拟机在线迁移方法及系统 | |
Alipour et al. | Online machine learning for cloud resource provisioning of microservice backend systems | |
Javadpour et al. | Improving load balancing for data-duplication in big data cloud computing networks | |
CN109525435A (zh) | 一种电网业务服务器运行状态预警方法 | |
CN116664019B (zh) | 智慧燃气数据时效性管理方法、物联网系统、装置及介质 | |
CN111950929A (zh) | 一种项目型任务的工作量均衡分配方法和设备 | |
Ariza et al. | Provisioning computational resources for cloud-based e-learning platforms using deep learning techniques | |
WO2017071369A1 (zh) | 一种预测用户离网的方法和设备 | |
Gupta et al. | Long range dependence in cloud servers: a statistical analysis based on google workload trace | |
CN117891234A (zh) | 机房运行状态的检测方法、装置、存储介质以及电子设备 | |
Devi et al. | SLAV mitigation and energy-efficient VM allocation technique using improvised grey wolf optimization algorithm for cloud computing | |
Daradkeh et al. | Google traces analysis for deep machine learning cloud elastic model | |
Bodik | Automating datacenter operations using machine learning | |
CN116228312A (zh) | 大额积分兑换行为的处理方法和装置 | |
Prado et al. | On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers | |
Estrada et al. | CPU usage prediction model: a simplified VM clustering approach | |
Uakhitova | Electricity Consumption Forecast Based on Neural Networks | |
Xue et al. | Proactive management of systems via hybrid analytic techniques | |
Kantasa–ard et al. | Investigating the applicable position of established cloud servers using the hybrid partitional clustering | |
Tripathi et al. | Workload Shifting Based on Low Carbon Intensity Periods: A Framework for Reducing Carbon Emissions in Cloud Computing | |
CN116939158B (zh) | 一种基于云计算的监控管理系统和方法 | |
CN117949886B (zh) | 互感器校验仪智能调控方法、系统、电子设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |
|
RJ01 | Rejection of invention patent application after publication |