Multi-Tenant Architecture @ Windows Azure Platform

Cross posting from: https://blog.maordavid.com/multi-tenant-architecture-windows-azure-platform/

common question is how a multi-tenant architecture works with Windows Azure Platform. You can find an answer at Project Riviera that has been released on MSDN and includes source code.windows_azure_small

From the project page:

Project Riviera is a comprehensive code sample to demostrate how to develop multi-tenant highly-scalable line-of-business application on  Windows Azure Platform. This sample is developed by Global Partner Architecture Team in Developer & Platform Evangelism group at Microsoft in collaboration with Cumulux - our Cloud ISV partner. Riviera uses Customer Loyalty Management scenario for illustration purpose but many building blocks are applicable to range of line-of-business applications.
Click here to view a screncast of Riviera, Architecture details and other related information.
Key features of Riviera

  • Multi-tenant data store based on Azure Table Storage as well as SQL Azure.
  • Per tenant customization of data model
  • Per tenant customization of business logic (using Windows Workflow in Windows Azure)
  • Per tenant customization of user interface using Silverlight 3.0. Customization can be multi-level – custom theme, custom XAML, and custom XAP.
  • Automated tenant provisioning
  • Windows Azure web role->Azure Queue->worker role pattern for high volume transaction processing that can scale on demand
  • Claims aware web service and web application using Geneva Framework
  • Active and Passive Federation using Geneva Framework, Geneva Server and .NET Access Control Service (ACS)
  • Windows Live ID authentication for consumer facing web site
  • Use of Patterns & Practices Enterprise Library Caching and Logging application blocks in Windows Azure

Notes

  • Project Riviera is not a product or solution from Microsoft. It is a comprehensive sample code developed for evangelism purpose.
  • Riviera includes implementation of Security Token Service (STS) using Geneva Framework in Windows Azure. We would like to emphasize that this scenario is currently not supported (at the time of July 2009 CTP). This is primarily because of lack of certificate store support in Windows Azure at this time. So although the implementation works in Windows Azure, we advise not to do so for production environment untill such scenario can be supported on Windows Azure and product group provides guidance to do so.