There’s an adage about chargebacks: Everyone talks about chargebacks, but no one ever does them. Whenever the topic arises, there is a collective groan in the conference room – and why shouldn’t there be? Why talk about something that we all know we won’t have the conviction to actually do? Isn’t it just funny-money in the end? For that matter, does a cloud really even need chargeback? Isn’t one of the benefits of cloud the ability to consume finite resources as though they are infinite? If cloud is infinite, why bother with reportback or even accounting, let alone chargeback?
Well, yes, it’s true that clouds allow finite resources to be consumed as though they are infinite. But this is in the sense that clouds reduce operational friction and allow more work to be accomplished by consumers in less time. However, bringing efficient consumption to a constrained system doesn’t make system resources infinite any more than an ATM card makes my bank account infinite. If anything, efficient consumption makes scarcity problems worse. In any real-world system, demand will at least occasionally exceed capacity. Even the best funded and best managed system will unavoidably have islands of premium performance, bandwidth and power redundancy.
Is your cloud really cloudy? When resource constraints are encountered will users feel more they are hitting a brick wall or gradually decelerating into a pillow of cloud? This will determine user behavior and the design of higher-level applications. If resources cannot be managed, the community will quickly have no excess resources. They will be forced to pillage from their neighbors, go without or go elsewhere.
One cannot manage scarcity until one can manage resources. The management of resources is defined as an economy. In an economy, one must be able to enumerate, evaluate and exchange resources. Once one is able to do this, resource scarcity can be managed. In fact, with appropriate metrics and automation it can largely be managed by software policy. For example, Amazon EC2 has the concept of “Spot Instances” that create a marketplace whereby excess cloud capacity can be auctioned off. Bids for Spot Instances are created via user-defined automation policies which start instances when cost is below a certain threshold and stop instances when cost is above a certain threshold. This is impossible without the mechanism of exchange that a compute economy provides.
So coming back to the question: Do I need to chargeback? Well no, but chargebacks are the most direct way of establishing a compute economy. Having an economic model and a system to manage scarcity should be table stakes in any service design. Your economic model or lack thereof will ultimately determine user behavior during resource scarcity. Will users share in resource management responsibility by self-regulating or merely place blame on the cloud provider and other tenants for poor management of resources? While chargebacks are a financial instrument to redistribute costs, they also instill personal accountability — and this may be the most important result of all.