Infrastructure as a Service (IaaS) is considered to be an extension to the virtualization technique and facilitates provisioning of Virtual Machines, Volume Storage, Load Balancers, Object Storage etc., on on-demand basis. Earlier servers were provisioned usually on a yearly contract basis at a fixed rate which were costlier as well.
IaaS provides virtual resources on pay-per use model and that favors the consumers to decommission resources as and when required paying only for the number of hours these resources were actually used.
With the pay-per use model, billing system is expected to have certain set of capabilities apart from the basic set of features like subscription management, invoice generation, managing outstanding dues etc., This blog covers these capabilities required for billing IaaS resources.
Why Pay-per use?
Understanding how pay-per use model is different from the typical e-commerce billing model is significant before we move into the different capabilities required.
When a product is purchased from an e-commerce website, the order completes when the customer is satisfied with the product received. But in the pay-per use model the resources incur usage and cost as long as they are live and charged on a recurring billing period.
Figure 1: Purchase flow in an e-commerce site
In the pay-per use model works is depicted in the diagram below
Figure 1: Purchase flow in an e-commerce site
Mobile phone Billing Model
Billing model for telephone bill can be considered as best example for billing IaaS resources. The model for calculating the usage is almost same between IaaS and telephone call. Following are some of them which can be related to the IaaS billing model,
- Service based charging for the customer
c.Incoming charges in case of roaming to other state or country
d.Internet usage charges
e.Add-on package charges (ex: Missed call alert)
- Fixed monthly postpaid charge for the customer within a specific usage limit
a.Beyond the usage limit, overages will be charged at a different rate. We can choose for 1 GB of internet as the usage limit for a month and any usage beyond that will charged at $x/byte
b.Alert on reaching a specific threshold (80%).
- Consolidated billing for the whole family or linked mobile numbers
- Update the mobile plan as and when required and prorate it in the next invoice
- Detailed and aggregated billing
a.Show the duration and charge for each call
b.SMS to different mobile numbers and charge for each of them are listed separately
c.Overage if any are shown in the invoice
- Customized mobile plans based on usage
- Alerts and Notifications
Different Charge Models
When we buy a product from an e-commerce site, the payment is usually one time and we own the product. Whereas when we buy IaaS cloud resources, it is like the postpaid mobile connection and we have to pay for the number of talk-time minutes/hours. These cloud resources can be charged in different ways as follows
1.Usage Based Charge
This is the common charge type in IaaS billing model where the IaaS resources are charged for the no of running hours.
Example Resources: Virtual Machine, Volume Storage are usually charged for the running hours.
1.1 Usage Calculated based on running hours
Say we buy a Virtual Machine (VM) of 1 CPU, 1 GB RAM and 20 GB Storage and assume the charge for it to be $0.1/hr. Usage calculation is as follows
VM Creation Time: 2015-11-01 13:00 UTC
VM Termination Time 2015-11-02 14:00 UTC
Total no of running hours: 25
So, the charge applicable for this resource: 25 hours * 0.1 = $2.5
This usage based billing is very important for charging IaaS resources as most of its resources are charged by this model.
1.2 Usage Calculated based on metered usage
Consider the charge for telephone call; it is based on the no of seconds or minutes the call was live. Similarly, in IaaS, there are several resources that are charged based on the metered usage incurred on that particular resource
Example Resources: Bandwidth usage, Disk space used, No of GET/POST requests made to Object Storage (OBS) etc.,
In order to charge the resources as per the meter, it is required to somehow capture these metrics separately and import them to the billing system which can then be charged to the customer.
Say, Bandwidth is charged at “$0.01 per GB” then it is required to capture the no of GBs are used for a particular VM/Object Storage. For example, if the usage is metered as 500 GBs then the charge will be as follows
Metered Usage * Charge Amount = 500 GB * $0.01 = $5
1.3 Rounding-off usage
This could again be considered as an extension to “Usage based” charge. Usually the usage in IaaS are rounded off to a value – like hourly round off, daily round off or could be monthly round off as well depending upon the provider. Some IaaS providers may not even round off the usage and charge whatever was metered for that resource.
Say a VM has been provisioned and ran for 10 hours and 15 minutes.
In hourly round off, customer will be charged as 11 hours instead of 10 hrs and 15 mins.
2. Fixed Charge
This is usually the type of charge we do have experienced when subscribing to a service or a magazine. There could be a fixed monthly charge that is to paid for the service.
Example Resources: IP address, Software licenses, Monthly fixed cost for the for the Virtual Machines have a fixed monthly price.
Even Virtual Machines are provided at a fixed monthly or annual commitment. Price for these fixed cost VMs are usually lesser than the hourly charged VMs as fixed amount is charged at the start of every month.
This capability is required when the price for a particular resource is split into multiple tiers. The split could be based on the no of hours of usage, no of GBs used, promotional offer on a resource etc.,
Consider the price for “Object Storage disk space used” is as follows and price drops as the usage increases,
If the disk space used is 75TB for a particular month then,
75TB will be split as 1 TB + 9 TB + 65 TB as per the tier and will be charged as
- Charge for 1TB = 1 * 0.5 = $0.5
- Charge for 9TB = 9 * 0.4 = $3.6
- Charge for 65TB = 65 * 0.3 = $19.5
Summing up all the charge, $0.5 + $3.6 + $19.5 = $23.6. This becomes the charge for the disk spaced for that resource in a particular month.
This becomes a key capability when handling complex pricing model for resources and the tier pricing model can vary as per the need.
In IaaS there are resources that are dependent on other resources. Say when a Virtual Machine is provisioned there could be multiple resources that are dependent on this VM – like Windows License, IP address assigned, Monitoring for the VM etc.,
Usage for these dependent resources could be Fixed, Usage based or metered as per the need which needs to be kept track of separately and charged.
Consider the example of Virtual Machine resource and the same can be charged as follows,
- Cost of Hardware (1 CPU, 1 GB RAM, 100 GB Storage): $ 0.2 per hour
- Cost of Windows license: $0.1 per hour
- Cost of IP address: $10 per month (Fixed)
All the above 3 prices are to be charged for the VM as long as it is alive.
Say the VM has run for 30 days (720 hours) then,
Handling Price Revision
It is obvious that the price for a particular resource can change from time to time. When price for a particular resource changes, then the revised price has to be applied both for the new provisioning as well as for the existing subscriptions.
These price revisions will usually have an effective date; the date from which this price will be applied to the resources that are already purchased which usually set to 1st of very next month.
When a price for a particular resource is revised from $1 to $2 and the effective date is set to 1-Dec-15, then the resource will be charged at $1 during the month of November and the same will be charged at $2 starting 1st Dec.
These revisions are to handled carefully so there are no discrepancies that the customer could raise up.
Apart from the above said capabilities, there are several others as below are value adds to the billing system.
- Handling multiple currencies and charging the customer as per their preference
- Taxation handling based on geographic location of the customer
- Promotional offers and coupon discounts
- Details of the usage at the individual chargeable entity
- Aggregated usage at multiple levels similar to a telephone bill
With these key capabilities pay-per model can be achieved to a wider extent not only for the IaaS resources but also for SaaS or PaaS subscriptions.