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

容器弹性伸缩方法、装置、设备和介质

文献发布时间:2023-06-19 19:30:30


容器弹性伸缩方法、装置、设备和介质

技术领域

本公开涉及云计算领域,更具体地,涉及容器弹性伸缩方法、装置、设备、介质和程序产品。

背景技术

弹性伸缩是根据业务需求和策略自动调整计算能力(如容器实例数量)的服务,即会根据服务器的使用情况,自动的新增和缩减服务容器实例数。

目前的弹性伸缩方法通常基于定时规则或者根据计算机资源变化情况进行设置。定时规则即配置在固定的时间点,单次或重复执行弹性伸缩的动作。根据计算机资源变化情况即监控系统的CPU,内存等资源变化,当变化达到一定阈值则触发执行弹性伸缩的动作。

在实现本公开发明构思的过程中,发明人发现:当访问量突增时,计算资源是瞬间激增的,此时的弹性伸缩无法及时应对这种情况。如果并发量突增时,系统的CPU和内存等可能是瞬间上涨,而此时才触发扩容,容器启动需要一定时间,由此导致这个弹性扩容实际并没有起到救火的目的。另外,弹性缩容不及时也会造成资源浪费。

发明内容

鉴于上述问题,本公开提供了容器弹性伸缩方法、装置、设备、介质和程序产品。

本公开实施例的一个方面提供了一种容器弹性伸缩方法,包括:监控N个渠道端的登录用户数据,N大于或等于1;根据所述登录用户数据,预测未来第一时间段内M种系统服务中每种系统服务的第一用户访问量,其中,所述每种系统服务对应建立有单独的容器集群,M大于或等于2;对于所述每种系统服务,根据所述第一用户访问量对当前容器集群进行计算资源评估,获得评估结果;在所述M种系统服务中任一种系统服务的评估结果符合扩容或缩容条件时,提前对该种系统服务的容器集群进行扩容或缩容处理。

在一些实施例中,所述预测未来第一时间段内M种系统服务中每种系统服务的第一用户访问量包括:根据所述登录用户数据,获得每个登录用户的S个用户特征,S大于或等于1;将所述每个登录用户的S个用户特征输入用户行为预测模型,其中,所述用户行为预测模型根据历史登录用户的用户特征和访问行为预先训练获得;获得所述用户行为预测模型输出的第一预测结果,所述第一预测结果包括所述每个登录用户在所述第一时间段内访问的系统服务。

在一些实施例中,所述用户行为预测模型根据决策树算法构建获得,预先训练所述用户行为预测模型包括:根据过去第二时间段内所述每个历史登录用户的S个用户特征构建第一阶段决策树模型;对第一阶段决策树模型剪枝得到所述用户行为预测模型。

在一些实施例中,在预测所述第一用户访问量之前,所述方法还包括:将K个系统服务按业务类别进行划分,获得所述M种系统服务,所述每种系统服务包括至少一个系统服务,K大于或等于1;建立与所述M种系统服务一一对应的M个容器集群。

在一些实施例中,在获得所述用户行为预测模型输出的第一预测结果之后,所述方法还包括:获取所述每个登录用户的实时访问数据,所述实时访问数据包括所述每个登录用户当前访问的系统服务;将所述实时访问数据与所述第一预测结果进行对比,获得对比结果;在预定数量登录用户的所述对比结果为预测错误时,重新预测未来第三时间段内所述每种系统服务的第二用户访问量,所述第三时间段小于或等于第一时间段。

在一些实施例中,所述重新预测未来第三时间段内所述每种系统服务的第二用户访问量包括:对预测错误的每个登录用户,将所述每个登录用户的S个用户特征和实时访问数据输入所述用户行为预测模型;获得所述用户行为预测模型输出的第二预测结果,所述第二预测结果包括所述每个登录用户在所述第三时间段内访问的系统服务。

在一些实施例中,所述实时访问数据还包括所述每个登录用户当前访问的页面路径,将所述每个登录用户的S个用户特征和实时访问数据输入所述用户行为预测模型包括:将所述每个登录用户的S个用户特征、所述当前访问的系统服务和所述当前访问的页面路径输入所述用户行为预测模型。

在一些实施例中,在提前对该种系统服务的容器集群进行扩容或缩容处理之后,所述方法还包括:定时重新预测未来第四时间段内的所述第一用户访问量;和/或响应于所述登录用户数据中登录用户数量的变化趋势,重新预测未来第四时间段内的所述第一用户访问量。

本公开实施例的另一方面提供了一种容器弹性伸缩装置,包括:数据监控模块,用于监控N个渠道端的登录用户数据,N大于或等于1;访问预测模块,用于根据所述登录用户数据,预测未来第一时间段内M种系统服务中每种系统服务的第一用户访问量,其中,所述每种系统服务对应建立有单独的容器集群,M大于或等于2;资源评估模块,用于对于所述每种系统服务,根据所述第一用户访问量对当前容器集群进行计算资源评估,获得评估结果;扩缩容模块,用于在所述M种系统服务中任一种系统服务的评估结果符合扩容或缩容条件时,提前对该种系统服务的容器集群进行扩容或缩容处理。

所述容器弹性伸缩装置包括分别用于执行如上所述任意一项所述的方法的各个步骤的模块。

本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。

本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。

本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。

上述一个或多个实施例具有如下有益效果:通过预测登录用户的行为,确定未来第一时间段内每种系统服务的第一用户访问量,评估需耗费的计算资源数据,提前对一种或多种系统服务的容器集群进行扩容或缩容处理。相比于定时或根据计算机资源变化情况进行弹性伸缩的方式,不仅能够通过预测实现提前处理,而且不再是针对系统整体进行提前处理,可以划分为M种系统服务,精细化地对其中一种或多种系统服务的容器集群预先弹性伸缩,在有限的计算机资源下,更合理并动态安排分配资源,同时又能满足业务的需求,可以有效的减少资源消耗,以较少的支出实现更大的效能。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的弹性伸缩系统的结构图;

图2示意性示出了根据本公开实施例的容器弹性伸缩方法的流程图;

图3示意性示出了根据本公开实施例的服务划分的流程图;

图4示意性示出了根据本公开实施例的预测第一用户访问量的流程图;

图5示意性示出了根据本公开实施例的重新预测的流程图;

图6示意性示出了根据本公开实施例的预测第二访问量的流程图;

图7示意性示出了根据本公开实施例的预先训练用户行为预测模型的流程图;

图8示意性示出了根据本公开实施例的决策树的架构图;

图9示意性示出了根据本公开另一实施例的容器弹性伸缩方法的流程图;

图10示意性示出了根据本公开实施例的容器弹性伸缩装置的结构框图;以及

图11示意性示出了根据本公开实施例的适于实现容器弹性伸缩方法的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。

图1示意性示出了根据本公开实施例的弹性伸缩系统的结构图。但本公开并不限定于如图1所示的系统结构。

如图1所示,根据该实施例的弹性伸缩系统100包括渠道层110、监控层120、服务层130和容器管理层140。

渠道层110用于提供银行机构的微信银行、手机银行App、网上银行等线上服务渠道端,和线下服务渠道端,如线下网点的自助机器。用户可以登录各个渠道端点击专栏办理业务,办理完成后退出渠道端。

监控层120用于监控渠道层110以获取登录用户数据,并定时预测和计算容量要求并提前进行弹性伸缩处理。

服务层130用于提供M种系统服务,如财富专栏模块、生活优惠模块和个人信息查询模块分别对应一种系统服务。

容器管理层140用于通过容器实例数提供计算资源从而增大或减小容量,例如接受监控层的调用以运行扩缩容模块进行弹性伸缩。其中,容器指在云计算平台通过容器技术将不同服务封装在对应的容器中,之后结合一些脚本使这些容器按照要求相互协作。

可以理解,监控层120进行弹性伸缩处理仅是本公开的一个实施例,本公开并不限于此,例如可以单独设置调控层接收监控120传来的监控数据并执行预测、评估和弹性伸缩等操作。

以下将基于图1描述的系统,通过图2~图9对本公开实施例的容器弹性伸缩方法进行详细描述。

图2示意性示出了根据本公开实施例的容器弹性伸缩方法的流程图。

如图2所示,该实施例的容器弹性伸缩方法包括操作S210~操作S240。

在操作S210,监控N个渠道端的登录用户数据,N大于或等于1。

可以在微信银行、手机银行App、网上银行、线下自助机等渠道端注入埋点,启动监控进程。监控进程可以定时或实时收集当前登录客户数据。“埋点”是数据采集领域(如用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。例如使用Java agent技术进行前端埋点,监控发生在用户与前端界面的交互,比如像登录、点击、浏览、曝光等行为。

在操作S220,根据登录用户数据,预测未来第一时间段内M种系统服务中每种系统服务的第一用户访问量,其中,每种系统服务对应建立有单独的容器集群,M大于或等于2。

示例性地,登录用户数据包括在各个渠道端登录的一个或多个用户信息。例如可以预测未来30分钟内各种系统服务的用户访问人数(即第一用户访问量)。当每种系统服务的业务量比较大,只用单个容器无法满足,或者服务比较重要,不能中断服务,故使用多个容器来部署以提供系统服务,这样达到提高并发访问能力和避免单点故障的目的。这多个容器对外是作为一个整体提供服务,就是容器集群。

在一些实施例中,可以利用历史登录用户的访问数据进行拟合,得到用户行为预测模型。例如曲线或曲面拟合后,将登录用户数据输入至用户行为预测模型中,获得预测结果。

在另一些实施例中,可以利用机器学习算法,例如深度学习网络接受历史登录用户的访问数据进行训练,得到用户行为预测模型实现预测。

在另一些实施例中,可以根据历史登录用户的访问数据,得到用户群体数量和各种系统业务访问量的映射关系,得到映射关系表作为用户行为预测模型。对登录用户数据进行分析,划分用户群体(如按照年龄、职业或财富等其中一个或多个划分)后,在映射关系表查询各种系统业务访问量。

在操作S230,对于每种系统服务,根据第一用户访问量对当前容器集群进行计算资源评估,获得评估结果。

示例性地,评估的过程包括根据当前资源(如容器数量)判断能够支撑多少访问量,与各个容器集群当前的计算资源做对比,如果相差超过预设阈值,则通知弹性伸缩中心对计算资源提前进行扩缩容处理。例如低于第一用户访问量一定比例,则扩容处理,或高于第一用户访问量一定比例,则缩容处理。

在操作S240,在M种系统服务中任一种系统服务的评估结果符合扩容或缩容条件时,提前对该种系统服务的容器集群进行扩容或缩容处理。

示例性地,提前可以指在获得评估结果后峰值来临前开始扩容或缩容处理,以便在未来第一时间段可以满足高峰要求,或者避免资源浪费。

举例而言,监控层120定时收集登录客户信息,以当前登录客户对应标签值为输入,预测计算出客户在未来30分钟内访问各种系统服务的分布情况,例如访问财富专栏模块预计会有3000人,计算当前财富专栏后台服务的性能承受力是否足够,如果不足,则发起扩容请求,增加该服务的容器数。如果当前财富社区后台服务的性能超过预计数的一倍以上,则进行缩容。

根据本公开的实施例,相比于定时或根据计算机资源变化情况进行弹性伸缩的方式,不仅能够通过预测实现提前处理,而且不再是针对系统整体进行提前处理,可以划分为M种系统服务,精细化地对其中一种或多种系统服务的容器集群预先弹性伸缩,在有限的计算机资源下,更合理并动态安排分配资源,同时又能满足业务的需求,可以有效的减少资源消耗,以较少的支出实现更大的效能。

在一些实施例中,在提前对该种系统服务的容器集群进行扩容或缩容处理之后,还包括:定时重新预测未来第四时间段内的第一用户访问量。以定时预测举例,如第一时间段为30分钟,其是短时预测用户行为进行弹性伸缩处理。弹性伸缩后的计算资源能够符合未来30分钟的要求,但是30分钟过后,可能就不再适用,故重新预测,以便动态调整弹性伸缩策略。

在另一些实施例中,在提前对该种系统服务的容器集群进行扩容或缩容处理之后,还包括:响应于登录用户数据中登录用户数量的变化趋势,重新预测未来第四时间段内的第一用户访问量。相比于定时预测,可能有时不需要进行弹性伸缩,浪费了预测过程中耗费的资源,例如登录用户数量骤减或骤增(如30%)时进行预测,可以具有一定的及时性,并节省资源。

图3示意性示出了根据本公开实施例的服务划分的流程图。

在预测第一用户访问量之前,如图3所示,该实施例的服务划分包括操作S310~操作S320。

在操作S310,将K个系统服务按业务类别进行划分,获得M种系统服务,每种系统服务包括至少一个系统服务,K大于或等于1。

在操作S320,建立与M种系统服务一一对应的M个容器集群。

例如将K个系统服务以相似功能分类,建立容器集群。即系统服务按业务类别进行划分,分为M个类别,每个类别建立单独的容器集群。并以划分的类别作为下一步客户预测行为的划分类别。以图1所示系统为例,将系统服务划分为财富专栏、个人信息查询专栏、购物专栏等等。

根据本公开的实施例,对客户行为预测,也以业务类别作依据,预测每个客户大概率会访问哪个类别的专栏(即哪种系统服务),能够实现精细化的弹性伸缩策略,更好地为用户提供服务。

图4示意性示出了根据本公开实施例的预测第一用户访问量的流程图。

如图4所示,操作S220中预测第一用户访问量包括操作S410~操作S430。

在操作S410,根据登录用户数据,获得每个登录用户的S个用户特征,S大于或等于1。

示例性地,S个用户特征可以包括客户年龄、客户性别、职业、资产类别、风险级别和行为习惯等一个或多个特征。特征值定义如下。客户年龄:

客户性别:

职业:

资产类别:

风险级别:

行为习惯:

在操作S420,将每个登录用户的S个用户特征输入用户行为预测模型,其中,用户行为预测模型根据历史登录用户的用户特征和访问行为预先训练获得。

在操作S430,获得用户行为预测模型输出的第一预测结果,第一预测结果包括每个登录用户在第一时间段内访问的系统服务。

示例性地,上午10点预测10点半之前的访问量,第一预测结果可以包括每个登录用户在各种系统服务的访问概率,根据最大概率确定10点半之前每个登录用户访问的一种系统服务(每个用户仅对应一种),综合得出第一用户访问量。在另一些实施例中,第一预测结果可以包括10点半之前每个登录用户可能会访问哪几种系统服务(一种或多种),以每种系统服务10点半之前会接受多少个用户的访问综合得出第一用户访问量。

图5示意性示出了根据本公开实施例的重新预测的流程图。

在获得用户行为预测模型输出的第一预测结果之后,如图5所示,该实施例重新预测包括操作S510~操作S530。

在操作S510,获取每个登录用户的实时访问数据,实时访问数据包括每个登录用户当前访问的系统服务。

在操作S520,将实时访问数据与第一预测结果进行对比,获得对比结果。

示例性地,例如第一预测结果表征A用户会访问财富专栏,但是实时访问数据显示其没有访问财富专栏的相关页面,对比结果为预测错误。

在操作S530,在预定数量登录用户的对比结果为预测错误时,重新预测未来第三时间段内每种系统服务的第二用户访问量,第三时间段小于或等于第一时间段。

根据本公开的实施例,将第一预测结果与实时访问数据进行比对,能够及时获取预测准确率,动态矫正错误的预测结果。例如10000个用户中有2000个预测错误,而预定数量为500,则对该2000个用户或全部用户重新预测,获得准确的弹性伸缩策略,避免无效地扩缩容处理。

下面通过图6介绍对预测错误的用户重新预测的流程。

图6示意性示出了根据本公开实施例的预测第二访问量的流程图。

如图6所示,在操作S530预测第二访问量包括对预测错误的每个登录用户执行操作S610~操作S620。

在操作S610,将每个登录用户的S个用户特征和实时访问数据输入用户行为预测模型。

示例性地,相比于初次预测时仅将每个登录用户的特征值输入模型中,该步骤将实时访问数据同样输入,能够获得一定的先验知识,增强预测准确性。举例而言,例如实时访问数据显示A用户点击了理财资讯页面,或在财经分析页面停留3分钟以上,则可以形成特征值输入到模型,预测出大概率会进入财富专栏。

在一些实施例中,实时访问数据还包括每个登录用户当前访问的页面路径,将每个登录用户的S个用户特征、当前访问的系统服务和当前访问的页面路径输入用户行为预测模型。

可以通过当前访问的系统服务来预测未来将要访问的,例如B用户使用生活优惠购买了一些商品,其可能会进一步进入财富专栏,查看自己的财富余额。

页面路径包括每个登录用户已点击的具有时间先后顺序的多个页面记录。通过分析用户的页面路径能够得到其目标服务。

在操作S620,获得用户行为预测模型输出的第二预测结果,第二预测结果包括每个登录用户在第三时间段内访问的系统服务。

示例性地,第二预测结果可以包括每个登录用户在各种系统服务的访问概率,根据最大概率确定每个登录用户访问的一种系统服务(每个用户仅对应一种),综合得出第二用户访问量。在另一些实施例中,第二预测结果可以包括每个登录用户可能会访问哪几种系统服务(一种或多种),以每种系统服务会接受多少个用户的访问综合得出第二用户访问量。

第三时间段与第一时间段可以相同或不同。以不同举例,第一时间段为30分钟,则10点时初次预测10点半之前的访问量。而到10点05分时,发现预测错误,并进行第二次预测,此时目标仍为预测10点半之前的访问量,那么第三时间段为25分钟。

根据本公开的实施例,在用户特征基础上,将实时访问数据输入用户行为预测模型,能够及时纠正错误的预测结果,并提高下次预测的准确率。

在一些实施例中,可以基于第二预测结果中各个登录用户访问为种子,先利用一个或多个用户特征对所有登录用户进行聚类(如K-means聚类算法),再基于第二预测结果中各个登录用户访问的系统服务,认为相同聚类簇中其他未重新预测的用户会访问相同的服务,实现全部重新预测(仅为示例)。

本公开一些实施例中用户行为预测模型根据决策树算法构建获得,下面通过图7和图8进一步说明预先训练用户行为预测模型的过程。

图7示意性示出了根据本公开实施例的预先训练用户行为预测模型的流程图。图8示意性示出了根据本公开实施例的决策树的架构图。

如图7所示,该实施例的预先训练用户行为预测模型包括操作S710~操作S720。

在操作S710,根据过去第二时间段内每个历史登录用户的S个用户特征构建第一阶段决策树模型。

示例性地,过去第二时间段例如包括过去的某一个月内(仅为示例)。第一阶段决策树模型可以利用CART算法生成。CART算法是给定输入随机变量X条件下输出随机变量Y的条件概率分布的学习方法。CART假设决策树是二叉树,内部节点取值为“是”或“否”。这样的决策树等价于递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的概率分布即输入给定的条件下输出的条件概率分布。

举例而言,以特征值定义及历史上一个月数据作为训练集生成的训练数据模板如下:

根据特征值数据(即训练集),从根节点开始,利用CART算法递归的对每个节点做如下操作,构建二叉决策树。

步骤1,假设训练集为D,计算现有特征值对该数据集的基尼不纯度(式1),假设D中有M个类别,P

步骤2,在所有特征值样本点计算出来的基尼不纯度里面选择值最小的作为父节点,切分出来的两个数据集作为子节点。步骤3,对分出来的子节点分别调用步骤1和步骤2,直到所有特征值样本点遍历完结束。步骤4,生成第一阶段决策树T。

在操作S720,对第一阶段决策树模型剪枝得到用户行为预测模型。

决策树模型越复杂,训练集的精确度越高。但测试集的精确度到达某一高度时会随着树的复杂度增加而减小,即产生过拟合。而剪枝正是为了防止过拟合,缩小树的复杂度。示例过程如下:

设k=0,T=T

α=min(α,g(t))式4

其中,C(t)即树t的预测误差,计算公式为C(t)=(F1/S1)*(S1/S)。S:总样本数,S1:节点t的样本数,F1:节点t错分样本。

C(T

对g(t)=α对应的内部节点t进行剪枝,并对叶节点以多数表决法决定其类别得到树T。多数表决法即数量多的分类作为最终的分类,合并数量小的分类。令k=k+1,α

由以上步骤产生T

示例性地,如图8所示,首先对职业进行判断,如果是公务员,则判断年龄,接下来判断资产级别。若中年公务员的资产级别在10万~20万之间,则进一步判断性别,如果是女性则可能访问财富专栏。若老年公务员的资产基本在20万以上,则可能访问查询个人信息。

图9示意性示出了根据本公开另一实施例的容器弹性伸缩方法的流程图。

参照图1和图9,该实施例定时弹性伸缩管理,可以包括操作S910~操作S980。

在操作S910,监控层120汇总当前登录客户特征信息。

在操作S920,监控层120预测计算当前客户半小时内预计分布各专栏人数,如财富专栏模块、生活优惠模块和个人信息查询模块分别对应一种系统服务。

在操作S930,容器管理层140获取各专栏容器数,即每种系统服务的容器集群中容器数量。

在操作S940,监控层120接收容器管理层140返回的各专栏容器数,计算出该专栏需提供的TPS。

举例而言,由用户行为预测模型预测出当前半小时内预计各个专栏的人数分布数(即用户访问量),假设财富专栏预计为30分钟内1000万人,则TPS预计为S=10000000/30/60,计算结果为5500,峰值TPS则在此基础上乘以2.5,那么TPS1大约为13750TPS。

假设一个财富专栏容器能支撑的TPS为1000(通过压力测试工具得到),那么需要约13750/1000=14个容器。如果当前财富专栏容器数为8,TPS2为8000,则需扩大6个容器。

在操作S950,对于每个专栏,判断是否TPS1>TPS2*120%。TPS1为根据预测结果计算出未来所需的TPS,TPS2为每个专栏可以提供的TPS。120%仅为示例。若是,评估结果符合扩容条件,则执行操作S960。若否,则执行操作S970。

在操作S960,容器管理层140对TPS1>TPS2*120%的专栏执行扩容操作。

在操作S970,对于每个专栏,判断是否TPS1

在操作S980,容器管理层140对TPS1

基于上述容器弹性伸缩方法,本公开还提供了一种容器弹性伸缩装置。以下将结合图10对该装置进行详细描述。

图10示意性示出了根据本公开实施例的容器弹性伸缩装置的结构框图。

如图10所示,该实施例的容器弹性伸缩装置1000包括数据监控模块1010、访问预测模块1020、资源评估模块1030和扩缩容模块1040。

数据监控模块1010可以执行操作S210,用于监控N个渠道端的登录用户数据,N大于或等于1。

访问预测模块1020可以执行操作S220,用于根据登录用户数据,预测未来第一时间段内M种系统服务中每种系统服务的第一用户访问量,其中,每种系统服务对应建立有单独的容器集群,M大于或等于2。

在一些实施例中,访问预测模块1020可以执行操作S410~操作S430,操作S510~操作S530,操作S610~操作S620,在此不做赘述。

资源评估模块1030可以执行操作S230,用于对于每种系统服务,根据第一用户访问量对当前容器集群进行计算资源评估,获得评估结果。

扩缩容模块1040可以执行操作S240,用于在M种系统服务中任一种系统服务的评估结果符合扩容或缩容条件时,提前对该种系统服务的容器集群进行扩容或缩容处理。

在一些实施例中,容器弹性伸缩装置1000还可以包括服务划分模块,用于执行操作S310~操作S320,在此不做赘述。

在一些实施例中,容器弹性伸缩装置1000还可以包括模型训练模块,用于执行操作S710~操作S720,在此不做赘述。

需要说明的是,容器弹性伸缩装置1000包括分别用于执行如上图2~图9描述的任意一个实施例的各个步骤的模块。装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例,数据监控模块1010、访问预测模块1020、资源评估模块1030和扩缩容模块1040中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。

根据本公开的实施例,数据监控模块1010、访问预测模块1020、资源评估模块1030和扩缩容模块1040中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,数据监控模块1010、访问预测模块1020、资源评估模块1030和扩缩容模块1040中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图11示意性示出了根据本公开实施例的适于实现容器弹性伸缩方法的电子设备的方框图。

如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、ROM 1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。电子设备1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106。包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107。包括硬盘等的存储部分1108。以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1102和/或RAM 1103和/或ROM 1102和RAM 1103以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。

在该计算机程序被处理器1101执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

技术分类

06120115931574