Cloud billing is not a sexy subject. But billing is what keeps our businesses ticking. The challenge many service providers face is how to bill their customers for their cloud services.
Even for private clouds, billing is important. Being able to meter and rate usage, whether it is for internal chargeback or simply to demonstrate what department is using what resources, requires 90% of a billing system; it might not send invoices, but it does the same thing. If you are a service provider offering a ‘wrapped cloud offering’ where one invoice is produced at the end of each month, which is not directly correlated to usage, you still need to know how much it is costing you. So, for just about every application of cloud within service providers, billing really matters.
There are two main types of billing engines in use in service providers that are looking at providing cloud services. These are:
• Hosting billing – This is subscription billing; typically billing a fixed amount each month, on a single bill.
• Telco billing – This type of billing is the sort of billing that your phone company uses, based on CDRs (‘call description records’) which are metered, rated and billed – much like the back page of your phone bill.
The problems with hosting billing will have become apparent to any hosting provider that has tried to offer a cloud service using it. Billing is not in real-time, and the systems do not cope well with large amounts of usage dependent data. In addition, cloud services that allow rapid scaling (both up and down) of servers do not fit well with a subscription model. Whilst there are hosting providers offering services they describe as ‘cloud using hosting billing systems’, these in general are no more than a VPS system with a slightly improved user interface, rather than a true cloud service.
Telco billing systems represent a different set of challenges. Typically the systems are large, inflexible and non-realtime. Once upon a time, BT’s product range was limited by the fact their billing system only supported 99 price rating codes. Whilst the world has moved on a little from that position, some would say not by much. It’s not much use providing a stream of billing information unless it’s also possible to dig down into it, and reference it by the virtual resources which generated the bills. Telco billing systems are not good at this.
The other problem is that of scale. Compare the problem with billing all the mobile phone users in the UK:
• There are approximately 60 million handsets in the UK
• Each subscriber makes around 150 calls per month, at least according to my research
• That’s about 1,800 records per customer per year (quite a lot)
• The total number of records generated is somewhere around one hundred billion.
That sounds like a big number, right?
Now consider a cloud provider with 100,000 virtual servers (in orders of magnitude, that’s about where I think Amazon was a year ago):
• Assume they have 50,000 customers
• Each with an average of 2 running servers per customer and produce hourly billing
• Each server has 6 components (perhaps network, disk size, disk I/O, network I/O, OS image, and CPU/RAM)
• The platform produces 200 billing records each second.
• In one year, that’s one trillion records, or ten times as busy a billing system as billing every mobile phone customer in the UK.
Have a think whether your favourite hosting billing system is capable of that. Next, add up what is spent on mobile phone billing systems in the UK, multiply by ten, and ask whether you want to spend that.
Cloud customers expect real-time billing, instant sign-up and their bill to be comprehensive, so they can see granular reporting of what has been used and in what capacity. Cloud providers expect their billing systems to work at scale. Neither hosting billing nor telco billing provide these. Cloud simply requires different billing technology.