Iaas云平台通用计费逻辑的分层设计
- 设计背景
在当前云计算市场,Iaas作为最底层基础设施,负责提供底层IT资源的灵活调度与租赁服务,随着IaasS业务的不断深入开展,不同客户对于计费的需求也不尽相同,最直接的体现就是交付给不同客户账单的格式以及具体字段处于变动之中。作为服务方,我们须要针对客户的需求做及时性的个性化调整,但是又须要保证整体计费逻辑的通用性和稳定性。可以说,云平台作为基础平台,稳定性和通用性是前提,个性化是拓展。
本文提供了一种分层设计的理念来处理这一矛盾。
- 设计思路
云资源的使用主要分为3类:
- 虚拟服务器的分配和使用
- 云存储设备的分配和使用
- 流入和流出的网络流量使用
结合上述3类,提出以下分层设计。
- 第一层设计
云平台的计费模块承担:
- 虚拟服务器:vcpu的基础单价设置(颗粒度:1C)以及 vmem的基础单价设置(颗粒度:1G)
- 云存储设备:vdisk的基础单价设置(颗粒度:1G)
- 网络流量:eip的基础单价设置(颗粒度:1Mbps)
第一层的基础单价设置,主要基于云服务的成本层面进行定价,包括:云服务的设计和开发成本,云服务部署成本,云服务运行成本等。单位:¥/s。
- 第二层设计
在客户使用的实际场景中,一些通用的产品会以组合的形式体现,从运营角度出发,也会推出一定的优惠力度以推广引流,因此在第二层设计中体现为产品折扣:
- 虚拟服务器:vcpu+vmem的组合产品单价 =(vcpu的基础单价*vcpu数+vmem的基础单价*vmem数)*计算折扣
- 云存储设备:vdisk产品单价 = vdisk的基础单价*vdisk大小*存储折扣,
- 网络流量:eip产品单价 = eip的基础单价*eip带宽or流量*带宽折扣
由于计算资源的CPU和内存的不可分割性,因此将二者组合起来进行产品折扣的换算,其后台存储的是该组合的折扣数据,用户端展现为计算后的组合价格,这样保证了和第一层的逻辑联系。例:阿里云对1C1G的云主机进行5折低价销售,则意味着针对1C1G的计算组合,其产品折扣为0.5。
由于和计算资源进行独立,对于存储资源和网络资源分别做产品折扣处理。存储资源可以针对不同性质的存储资源(SATA/SAS/SSD)进行产品价格设置,也可以配合计算资源进行产品折扣,例:阿里云对1C1G存储大小为1-10G的性能型云主机进行5折低价销售,如果存储超过10G,则存储部分无优惠。
对于网络资源,同样可以通过设置相同的折扣价格,来配合计算存储资源的组合折扣类型,此外,网络资源有IP地址组的设置,还有内外流量的区分,均可以通过折扣来实现收费的区别。例:为鼓励用户使用对象存储资源,eip上行流量不收费,折扣设为0。
综合实例:绑定带宽为4M的4核8G系统盘50G的云主机,其最终整体单价为:4C8G的基础单价*计算折扣+50*存储折扣+4*eip单价*带宽折扣。单位:¥/s。
以上各类产品的折扣,相比较于第一层更复杂,体现在:
- 对于计算/存储/网络各类资源特征分别进行折扣设计。
- 用户在各类资源使用以及自主切换场景时的边界性计费问题。
- 第三层设计
第一层和第二层是资源层面的考虑的体现,第三层和第四层是运营层面考虑的体现。
计算,存储和网络资源的开通和删除都是有一定生命周期的,从start time 到end time,各类资源的租赁信息需要存放至billing相关的数据库中,我们可以获得以秒级为时间颗粒度的服务时间信息。
在云资源服务中,不同收费频率意味着不同的服务价格,包年的优惠一定比按量计费的优惠力度更大,因此第三层设计是:基于资源的特征,对于不同收费频率(小时/周/天/月/年)分别进行折扣设计。
例:某包年用户的1台主机,其收费价格为:总价 = 主机资源整体单价*(365*24*3600)*包年折扣。
第三层设计以第二层单价为基础,结合时间维度和频率折扣,获得了总价。第三层折扣的复杂度主要体现在:
用户在各类资源使用生命周期内自主切换频率时的边界性计费问题。
- 第四层设计
在服务过程中,需要根据个别客户或者根据客户的特征制定客户优惠政策,因此第三层设计为客户优惠:
客户实际单价=产品折后价*客户折扣
例:针对预付费用户执行账单99折的优惠。
第四层设计以第三层总价为基础,获得了最终账单价格。
- 小结
计算、存储和网络,是云计算的三大基础,无论集群服务多么复杂,无论主节点和从节点的数量有多少,本质上是CPU、内存、磁盘和网络带宽的堆叠,无论云服务的产品类型有多么缤纷,本质上是云主机部署的不同服务的综合体现。
以上四层价格设计,以基础资源为入口,层层递进,一定程度上厘清了云资源价格设置的纷繁复杂的表象。