Tuesday, January 19, 2010

A profitable cloud app

In order to be able to have your cloud application or service profitable you need to know what your costs are and what your revenues are. Not only now, but also in the future. When the usage of your app grows you also need to generate more revenue. This can be achieved by charging your customers (or consumers of your service) a fixed price per period or by charging them the same way Microsoft charges you (by use) or a combination of both.

The best way to make sure your solution is profitable is to go with the pay-per-use model. The problem right now is that Microsoft does not offer any realtime metrics (yet). I am sure they will do so in the future but for now you could e.g. apply a multi-tenant approach and bill every customer in a separate way and setup different accounts for every customer. This can work out when the number of customers is small but when your facebook-like application is running and very succesfull this approach is not feasible.

To approach the amount of bytes on bandwith, the storage amount and the computing power used, the # messages on the service bus (maybe even with ACS) is to do it all by yourself. To tackle the number of messages and the storage amount you could write your own logic for it. Calculating bandwith isn't easy and calculating computing power is not even possible i guess.

So until Microsoft offers realtime, dashboard-like information on any customer or groups of customers either charge a fixed price or do you own calculations!