用户服务扩缩容的方法、系统和非易失性存储介质与流程

文档序号:17374874发布日期:2019-04-12 23:11阅读:356来源:国知局
用户服务扩缩容的方法、系统和非易失性存储介质与流程

本发明涉及服务扩缩容的方法、系统和非易失性存储介质。



背景技术:

为吸引更多用户,各大云服务商搭建了自己的api(应用程序接口)服务,例如阿里云api市场,百度apistore等。当前云提供商为用户提供的自动扩缩容服务主要是根据诸如cpu、内存等的使用率的硬件资源使用情况,动态增加或减少机器的分配量,目的是减少硬件资源的浪费。而用户的api服务对资源的需求量需要用户预估,并提前分配。另外用户需要借助告警系统来监测资源使用率,当资源不足时,手动添加更多资源。

当前云提供商的扩缩容方案主要是对硬件资源的增减,以提高资源利用率。用户api服务的可用性和性能需要用户自己来确保。用户侧的api服务性能不一,可能会出现服务资源利用率低,但服务响应时间变慢的现象,此时往往需要平行扩展服务,而不是缩容。因此简单的通过cpu占用率和内存使用量等的硬件资源使用情况,无法确保用户服务的高可用和高性能。用户侧需要增加监控、并需要人工扩容,这样增加了用户侧的接入成本,自动化程度较低。

另外,现有的扩缩容策略过于简单,无法做到最优决策。硬件资源的种类、服务的质量的衡量指标比较多,如果仅仅根据部分指标,利用简单的逻辑判断来扩缩容,很难保证策略的最优化,必然还会有资源的浪费。

同时,现有的扩缩容策略一成不变,一旦系统设计完成之后,扩缩容策略一直保持不变,则无法根据当前情况进行自适应。



技术实现要素:

本发明提供一种用于服务扩缩容的方法,该方法包括:

请求转发步骤,转发来自用户的服务请求;

数据获取步骤,接收所述服务请求,根据所述服务请求,计算出服务性能数据,并收集硬件数据;

转换步骤,对所述服务性能数据和所述硬件数据进行格式转换,得到训练数据;

决策步骤,获取训练过的当前分类模型,并将所述训练数据输入当前分类模型,得到扩缩容决策;

扩缩容步骤,利用所述扩缩容决策进行服务扩缩容;

训练步骤,利用所述训练数据对所述当前分类模型进行训练,得到更新分类模型,并将所述更新分类模型作为当前分类模型。

其中,所述数据获取步骤中,用户服务单元接收所述服务请求,并根据所述服务请求,计算出服务性能数据。

其中,所述训练数据符合所述训练步骤中进行训练的格式。

其中,在下一次进行所述决策步骤时,获取的是所述更新分类模型。

其中,在请求转发步骤中,路由单元转发所述服务请求,并且所述服务扩缩容是对所述路由单元和/或用户服务单元进行扩缩容。

本发明还提供一种用于服务扩缩容的系统,该系统包括:

路由单元,转发来自用户的服务请求;

数据获取单元,接收所述服务请求,根据所述服务请求,计算出服务性能数据,并收集硬件数据;

转换单元,对所述服务性能数据和所述硬件数据进行格式转换,得到训练数据;

决策单元,获取训练过的当前分类模型,并将所述训练数据输入当前分类模型,得到扩缩容决策;

扩缩容单元,利用所述扩缩容决策进行服务扩缩容;

训练单元,利用所述训练数据对所述当前分类模型进行训练,得到更新分类模型,并将所述更新分类模型作为当前分类模型。

其中,所述数据获取单元进一步包括:

用户服务单元,接收所述服务请求,并根据所述服务请求,计算出所述服务性能数据;

收集单元,收集所述硬件数据。

其中,所述训练数据符合所述训练单元中进行训练的格式。

其中,在所述决策单元进行下一次决策时,获取的是所述更新分类模型。

其中,所述服务扩缩容是对所述至少一个路由单元和/或用户服务单元进行扩缩容。

本发明进一步提供一种非易失性存储介质,在所述非易失性存储介质上存储有进行服务扩缩容的程序,所述程序被计算机执行以实现服务扩缩容的方法,所述程序包括:

请求转发指令,转发来自用户的服务请求;

数据获取指令,接收所述服务请求,根据所述服务请求,计算出服务性能数据,并收集硬件数据;

转换指令,对所述服务性能数据和所述硬件数据进行格式转换,得到训练数据;

决策指令,获取训练过的当前分类模型,并将所述训练数据输入当前分类模型,得到扩缩容决策;

扩缩容指令,利用所述扩缩容决策进行服务扩缩容;

训练指令,利用所述训练数据对所述当前分类模型进行训练,得到更新分类模型,并将所述更新分类模型作为当前分类模型。

通过本本发明,可以确保用户服务的高可用和高性能,降低用户侧的接入成本以及接入难度,自动化程度提高,并且可以确保扩缩容策略的最优化,防止硬件资源的浪费。

附图说明

图1是根据本发明实施例的用于服务扩缩容的系统的结构图;

图2是根据本发明实施例的用于服务扩缩容的方法的流程图。

具体实施方式

下面结合附图,对本发明的实施例进行详细说明。

图1是根据本发明实施例的用于服务扩缩容的系统1的结构图。如图1所示,该系统1包括路由单元11、数据获取单元12、转换单元13、训练单元14、决策单元15和扩缩容单元16。其中,系统1可以包括一个或多个路由单元11以及一个或多个数据获取单元12。

图1中仅示出了一个路由单元11和一个数据获取单元12。

图2是根据本发明实施例的用于服务扩缩容的方法的流程图。下面结合图1和图2对本发明的实施例进行详细说明。

如图2所示,在请求转发步骤s21中,路由单元11转发来自用户的服务请求。其中,路由单元11根据服务请求的内容,将该服务请求转发到对应的数据获取单元12。

在数据获取步骤s22,对应的数据获取单元12接收服务请求,根据该服务请求,计算出服务性能数据,并收集硬件数据。

其中,数据获取单元12包括用户服务单元121和收集单元122。用户服务单元121接收该服务请求,并根据该服务请求,计算出服务性能数据。服务性能数据例如是根据该服务请求计算出的服务的每秒查询量(服务qps)、服务响应时间、服务故障率等等。用户服务单元121会将计算出的服务性能数据传送给转换单元13。

这里,每个数据获取单元12包括用户服务单元121以及与用户服务单元121对应的收集单元122,且用户服务单元121和收集单元122位于同一台物理机上。收集单元122收集该物理机的硬件数据。该硬件数据是指收集单元122所处的物理机的硬件资源使用情况,例如cpu、gpu(图形处理器)、内存等的使用情况、网络带宽等等。收集单元122会将当前收集到的硬件数据传送给转换单元13。

在转换步骤s23,转换单元13将从用户服务单元121接收到的服务性能数据以及从收集单元122接收到的硬件数据进行格式转换,得到训练数据。其中,该训练数据格式符合训练单元14中进行训练的格式。转换单元13会将该训练数据传送给决策单元15和训练单元14。

在决策步骤s24,决策单元15从训练单元14获取训练过的当前分类模型(例如,分类模型a),并将训练数据输入当前分类模型,得到扩缩容决策。

其中,当前分类模型是根据历史数据,利用机器学习算法训练出的模型,该历史数据是指训练单元14在获取当前的训练数据之前接收到的历史训练数据。这些历史训练数据可以是先前从系统1中的不同的数据获取单元12获取并转换得到的训练数据。

接着,在扩缩容步骤s25,扩缩容单元16利用上述扩缩容决策进行服务扩缩容。其中,服务扩缩容是对路由单元11和/或用户服务单元121进行扩缩容。具体的,扩缩容单元16按照扩缩容决策,确定是否要增加或者减少该系统1中的路由单元11和/或用户服务单元121。

另外,在训练步骤26,训练单元14利用从转发单元13发来的训练数据对分类模型a进行训练,得到更新分类模型(例如分类模型b),并将分类模型b作为当前分类模型。

其中,在接收到该训练数据之前,训练单元14中存储的是使用机器学习算法利用历史数据训练出的分类模型a。决策单元15此时获取的也是分类模型a,并得到了上述扩缩容决策。

在接收到该训练数据之后,训练单元14使用机器学习算法,利用该训练数据对分类模型a进行再次训练(调整),例如得到更加优化的分类模型b。由于训练需要花费时间,所以决策单元15此次进行决策时使用的是分类模型a,而在进行下一次决策时,获取并使用的则是优化后的分类模型b。如此,可以根据实时接收到的训练数据,对当前分类模型进行再次训练,得到不断优化的分类模型,从而确保决策单元15做出的决策最优化。

本发明中,可以从当前的服务请求实时获取服务性能数据,并实时获取硬件资源使用情况,将服务性能数据和硬件资源使用情况输入预先训练好的机器学习分类模型,从而确定是否需要扩缩容以及扩缩容的数量。服务性能数据的引入确保了用户服务的高可用和高性能,从而降低了用户侧的接入成本以及接入难度,自动化程度提高。

另外,训练单元15在接收到新的训练数据之后,会利用新的训练数据对当前分类模型进行再次训练,得到优化的更新分类模型,并用于下一次确定扩缩容决策。可见,本发明的分类模型并非一成不变,而是根据新的训练数据实时进行优化(自适应),从而确保扩缩容策略的最优化,防止硬件资源的浪费。

较佳的,本发明的系统1可以由现有的kubernetes(k8s,是一种现有的容器管理系统)所管理的容器集群来实现,扩缩容单元可以由k8s中的apiserver(应用程序接口服务器)来实现。

本发明还提供一种非易失性存储介质,在非易失性存储介质上存储有进行服务扩缩容的程序,所述程序被计算机执行以实现服务扩缩容的方法,该程序包括:

请求转发指令,转发来自用户的服务请求;

数据获取指令,接收所述服务请求,根据所述服务请求,计算出服务性能数据,并收集硬件数据;

转换指令,对所述服务性能数据和所述硬件数据进行格式转换,得到训练数据;

决策指令,获取训练过的当前分类模型,并将所述训练数据输入当前分类模型,得到扩缩容决策;

扩缩容指令,利用所述扩缩容决策进行服务扩缩容;

训练指令,利用所述训练数据对所述当前分类模型进行训练,得到更新分类模型,并将所述更新分类模型作为当前分类模型。

虽然经过对本发明结合具体实施例进行描述,对于本领域的技术技术人员而言,根据上文的叙述后作出的许多替代、修改与变化将是显而易见。因此,当这样的替代、修改和变化落入附后的权利要求的精神和范围之内时,应该被包括在本发明中。

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