When it comes to billing for cloud services, it’s a tricky business. Sometimes complexity can take over causing services to not be billed for correctly. And as we all know, if you are not billing properly, you are most likely losing money or customers.
Here are three cloud billing pitfalls we believe every service provider should avoid based on our experience.
1. Dealing with Data Overload
Cloud products are generally billed by usage. This means it is necessary to measure usage of a large number of virtual resources on the platform; for example the platform will typically measure how long each server is running, how many bytes have been transferred through each virtual network interface card, and so on. The sheer amount of data collected can be enormous.
To illustrate the data overload point, Flexiant Cloud Orchestrator measures between 20 and 30 values per running server, and that measurement process is carried out roughly every ten minutes. For a moderate size cloud platform running 10,000 servers, that is about 36 million records an hour, or a billion records per month (if you kept them all). To have any hope of billing accurately, you need to ensure your metering system can scale to handle the above data.
After usage is metered and data collected, the metered records are passed through a process called rating where they are matched with the products the customer has bought (we will touch on that later) and invoices are generated based on the rating process. Standard subscription billing models generate a relatively small amount of invoice data. A customer with one server billed monthly receives one invoice a month, with one invoice line. A customer with 100 servers hopefully receives one invoice a month, with one invoice line and a ‘quantity’ field set to 100 rather than 100 invoices.
However, when a cloud product is billed, the customer is billed for usage of resources. One approach would be to bill in currency for every resource used. One can quickly see how this could generate a snowstorm of invoices. Telecom companies when billing for phone calls tend to deal with this issue by having a ‘back page’ of the phone bill containing the metered and rated data (called Call Description Records, or CDRs) and a front page summing up usage. What the telco is doing here is aggregation: collecting data and combining it to produce fewer lines on the invoice. Cloud billing can use similar techniques to keep the sea of data away from the invoice itself.
We go one step further in Flexiant Cloud Orchestrator, allowing the customer to purchase arbitrary ‘units’ that can be spent on virtual resources (such as servers and disks) over time, a bit like a mobile phone top up. These units may or may not relate directly to currency charges (indeed, they allow for bulk discounts by permitting a non-1:1 relationship). As the only currency transactions are the purchase of units, this reduces the number of invoices still further to one per unit purchase. This can also accelerate cash flow for the service provider, particularly when there is an incentive to buy units in advance, for instance through a quantity discount. Of course the customer may still want to know what his units have been spent on, (a process often called ‘showback’), but that data can be kept out of the invoicing system and inside the orchestration system.
2. Billing Flexibility
We have made a lot of noise about the importance of differentiation in the service provider market. One mechanism of achieving that differentiation is by using differentiated billing and product structures. The more flexible the billing system, the easier it is to do this. If your billing system assumes you have one particular business model, it is difficult to present your products as differing in anything but price.
We have also found that almost every customer has had slightly different billing preferences. Taking the seemingly simple question of billing for IP addresses, some like to:
- Bill per IP in use
- Bill per subnet
- Bill for both IP and subnet
- Give the first IP address away free
- Give the first IP address on each cluster free
- Give the first IP address on each server free
Whilst in one sense a billing system that gives you all those options would be very flexible, combine all the possibilities and you will find a system that rapidly spirals into unmanageable complexity. Therefore, it is important to strike a balance between flexibility and ease of use.
But every time we’ve made that point to customers that additional features increase complexity, predictably enough, they’ve pushed back, and told us that whilst we might be right in general, incorporating the one tiny billing feature they really need would not make things much more complex. In response to this, we have developed a solution that we believe is unique in the industry. We have a fully field programmable billing system, allowing our licensees to program our billing engine themselves in a language called Flexiant Development Language (FDL). So, by way of example, if you want to bill servers at a different rate for peak versus non-peak hours (not a standard requirement), you can simply write what we call a billing method in FDL to do that. Or if you want to give the first three IP addresses away for free, you can do that too.
Famous poet, John Donne said ‘no man is an island’; this applies more so to cloud orchestration software. Even in a total green-field install, no cloud orchestration software contains a full accounts package, so at some point cloud orchestration software must interface with other software, whether that is software to meter, to rate, to produce invoice lines, to invoice, to collect, or simply an accounts package. Similarly, service providers often have existing customer bases to service, or non-cloud products to bill for (for instance dedicated servers or domain names).
Purchasing a cloud orchestration system that cannot interface with your financial systems and/or customer management systems is a mistake.
Cloud orchestration software therefore needs to provide flexible interfaces to integrate with those other systems. Flexiant Cloud Orchestrator can integrate at each of the points mentioned above. In addition, we have recently announced support for ‘out the box’ integration with third party billing systems such as Hostbill and WHMCS and other billing systems through our API.
Cloud orchestration provides exciting technology that allows service providers to offer new products to their customer base, but it is all too easy to forget to work out how to bill for these. Before making any decision on cloud orchestration software, consider carefully how you will monetize your technology products.
Read our whitepaper on cloud billing which highlights common pitfalls in cloud billing systems, and identifying how Flexiant Cloud Orchestrator meets these challenges.