云计算计量计费方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 11:29:13
技术领域
本发明涉及云计算系统领域,尤其涉及一种云计算计量计费方法、装置、电子设备及存储介质。
背景技术
现有技术下,用户开通按需计费的云主机实例后,不论该主机实例处于何种运行状态,只要其配置信息未发生变化,云主机服务厂商都会定期对其收取相同费用,直到用户将该主机实例进行退订处理(又称实例释放,或实例删除)后才会停止计费。
采用EBS(弹性块存储)技术方案的云主机已经做到了计算与存储分离,当其处于关机状态时,其所占用的CPU(中央处理器)、内存等计算资源已经释放出来为其他云主机实例所用,同时其所对应的物理机也可利用该云主机实例所释放出来的CPU、内存等计算资源虚拟出更多的云主机实例从而提升该物理机的售卖比。在这种情况下,云主机服务厂商仍按照该云主机实例所对应的配置信息定期收取相同费用,而用户此时并未真正使用相应计算资源,对于用户而言很不公平,对于厂商自身而言,也不利于售卖,因为部分费用敏感的用户会在需要关机时将整台云主机退订,并在需要重新开机时重新下单订购一台云主机并重新安装所有需要用到的软件系统,但这么操作对于用户而言是体验极差的,用户很可能会因此而放弃使用该厂商的云主机服务。
发明内容
本发明的目的在于提供一种云计算计量计费方法、装置、电子设备及计算机可读存储介质,以实现云主机实例关机后账单费用最小化,提升用户使用体验。
根据本发明的第一方面,提供了一种云计算计量计费方法,包括:
获取待计费的云主机实例的标识;
根据所述标识获取与所述标识对应的数据记录集合;其中,数据记录集合包括的每条数据记录中包括云主机实例的实例配置信息、实例变更时间和实例变更类型;
针对每条数据记录,根据数据记录中的实例变更时间确定计费时长;
在数据记录中的实例变更类型为实例关机的情况下,根据计费时长对实例配置信息中的收费项进行计费处理,其中,收费项不包括计算资源对应的计费项。
可选的,根据实例变更时间确定计费时长包括:
确定数据记录中的实例变更时间是否小于上个账期的开始时间;
根据确定结果,确定计费开始时间;
将数据记录集合中实例变更时间大于数据记录的实例变更时间且数据记录集合中实例变更时间最小的数据记录确定为第二数据记录;
将第二数据记录中的实例变更时间确定为计费结束时间;
将结束时间与计费开始时间的差值确定为计费时长。
可选的,根据确定结果,确定计费开始时间包括:
在确定结果为数据记录中的实例变更时间小于上个账期的开始时间的情况下,将上个账期的开始时间确定为计费开始时间;
在确定结果为数据记录中的实例变更时间大于或等于上个账期的开始时间的情况下,将数据记录中的实例变更时间确定为计费开始时间。
可选的,在获取待计费的云主机实例的标识之前,所述方法还包括:
获取云主机实例的标识、实例配置信息、实例变更时间和实例变更类型;
根据标识、实例配置信息、实例变更时间和实例变更类型生成数据记录;
存储所述数据记录。
可选的,实例变更类型包括实例开通、实例关机、实例开机、实例更配和实例退订中至少一项。
可选的,根据所述标识、实例配置信息、实例变更时间和实例变更类型生成数据记录包括以下至少之一:
在实例变更类型为实例开通的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例开通时间作为实例变更时间、以实例开通作为实例变更类型生成所述数据记录;
在所述实例变更类型为实例关机的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例关机时间作为所述实例变更时间、以实例关机作为所述实例变更类型生成所述数据记录,其中,所述实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息;
在所述实例变更类型为实例开机的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例开机时间作为所述实例变更时间、以实例开机作为所述实例变更类型生成所述数据记录,其中,所述实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息;
在所述实例变更类型为实例更配的情况下,以所述云主机实例的标识作为键、以所述实例配置信息作为值、以实例配置变更时间作为所述实例变更时间、以实例更配作为实例变更类型生成所述数据记录;
在所述实例变更类型为实例退订的情况下,以所述云主机实例的标识作为键、以所述实例配置信息作为值、以实例退订时间作为所述实例变更时间、以实例退订作为实例变更类型生成所述数据记录,所述实例配置信息为空值。
可选的,获取所述云主机实例的实例配置信息包括:
在所述实例变更类型为实例开通或实例变更的情况下,通过订单服务器获取所述实例配置信息;
在所述实例变更类型为实例开机或实例关机的情况下,以所述标识查询本地数据库得到实例变更时间最大的数据记录,并将所述实例变更时间最大的数据记录中的实例配置信息作为所述实例配置信息。
根据本发明的第二方面,提供了一种云计算计量计费装置,包括:
第一获取模块,用于获取待计费的云主机实例的标识;
第二获取模块,用于根据所述标识获取与所述标识对应的数据记录集合;其中,所述数据记录集合包括的每条数据记录中包括所述云主机实例的实例配置信息、实例变更时间和实例变更类型;
确定模块,用于针对每条数据记录,根据所述数据记录中的实例变更时间确定计费时长;
计费模块,用于在所述数据记录中的实例变更类型为实例关机的情况下,根据所述计费时长对所述实例配置信息中的收费项进行计费处理,其中,所述收费项不包括计算资源对应的计费项。
可选的,所述确定模块根据所述实例变更时间确定计费时长包括:
确定所述数据记录中的实例变更时间是否小于上个账期的开始时间;
根据确定结果,确定计费开始时间;
将所述数据记录集合中实例变更时间大于所述数据记录的实例变更时间且所述数据记录集合中实例变更时间最小的数据记录确定为第二数据记录;
将所述第二数据记录中的实例变更时间确定为计费结束时间;
将所述结束时间与所述计费开始时间的差值确定为所述计费时长。
可选的,所述确定模块根据确定结果,确定计费开始时间包括:
在确定结果为所述数据记录中的实例变更时间小于所述上个账期的开始时间的情况下,将所述上个账期的开始时间确定为所述计费开始时间;
在确定结果为所述数据记录中的实例变更时间大于或等于所述上个账期的开始时间的情况下,将所述数据记录中的实例变更时间确定为所述计费开始时间。
可选的,所述装置还包括:
第三获取模块,用于获取所述云主机实例的标识、实例配置信息、实例变更时间和实例变更类型;
生成模块,用于根据所述标识、实例配置信息、实例变更时间和实例变更类型生成数据记录;
存储模块,用于存储所述数据记录。
可选的,所述实例变更类型包括实例开通、实例关机、实例开机、实例更配和实例退订中至少一项。
可选的,所述生成模块根据所述标识、实例配置信息、实例变更时间和实例变更类型生成所述数据记录包括以下至少之一:
在所述实例变更类型为实例开通的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例开通时间作为所述实例变更时间、以实例开通作为所述实例变更类型生成所述数据记录;
在所述实例变更类型为实例关机的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例关机时间作为所述实例变更时间、以实例关机作为所述实例变更类型生成所述数据记录,其中,所述实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息;
在所述实例变更类型为实例开机的情况下,以所述标识作为键、以所述实例配置信息作为值、以实例开机时间作为所述实例变更时间、以实例开机作为所述实例变更类型生成所述数据记录,其中,所述实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息;
在所述实例变更类型为实例更配的情况下,以所述云主机实例的标识作为键、以所述实例配置信息作为值、以实例配置变更时间作为所述实例变更时间、以实例更配作为实例变更类型生成所述数据记录;
在所述实例变更类型为实例退订的情况下,以所述云主机实例的标识作为键、以所述实例配置信息作为值、以实例退订时间作为所述实例变更时间、以实例退订作为实例变更类型生成所述数据记录,所述实例配置信息为空值。
可选的,第三获取模块获取所述云主机实例的实例配置信息包括:
在所述实例变更类型为实例开通或实例变更的情况下,通过订单服务器获取所述实例配置信息;
在所述实例变更类型为实例开机或实例关机的情况下,以所述标识查询本地数据库得到实例变更时间最大的数据记录,并将所述实例变更时间最大的数据记录中的实例配置信息作为所述实例配置信息。
根据本发明的第三方面,提供了一种电子设备,此电子设备包括:
根据本发明第二方面所述的云计算计量计费装置;或者,
处理器和存储器,存储器用于存储可执行的指令,所述指令用于控制处理器执行根据本发明第一方面所述的云计算计量计费方法。
根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据本发明第一方面所述的云计算计量计费方法。
根据本发明实施例,获取包含有云主机实例对应实例变更时间和实例变更类型的数据记录,并根据实例变更时间得到对应的计费时长,基于计费时长对实例变更类型为实例关机的云主机实例的计算资源进行不计费处理。如此可以使得费用敏感的用户无需在想要关机时对云主机实例做退订处理,想要重新开机时也无需重新下单订购并重新安装所有软件系统,从而真正做到想关机就关机,想开机就开机,实现用户使用云主机实例的账单费用最小化。不仅提升了用户的使用体验,还可以使得云主机厂商吸引更多用户使用,并且在最大化物理机售卖比的同时保持并提升存储和网络资源的售卖。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为可用于实现本发明实施例的电子设备的硬件配置结构方框图。
图2为本发明实施例的云计算计量计费方法步骤流程图。
图3为本发明实施例的云计算计量计费方法的具体示例图。
图4为本发明实施例的云计算计量计费装置的结构方框图。
图5为本发明实施例的电子设备的结构方框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的结构方框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。
如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项云计算计量计费方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如电子设备1000可以只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
在本发明一个实施例中,提供一种云计算计量计费方法。
请参考图2,该图为本发明实施例的云计算计量计费方法步骤流程图,云计算计量计费方法可以是由电子设备实施,该电子设备例如可以是如图1所示的电子设备1000。
如图2所示,本发明实施例的云计算计量计费方法包括以下步骤:
步骤102,获取待计费的云主机实例的标识(ID);
步骤104,根据所述标识获取与所述标识对应的数据记录集合;其中,数据记录集合包括的每条数据记录中包括云主机实例的实例配置信息、实例变更时间和实例变更类型;
步骤106,针对每条数据记录,根据数据记录中的实例变更时间确定计费时长;
步骤108,在数据记录中的实例变更类型为实例关机的情况下,根据计费时长对实例配置信息中的收费项进行计费处理,其中,收费项不包括计算资源对应的计费项。
在一个示例中,在获取待计费的云主机实例的标识之前,云计算计量计费方法还包括:获取云主机实例的标识、实例配置信息、实例变更时间和实例变更类型,然后根据所述标识、实例配置信息、实例变更时间和实例变更类型生成所述数据记录,并存储所述数据记录。
数据记录包括但不限于云主机实例的标识、实例变更时间、实例配置信息和对应不同变更操作的实例变更类型。
不同的变更操作包括但不限于实例开通操作、实例关机操作、实例开机操作、实例更配操作及实例退订操作中至少一项。
对应不同的变更操作,实例变更类型包括:实例开通、实例关机、实例开机、实例更配及实例退订中至少一项。
对应地,实例变更时间包括:实例的开通时间、实例的关机时间、实例的开机时间、实例变更配置的时间及实例的退订时间中至少一项。
对应地,实例配置信息包括:实例开通时用户所选的配置信息;用户关机时以云主机实例的标识作为键(key)查询获得的实例变更时间最大的数据记录中的实例配置信息;用户开机时以云主机实例的标识作为key查询获得的实例变更时间最大的数据记录中的实例配置信息;变更配置后云主机实例的配置信息;以及配置信息为空值中至少一项。
在一个示例中,云主机的实例配置信息包括但不仅限于CPU、内存、磁盘、网络等收费项所对应的配置信息,例如配置云主机如下:CPU 1核、内存2G、磁盘100G、网络为1M固定带宽等。
其中,计算资源包括云主机实例的CPU和内存,计算资源随着云主机的关机而释放出来。
磁盘和网络为非计算资源,磁盘为存储资源,网络带宽为网络资源,二者都属于非计算资源,不会随着云主机的关机而释放,仍被订购该资源的用户所占用。
对于不同变更操作对应的实例变更类型的不同,所存储的数据记录的生成也实际不同。具体如下:
在实例变更类型为实例开通的情况下,以云主机实例的标识作为键key、以成功开通的云主机实例的配置信息作为值value、以实例开通时间作为实例变更时间以及以实例开通作为实例变更类型生成数据记录。
在实例变更类型为实例关机的情况下,以云主机实例的标识作为key、以实例配置信息作为value、以实例关机时间作为实例变更时间以及以实例关机作为实例变更类型生成数据记录,其中,实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息。
在实例变更类型为实例开机的情况下,以云主机实例的标识作为key、以实例配置信息作为value、以实例开机时间作为实例变更时间以及以实例开机作为实例变更类型生成数据记录,其中,实例配置信息为基于所述标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息。
在实例变更类型为实例更配的情况下,以云主机实例的标识作为key、以实例配置信息作为value、以实例配置变更时间作为实例变更时间以及以实例更配作为实例变更类型生成数据记录。
在实例变更类型为实例退订的情况下,以云主机实例的标识作为key、以所述实例配置信息作为值、以实例退订时间作为实例变更时间以及以实例退订作为实例变更类型生成数据记录,所述实例配置信息为空值。
在一个示例中,获取云主机实例的实例配置信息包括:在实例变更类型为实例开通或实例变更的情况下,通过订单服务器获取实例配置信息;在实例变更类型为实例开机或实例关机的情况下,以标识查询本地数据库得到实例变更时间最大的数据记录,并将实例变更时间最大的数据记录中的实例配置信息作为实例配置信息。
本发明中,对于实例变更类型为实例关机的计算资源不进行计费,对于实例变更类型为实例开通、实例开机或实例更配计算资源仍进行计费。
具体来说,对于实例关机,在一个示例中,计费步骤如下:
根据云主机实例的标识查询实例变更时间小于或等于账期开始时间的所有数据记录中实例变更时间最大的数据记录;
根据云主机实例的标识查询实例变更时间大于账期开始时间的所有数据记录;
对查询获得的数据记录中实例变更时间相邻的每两条数据记录对应的实例变更时间计算出差值;以及
以所述差值作为计费时长,对相邻两条数据记录中实例变更时间在先且实例变更类型为实例关机的数据记录的实例配置信息中不包含计算资源在内的每一个收费项进行计费。
具体来说,确定数据记录中的实例变更时间是否小于上个账期的开始时间,在数据记录中的实例变更时间小于上个账期的开始时间的情况下,将上个账期的开始时间确定为计费开始时间;在数据记录中的实例变更时间大于或等于上个账期的开始时间的情况下,将数据记录中的实例变更时间确定为计费开始时间。
然后,将数据记录集合中实例变更时间大于数据记录的实例变更时间且数据记录集合中实例变更时间最小的数据记录确定为第二数据记录,并将第二数据记录中的实例变更时间确定为计费结束时间,最后,将结束时间与计费开始时间的差值确定为所述计费时长。
对于实例开通、实例开机或实例更配,在一个示例中,计费步骤如下:
根据云主机实例的标识查询实例变更时间小于或等于账期开始时间的所有数据记录中实例变更时间最大的数据记录;
根据云主机实例的标识查询实例变更时间大于账期开始时间的所有数据记录;
对查询获得的数据记录中实例变更时间相邻的每两条数据记录对应的实例变更时间计算出差值;以及
以所述差值作为计费时长,对相邻两条数据记录中实例变更时间在先的数据记录的实例配置信息中包含计算资源在内的每一个收费项进行计费。
根据数据记录,对不同变更操作对应的计算资源进行不同的计费。
对于实例变更类型为实例退订时,由于往后不会再有新的实例变更记录出现,因此对包含计算资源在内的实例所有收费项将不再计费。
下面,将结合图3,对本发明的云计算计量计费方法给出具体说明,图3为本发明实施例的云计算计量计费方法的具体示例图。
本发明云计算计量计费方法涉及云计算订单系统2400、云计算计量计费系统2800和云主机系统2600的3个主要部分,完整流程如下:
以下流程将结合上述3个系统部分,对用户通过云主机用户平台2200对相应云主机实例进行开通操作、关机操作、开机操作、更配操作和退订操作的5种情况分别作出说明。
(1)步骤202云主机实例开通操作
用户在云主机用户平台2200,例如云主机租户控制台下单订购相应配置的云主机时,或通过调用创建云主机的开放平台OpenAPI(开放程序接口)来下单订购相应配置的云主机时,由云主机租户控制台或云主机OpenAPI系统(云主机用户平台2200)将云主机的配置信息(包括但不仅限于CPU、内存、磁盘、网络等收费项所对应的配置信息,如CPU 2核、内存4G、磁盘200G、网络为10M固定带宽)通过云计算订单系统2400同步至云计算计量计费系统2600,具体来说包括以下步骤:
a)云主机用户平台2200将用户所选配置信息通过云计算订单系统2400的接口发送至云计算订单系统2400的服务端(订单服务器);
b)云计算订单系统2400的服务端在处理完订单支付业务逻辑后,通知云主机系统2600执行相应配置的云主机实例开通操作,并在云主机系统2600将实例开通操作执行结果返回后,将成功开通的云主机实例的配置信息、实例的标识、实例开通时间等信息发送给云计算计量计费系统2800;
c)云计算计量计费系统2800将云主机实例的实例的标识、配置信息、实例开通时间等信息存入本地数据库(所述数据库的每一条记录包括但不仅限于实例的标识、实例配置、实例变更时间、实例变更类型等关键字段,其中实例变更类型包括实例开通、实例更配、实例关机、实例开机、实例退订5种类型)。具体来说,就是以实例的标识为键(key),以配置信息为值(value),以实例开通时间作为实例变更时间,以实例开通作为实例变更类型,生成一条新的数据记录进行存储。
(2)步骤204云主机实例关机操作
用户通过云主机用户平台2200对相应云主机实例进行关机操作时,由云主机用户平台2200在相应云主机实例被成功关机后,直接将云主机实例的实例标识、成功关机时间等信息发送给云计算计量计费系统2800,并由计量计费系统2800做如下处理:
a)以实例的标识为key,从前述计量计费系统2800数据库中查询获取实例变更时间最大的数据记录;具体言之,实例变更时,在未存储当前数据记录之前,以实例的标识为key查询到的实例变更时间最大的记录,是最近一次实例变更后所存储的记录,获取其配置信息即为读取本次变更(关机操作)之前的实例配置信息。
b)以实例的标识为key,以前述查询所得数据记录中的实例配置信息(即,查询获取实例变更时间最大的数据记录对应的配置信息)为value,以成功关机时间为实例变更时间,以实例关机为实例变更类生成一条新的数据记录进行存储。
(3)步骤206云主机实例开机操作
用户通过云主机用户平台2200对相应云主机实例进行开机操作时,由云主机用户平台2200在相应云主机实例被成功开机后,直接将云主机实例的实例标识、成功开机时间等信息发送给云计算计量计费系统2800,并由云计算计量计费系统2800做如下处理:
a)以实例的标识为key,从前述云计算计量计费系统2800的数据库中查询获取实例变更时间最大的数据记录;具体言之,实例变更时,在未存储当前数据记录之前,以实例的标识为key查询到的实例变更时间最大的记录,是最近一次实例变更后所存储的记录,获取其配置信息即为读取本次变更(开机操作)之前的实例配置信息。
b)以实例的标识为key,以前述查询所得数据记录中的实例配置信息(即,查询获取实例变更时间最大的数据记录对应的配置信息)为value,以成功开机时间为实例变更时间,以实例开机为实例变更类生成一条新的数据记录进行存储。
(4)步骤208云主机实例更配操作
用户通过云主机用户平台2200对云主机实例进行升、降配处理时,由云主机用户平台2200将实例的标识及变更后的配置信息、变更时间通过云计算订单系统2400同步至云计算计量计费系统2800,具体来说包括以下步骤:
a)云主机用户平台2200将实例变更后配置信息通过云计算订单系统2400的接口发送至云计算订单系统2400的服务端;
b)云计算订单系统2400的服务端在处理完订单支付业务逻辑后,通知云主机系统2600执行相应云主机实例的配置变更操作,并在云主机系统2600将实例配置变更操作执行结果返回后,将成功变更配置的云主机实例的实例标识、变更后配置信息、配置变更时间等信息发送给云计算计量计费系统2800。
云计算计量计费系统2800以实例的标识为key,以变更后配置信息为value,以配置变更时间作为实例变更时间,以实例更配作为实例变更类型生成一条新的数据记录进行存储。
(5)步骤210云主机实例退订操作
用户通过云主机用户平台2200对相应云主机实例进行退订操作时包括以下步骤:
a)云主机用户平台2200将待退订实例的实例标识通过云计算订单系统2400的接口发送给云计算订单系统2400的服务端;
b)云计算订单系统2400的服务端在处理完订单层业务逻辑处理后,通知云主机系统2600执行相应云主机实例的关停处理,并将实例的标识和实例退订时间发送给云计算计量计费系统2800;
c)云计算计量计费系统2800以实例的标识为key,以空值为value,以实例退订时间为实例变更时间,以实例退订为实例变更类型生成一条新的数据记录进行存储。
如上可知,在步骤202、208、210中,由云计算订单系统2400将云主机实例的标识、实例变更时间和实例配置等信息发给云计算计量2800;在步骤204、206中,由云主机用户平台2200直接将云主机实例的标识、实例变更时间等信息发送给云计算计量计费系统2800。
下面,结合云计算计量计费系统2800对开通操作、关机操作、开机操作、更配操作和退订操作的5种情况下对应的云计算计量计费进行说明。
云计算计量计费系统2800定期(通常是每隔数小时,例如1小时)出账单时,首先获取所有待计费的实例的标识全集,并对实例的标识全集中的每一个实例按如下方式进行计量计费:
a)以待计费实例的实例标识为key,查询实例变更时间小于等于上一个账期开始时间(以每隔1小时出一次账单为例,则上一个账期开始时间就是上一个小时的0分0秒,如2019-09-30 13:00:00)的所有数据记录中实例变更时间最大的数据记录,实例变更时间最大的数据记录只有1条;
b)以待计费实例的实例标识为key,查询实例变更时间大于上一个账期开始时间的所有数据记录;
c)将步骤a、b中查询获得的所有数据记录按实例变更时间升序进行排序获得新的数据记录集合,然后遍历集合中的每一条数据记录,并在遍历过程中做如下计费处理:
c1)以数据记录集合中升序排列的第一条数据所述数据记录作为第一数据记录,以所述第一数据记录中的实例变更时间作为计费开始时间,若实例变更时间小于上个账期开始时间,则以上个账期开始时间作为计费开始时间;
c2)以所述第一数据记录在数据记录集合中的下一条数据(即实例变更时间大于所述第一数据记录的实例变更时间且实例变更时间最小的记录)作为第二数据记录,并以所述第二数据记录的实例变更时间作为计费结束时间;第一数据记录与第二数据记录为相邻的数据记录;
c3)若所述第一数据记录中的实例变更类型为实例退订,则继续下一次遍历操作,换言之,对于实例退订时,对实例的所有收费项将不再计费;
c4)若所述第一数据记录中的实例变更类型为实例开通、实例更配、实例开机中的任何一个,以所述计费结束时间与所述计费开始时间的差值作为计费时长,对所述第一数据记录中的实例配置信息中的每一个收费项分别进行计费(所述收费项的计量值就是实例配置信息中每个收费项对应的配置值,计费单价由云计算厂商的商品定价系统提供)以生成各收费项费用明细数据,并将各收费项费用加和获得该实例在当前计费时间段内的总费用;
c5)若所述第一数据记录中的实例变更类型为实例关机,则对所述第一数据记录中的实例配置信息中的各收费项分别做如下处理:
c5-i)对于CPU、内存等计算资源类收费项,直接按不计费处理,即收费项费用明细数据中的费用项为0元;
c5-ii)对于存储、网络等非计算资源类收费项,按步骤c4的方式进行计费处理;
d)待所述实例的数据记录集中的每一条实例变更记录都完成计费处理后,将所有计费时间段内的总费用加和,即可获得所述实例在上个账期内的总费用。
本发明对于不同的变更操作,将实例当时的配置(或更配后的配置)信息和事件发生的时间点进行存储,并根据存储的数据记录对不同变更操作进行不同的计费。
通过获取包含有云主机实例对应实例变更时间和实例变更类型的数据记录,并根据实例变更时间得到对应的计费时长,基于计费时长对实例变更类型为实例关机的云主机实例的计算资源进行不计费处理。具体地,在计费时本发明可以根据事件发生的先后顺序,从中获取与当前计费账期相关的数据记录用于计费;计费时在每一次实例关机到再次开机之间的时间段内将CPU、内存等计算资源类的收费项做不计费处理,将其他收费项做正常计费处理。
在云主机实例关机后不再对其所对应的CPU、内存等计算资源进行计费,而继续对其所对应的存储、网络资源进行计费,从而使得费用敏感的用户无需在想要关机时对云主机实例做退订处理,想要重新开机时也无需重新下单订购并重新安装所有软件系统,从而真正做到想关机就关机,想开机就开机,实现费用最小化。
对于厂商而言,一方面可以吸引更多用户(尤其是费用敏感型用户)使用,另一方面也可以在最大化物理机售卖比的同时保持并提升存储和网络资源的售卖。
在本发明另一个实施例中,还提供了一种云计算计量计费装置3000,如图4所示,图4为本发明实施例的云计算计量计费系统的结构方框图。
云计算计量计费装置3000包括第一获取模块3200、第二获取模块3400、确定模块3600和计费模块3800,其中第一获取模块3200获取待计费的云主机实例的标识,第二获取模块3400用于根据所述标识获取与所述标识对应的数据记录集合,其中数据记录集合包括的每条数据记录中包括云主机实例的实例配置信息、实例变更时间和实例变更类型。
确定模块3600用于针对每条数据记录,根据数据记录中的实例变更时间确定计费时长,计费模块3800用于在数据记录中的实例变更类型为实例关机的情况下,根据计费时长对实例配置信息中的收费项进行计费处理,其中,收费项不包括计算资源对应的计费项。
在一个示例中,计算资源包括云主机实例的CPU和内存中至少一项,实例变更类型包括实例开通、实例关机、实例开机、实例更配和实例退订中至少一项。
在一个示例中,确定模块3600根据实例变更时间确定计费时长时,首先确定数据记录中的实例变更时间是否小于上个账期的开始时间。在确定结果为数据记录中的实例变更时间小于上个账期的开始时间的情况下,将上个账期的开始时间确定为计费开始时间,在确定结果为数据记录中的实例变更时间大于或等于上个账期的开始时间的情况下,将数据记录中的实例变更时间确定为计费开始时间。
确定模块3600将数据记录集合中实例变更时间大于数据记录的实例变更时间且数据记录集合中实例变更时间最小的数据记录确定为第二数据记录,并将第二数据记录中的实例变更时间确定为计费结束时间,以及将结束时间与计费开始时间的差值确定为计费时长。
在一个示例中,云计算计量计费装置3000还包括第三获取模块3020,用于获取云主机实例的标识、实例配置信息、实例变更时间和实例变更类型;生成模块3040,用于根据标识、实例配置信息、实例变更时间和实例变更类型生成数据记录;存储模块3060,用于存储数据记录。
第三获取模块3020获取云主机实例的实例配置信息时,在实例变更类型为实例开通或实例变更的情况下,通过订单服务器获取实例配置信息;在实例变更类型为实例开机或实例关机的情况下,以标识查询本地数据库得到实例变更时间最大的数据记录,并将实例变更时间最大的数据记录中的实例配置信息作为实例配置信息。
在一个示例中,第一获取模块3200可以从第三获取模块3020获取的数据中得到对应的获取待计费的云主机实例的标识,第二获取模块3400可以从存储模块3060中获取标识获取对应的数据记录集合。
对于不同的实例变更类型,生成模块3040生成数据记录的方式如下:
在一个示例中,在实例变更类型为实例开通时,生成模块3040以云主机实例的标识作为键key、以成功开通的云主机实例的配置信息作为值value、以实例开通时间作为实例变更时间以及以实例开通作为实例变更类型生成数据记录。
在一个示例中,在实例变更类型为实例关机时,生成模块3040以云主机实例的标识作为key、以实例配置信息作为value、以实例关机时间作为实例变更时间以及以实例关机作为实例变更类型生成数据记录,其中实例配置信息为基于标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息。
在一个示例中,在实例变更类型为实例开机时,生成模块3040以云主机实例的标识作为key、以实例配置信息作为value、以实例开机时间作为实例变更时间以及以实例开机作为实例变更类型生成数据记录,其中实例配置信息为基于标识查询本地数据库得到的实例变更时间最大的数据记录中的实例配置信息。
在一个示例中,在实例变更类型为实例更配时,生成模块3040以云主机实例的标识作为key、以实例配置信息作为value、以实例配置变更时间作为实例变更时间以及以实例更配作为实例变更类型生成数据记录。
在一个示例中,在实例变更类型为实例退订时,生成模块3040以云主机实例的标识作为key、以实例配置信息作为值、以实例退订时间作为实例变更时间以及以实例退订作为实例变更类型生成数据记录,实例配置信息为空值。
根据本发明的再一个实施例,还提供了一种电子设备,该电子设备6000可以是图1所示的电子设备1000。图5为本发明实施例的电子设备的结构方框图。
一方面,该电子设备6000可以包括前述云计算计量计费装置,用于实施本发明任意实施例的云计算计量计费方法。
另一方面,如图5所示,电子设备6000可以包括存储器6200和处理器6400,存储器6200用于存储可执行的指令;该指令用于控制处理器6400执行前述的云计算计量计费方法。
在本实施例中,电子设备6000可以是手机、平板电脑、掌上电脑、台式机、笔记本电脑、工作站、游戏机等任意具有存储器6200以及处理器6400的电子产品。
最后,根据本发明的又一个实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现根据本发明任意实施例所述的云计算计量计费方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
- 云计算计量计费方法、装置、电子设备及存储介质
- 一种云计算资源计费的方法、装置、电子设备和存储介质