发明内容
本申请实施例提供了一种基于业务感知的云成本预测方法、系统、计算机设备和计算机可读存储介质,以至少解决相关技术中预测云成本预测过结果偏差较大的问题。
第一方面,本申请实施例提供了一种基于业务感知的云成本预测方法,基于K8s集群环境下,所述方法包括:
根据云成本账单获取资源数据;
查询所述资源数据的付费类型,在所述付费类型为按量付费的情况下,使用预设算法分析所述资源数据;包括:根据是否为创建K8s集群时的初始资源,将所述资源数据分为集群数据和扩容数据;根据所述K8s集群中的状态属性,将所述集群数据或扩容数据分为长期数据和临时数据;根据是否存在往期历史数据,将所述临时数据分为有支持数据和无支持数据;根据是否存在同类型的且是临时增加并完成删除的设备参考数据,将所述无支持数据分为有参考数据和无参考数据;
在所述有支持数据存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做二次指数平滑预测;在所述有支持数据不存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做一次指数平滑预测;
对于所述有参考数据,结合其余临时增设设备做平均计算预测结果;对于所述无参考数据,按照实际收费标准计算预测结果。
在其中一些实施例中,查询所述资源数据的付费类型之后,所述方法还包括:
在所述付费类型为包年包月的情况下,获取查询所述付费类型的查询时间;
对于查询时间在有效期限内的资源数据,所述预设算法不进行金额预测;
对于查询时间不在所述有效期限内的资源数据,所述预设算法预判所述资源数据是否仍需购买,在所述资源数据仍需购买的情况下,对所述资源数据按照所述包年包月的付费标准进行金额预测;
在所述资源数据不再需要购买的情况下,对所述资源数据不进行金额预测。
在其中一些实施例中,将所述资源数据分为长期数据和临时数据之后,所述方法还包括:
对于所述长期数据,所述预设算法按照实际收费标准计算预测结果。
在其中一些实施例中,将所述资源数据分为集群数据和扩容数据之后,所述方法还包括:
所述K8s集群环境对所述扩容数据中的临时数据配置标签信息,所述预设算法根据所述标签信息确定临时扩容数据后,获取使用时长信息并记录资源数据的使用率信息,其中,所述使用时长信息通过预设算法基于所述资源数据预测生成,所述使用率信息用于预设算法进行成本优化。
所述预设算法持续记录所述资源数据的使用率信息,并将基于所述使用率信息进行成本优化分析;
所述预设算法通过分析所述使用率信息并输出优化信息,其中,所述优化信息包括以下至少之一:
所述长期数据的利用情况;
所述扩容数据的配置是否合理;
在业务稳定的情况下,现有的所述资源数据是否已最大限度利用;
是否存在长期闲置的所述资源数据;
所述预设算法将所述优化信息迭代和更新后,代入云成本预测流程。
在其中一些实施例中,在所述有支持数据存在明显趋势的情况下,所述依据所述有支持数据之前的往期数据做二次指数平滑预测包括:通过如下计算公式预测成本结果:
S′t=αSt+(1-α)S′t-1
at=2St-S′t
Yt+T=at+bt*T
其中,α为平滑系数,at、bt是二次指数平滑计算模型参数,St是第t期的一次指数平滑值,S′t是第t期的二次指数平滑值,S′t-1是第t-1期的二次指数平滑值,Yt+T为第t+T期预测值,T为由t期向后推移期数。
在其中一些实施例中,在所述有支持数据不存在明显趋势的情况下,依据所述有支持数据之前的往期数据做一次指数平滑预测包括:通过如下计算公式预测成本结果:
y′t+1=y′t+α(yt-y′t)
其中,α为平滑系数,y′t+1为t+1期的预测值,即t期的平滑值St;yt为t期的实际值,y′t为t期的预测值,即上期的平滑值St-1。
在其中一些实施例中,所述平滑系数的初始值为系统预设值,在所述预设算法经过长期验算后,通过人机交互界面逐步调整所述平滑系数。
第二方面,本实施例提供了一种基于业务感知的云成本预测系统,基于k8s集群环境下,所述系统包括:获取模块、分析模块以及预测模块;其中,
所述获取模块用于根据云成本账单获取资源数据;
所述分析模块用于在付费类型为按量付费的情况下,分析所述资源数据包括:根据是否为创建K8s集群时的初始资源,将所述资源数据分为集群数据和扩容数据;根据所述K8s集群中的状态属性,将所述集群数据或扩容数据分为长期数据和临时数据;根据是否存在往期历史数据,将所述临时数据分为有支持数据和无支持数据;根据是否存在同类型的且是临时增加并完成删除的设备参考数据,将所述无支持数据分为有参考数据和无参考数据;
所述预测模块用于在所述有支持数据存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做二次指数平滑预测;在所述有支持数据不存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做一次指数平滑预测;
所述预测模块还用于对所述有参考数据,结合其余临时增设设备做平均计算预测;对所述无参考数据,按照实际收费标准计算预测结果。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种基于业务感知的云成本预测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种基于业务感知的云成本预测方法。
相比于相关技术,本申请实施例提供的种基于业务感知的云成本预测方法,通过根据云成本账单获取全部资源数据数据,通过基于预设算法中基于业务感知的架构方案对该资源数据进行按照一定的规则进行分析和归类,最后通过预测算法模针对分析或归类完成的资源数据进行云成本预测;解决了相关技术中预测过结果偏差较大的的问题,另外,通过k8s环境对临时扩容数据进行标签配置,预设算法通过该标签确定该资源数据的使用率和预侧使用时长,随着预设算法的使用时长和数据量的增加,将达到更精确更智能的预测效果和成本优化效果。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的基于业务感知的云成本预测方法,可以应用在图1所示的应用环境中,图1是根据本申请实施例的基于业务感知的云成本预测方法的应用环境示意图,如图1所示,终端10与服务器11通过网络进行通信,服务器11通过终端10获取云成本账单,并从云成本账单中获取资源数据,对资源数据进行梳理和归纳后,服务器11通过内置的预设算法对资源数据进行分析和归类,并针对分析归类后生成的不同类型的资源数据,采用不同的预测方法进行云成本预测;提升了预测结果的准确性和智能性。需要说明的是,在本实施例中,终端10可以是智能手机、平板电脑、台式电脑、笔记本电脑和智能可穿戴设备;通过终端10与服务器11的通信,可以实现信息的上传或接收,该服务器11可以是独立的服务器或者是多个服务器组成的服务器集群来实现的。
本申请提供的基于业务感知的云成本预测方法,可以分为判断分析阶段和预测阶段。在判断分析阶段,算法预测模型针对从云成本账单中获取的资源数据,该预测算法将根据成本账单及现状,进行精细化多级判断统计;包含大多数云服务资源使用情形,并作出相应预测分支处理。例如:是否为创建k8s集群时的初始资源、判定资源所在k8s集群状态属性(长期/临时)、是否为业务稳定增长而提升的资源、是否为业务或流量突增而临时创建的资源。预测阶段则为针对具体类型的资源数据采用具体的预测方法或计算方法来获取成本金额,如一次平滑预测法、二次平滑预测法、按照实际收费标准计算和平均计算等。
本申请提供了一种基于业务感知的云成本预测方法,图2是根据本申请实施例的一种基于业务感知的云成本预测方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,根据云成本账单获取资源数据;其中,该云成本账单为用户/系统在往期中产生的资费情况。其包括具体的资费信息和金额信息对应的说明信息,该说明信息可以是资费类型、资费时间、资费历史、以及后续资费计划等,其通常来自服务商。在本实施例中,在进行预测前,需要对云成本账单进行同步,并进行一定的梳理归纳;
步骤S202,查询该资源数据的付费类型,根据该付费类型将该资源数据分为包年包月付费数据和按量付费数据;其中,该付费类型以该资源数据的说明信息的形式保存在所有资源数据组成的数据集中,通过预设算法可以对付费类型进行判断和分类,进一步的,分类的结果可以是包年包月付费或者按量付费;例如:某音乐应用用户支付¥5购买一首歌曲,这种情况就可以理解为按量付费;与之对应的,当用户支付¥30开通月度会员时,该用户在一个月时间内可以购买多次歌曲,这种情况则可以理解为包年包月付费;
步骤S203,在该付费类型为按量付费的情况下,使用预设算法分析该资源数据包括:根据是否为创建K8s集群时的初始资源,将该资源数据分为集群数据和扩容数据;根据该K8s集群中的状态属性,将该集群数据或扩容数据分为长期数据和临时数据;根据是否存在往期历史数据,将该临时数据分为有支持数据和无支持数据;根据是否存在同类型的且是临时增加并完成删除的设备参考数据,将该无支持数据分为有参考数据和无参考数据;需要说明的是,在付费类型为按量付费的情况下,可以将资源数据再细分为云服务器数据、对象存储数据和负载均衡数据等,本实施例中以云服务器数据为例及进行说明;
步骤S204,在该有支持数据存在明显趋势的情况下,依据该有支持数据之前的往期资源数据做二次指数平滑预测;在该有支持数据不存在明显趋势的情况下,依据该有支持数据之前的往期资源数据做一次指数平滑预测;其中,指数平滑法是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进行预测,其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均,是生产预测中常用的一种方法。进一步的,一次指数平滑法善于预测金额无明显趋势的成本类型;二次指数平滑法善于预测金额有明显趋势的成本类型;
步骤S205,对于该有参考数据,结合其余临时增设设备做平均计算;对于该无参考数据,按照实际收费标准计算预测结果。需要说明的是,该无参考数据为在资源数据无法找到临时设备增设设备作为参考的数据,在本实施例中,将所述无参考数据视为长期数据,采用按照实际收费标准的方式来计算预测金额。
通过上述步骤S201至S205,想比较于相关技术中依靠较为简单朴素的算法进行云成本预测的方法,本实施例通过预设算法对根据云成本账单获取的资源数据进行判断分析,从而对所述资源数据进行归类,最后针对具体类型的资源数据采用对应的预测算法进行云成本预测的方法,解决了相关技术中成本预测结果与实际结果差异较大的问题,提升了云成本预测的准确性。
在其中一些实施例中,图3是本申请实施例的预设算法分析资源数据的流程图,如图3所示,预设算法分析流程可分为五层;其中,第一层为,按照收费类型将全部资源数据分为包年包月数据和按量付费数据。第二层为,按照是否为创建K8s集群时的初始资源,将该资源数据分为集群数据和扩容数据。第三层为,按照K8s集群中的状态属性,将该集群数据分为长期集群数据和临时集群数据,以及将该扩容数据分为规模扩张数据和临时扩容数据。第四层为,按照是否存在往期历史数据,将该临时数据分为有支持数据和无支持数据;第五层为,按照是否存在同类型的且是临时增加并完成删除的设备参考数据,将该无支持数据分为有参考数据和无参考数据,以及根据是否存在稳定变化趋势,将有支持数据分为有趋势数据和无趋势数据。
在其中一些实施例中,查询该资源数据的付费类型之后,在该付费类型为包年包月的情况下,获取该查询该资源数据的付费类型的查询时间;对于查询时间在有效期限内的资源数据,该预设算法不进行金额预测;对于查询时间不在有效期限内的资源数据,该预设算法预判资源数据是否仍需购买,在该资源数据仍需购买的情况下,对该资源数据按照该包年包月的付费标准进行金额预测;在该资源数据不再需要购买的情况下,对该资源数据不进行金额预测。
在其中一些实施例中,将该资源数据分为长期数据和临时数据之后,该预设算法对于该长期数据,按照实际收费标准计算预测结果。
在其中一些实施例中,将该资源数据分为集群数据和扩容数据之后,该K8s集群环境对该扩容数据中的临时数据配置标签信息,获取使用时长信息并记录资源数据的使用率信息,其中,所述使用时长信息通过预设算法基于所述资源数据预测生成,所述使用率信息用于预设算法进行成本优化。其中,该使用时长信息的预测是通过预设算法基于长期记录的资源数据的具体情况分析得出的。需要说明的是,在预测的开始阶段,针对于资源数据的扩容或者缩容的动作以及使用时长信息是无法预测的,但是,随着预设算法持续获取资源数据的使用率并记录,该预设算法将能够分析出许多具有参考意义的信息,例如:预测临时资源大致的添加时间点,持续时长及删除时间点。进一步的,预设算法持续取资源数据的使用率并记录以及并不断分析、迭代,随着这些数据量的增多,预设算法基于大量的数据进行学习、统计,通过不断的重复估计、更新和获取差异的过程,该预设算法将具备如预测临时资源大致的添加时间点、持续时长及删除时间点的能力;
进一步地,该预设算法通过分析该使用率信息输出优化信息,其中,该优化信息包括以下至少之一:该长期数据的利用情况;该扩容数据的配置是否合理;在业务稳定的情况下,现有的该资源数据是否已最大限度利用;是否存在长期闲置的该资源数据;该预设算法将该优化信息迭代和更新,并将其带入云成本预测流程。需要说明的是,在给出这些优化建议后,这些数据还能带到下一次的成本预测分析,使得成本预测越来越准确;本实施提供的预设算法随着使用时长和数据量的增加,将具备更准确的成本预测能力。例如:结合往期数据,能预判出业务会在哪些时间段有激增,又再哪些时间段会回落,相应的资源费用是多少。总结来说,这些数据不但能做出优化建议,还能持续优化预测能力。
在其中一些实施例中,在该有参考数据存在明显趋势的情况下,该依据该有参考数据之前的往期数据做二次指数平滑预测包括:通过如下计算公式预测成本结果:
S′t=αSt+(1-α)S′t-1
at=2St-S′t
Yt+T=at+bt*T
其中,α为平滑系数,at、bt是二次指数平滑计算模型参数,St是第t期的一次指数平滑值,S′t是第t期的二次指数平滑值,S′t-1是第t-1期的二次指数平滑值,Yt+T为第t+T期预测值,T为由t期向后推移期数。
在其中一些实施例中,在该有参考数据不存在明显趋势的情况下,依据该有参考数据之前的往期数据做一次指数平滑预测包括:通过如下计算公式预测成本结果:
y′t+1=y′t+α(yt-y′t)
其中,α为平滑系数,y′t+1为t+1期的预测值,即本期(t期)的平滑值St;yt为y期的实际值,y′t为t期的预测值,即上期的平滑值St-1。
在其中一些实施例中,该平滑系数的初始值为系统预设值,在该预设算法经过长期验算后,通过人机交互界面逐步调整该平滑系数,需要说明的是,该初始值为开发人员根据实际需求确定,在预设算法经过长期验算后,可逐步调整合适的平滑系数,使得预测金额越来越准确。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种基于业务感知的云成本预测系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的一种基于业务感知的云成本预测系统的结构框图,如图4所示,该系统包括获取模块41、分析模块42以及预测模块43;其中,
所述获取模块41用于根据云成本账单获取资源数据;
所述分析模块42用于在付费类型为按量付费的情况下,分析所述资源数据包括:根据是否为创建K8s集群时的初始资源,将所述资源数据分为集群数据和扩容数据;根据所述K8s集群中的状态属性,将所述集群数据或扩容数据分为长期数据和临时数据;根据是否存在往期历史数据,将所述临时数据分为有支持数据和无支持数据;根据是否存在同类型的,且是临时增加并完成删除的设备参考数据,将所述无支持数据分为有参考数据和无参考数据;
所述预测模块43用于在所述有支持数据存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做二次指数平滑预测;在所述有支持数据不存在明显趋势的情况下,依据所述有支持数据之前的往期资源数据做一次指数平滑预测;
所述预测模块43还用于对所述有参考数据,结合其余临时增设设备做平均计算预测结果;对所述无参考数据,按照实际收费标准计算预测结果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于业务感知的云成本预测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于业务感知的云成本预测方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。