One of the challenges any company faces when developing multi tenant applications based on Windows Azure is how much will the tenant be charged for the services offered. The problem is more apparent in cases where the customer is not charged with a fixed monthly rate but according to the service usage (pay as you go model). Till today one had to manually track and monitor service consumption in order to be able to establish each tenant cost and adjust the billing accordingly.
Today though the Azure ISV team in DPE announced public availability of Cloud Ninja Multi-Tenant Metering Block (CNMB). CNMB enables SaaS ISVs to meter tenant-level consumption of various Windows Azure resources such as bandwidth, storage, SQL Azure, and compute. CNMB provides tenant-level meters, application level aggregates, rich query model based on OData, extensibility to implement customer meters. It comes with out-of-box meter providers for bandwidth, storage, SQL Azure, and compute. In future CNMB will add providers for Tomcat and CDN. Also it is very easy to write custom provider if ISV wants to meter application specific resources. CNMB includes an HTML5 portal to visualize tenant and app level usage. But all data can be queried using OData API, which enables interesting mash-ups in PowerPivot and integration with external systems like billing.
You can try Live Demo here and download full source code from CodePlex. The live demo is currently metering our Cloud Ninja application. When you try the demo, check out links on home page to app-level, tenant-level usage, PowerPivot dashboard, and OData feed.
1. Easy to Use: CNMB works with existing multi-tenant SaaS application in a non-intrusive manner. It needs simple configuration to point to SaaS application’s storage account and SQL Azure database and simple regular expressions to associate tenants with resource consumption.
2. Economical: CNMB can be deployed in a single web role, which hosts UI, Web Services, and metering workers. Data schema is optimized so that 1GB SQL Azure database can hold an entire year’s worth data for thousands of tenants.
3. Standards Based: All data in and out is via authenticated OData API. OData allows rich query model on top of meter data. We support both JSON and Atom payloads. This enables 3rd party apps like PowerPivot and external systems like billing to consume meter data through industry standard API.
4. Extensible: CNMB has multiple levels of extension points from writing your own tenant resolver, defining customer meters, and developing customer meter providers.
Another great tool added in our arsenal to help us maximize our cloud usage benefits by adopting the Multi-Tenant model for our applications.