Software-as-a-Service (SaaS) is outpacing traditional packaged software in terms of market growth according to some recent market research. As new ISVs develop SaaS solutions or traditional ISVs transform their business to the SaaS model, they face some challenges in terms of building core SaaS framework that includes scaling, managing and metering their service.
In building SaaS solutions, multi-tenancy helps ISVs optimize resource utilization and lower the cost of goods sold (COGS). For an ISV to build a successful multi-tenant SaaS solution, it needs to address the operations needs of the service in the form of monitoring, metering and scaling. The Windows Azure ISV team at Microsoft has developed a set of building blocks to help ISVs with these operations.
This building blocks sample provides developers with the functionality to handle overall and per-tenant metering (database, storage, bandwidth, compute-surrogates), scaling (time-based and KPI based), as well as the ability to monitor and chart a set of KPIs for a visual representation of the health of the system. The building blocks also include self-service provisioning and identity management in a multi-tenanted environment. These facets are core to any multi-tenant solution and the sample provides a great starting point for ISVs to help incorporate these features in their apps.
Check out the project published @ Codeplex. The project includes the following artifacts:
- Source code (this is the complete source code, it is componentized for easy consumption)
- Documentation (this details the core features of the building blocks, the design decisions and technology aspects of the solution; high level and detailed architecture for each component etc.)
- User guide (project setup and configurations)
- Walkthrough (provides details for the app feature set by walking through the functionality)
Please submit your feedback and questions regarding this sample here.