In Azure June 2012 release, Microsoft officially added 'Azure Web Site' a light weight website hosting feature to Azure. The technology behind 'Azure Web Site' is project 'Antares',
which uses a very similar approach (ARR + Web host) as Cloud Samurai to handle share hosting multiple web site in IIS.
Since Antares is officially supported by Microsoft, we encourage you to also investigate Antares if you are really interested in the multi-tenancy problem that we are trying to solve in this project.
The future of Antares is still not officially announced by Microsoft, however you should be able to find some public post about it, like this one:
The Cloud Samurai Project, aka. (Project Bowlus), is a complete code sample demonstrating a hosted multi-tenant approach on Windows Azure utilizing the IIS Application Request Routing (ARR) extension.
The Windows Azure solution contains two roles; a front end which is a gateway responsible for routing traffic to the correct apphost, and the application host which is responsible for deploying and running the tenant applications.
A tenant application is deployed in to a seperate IIS application directory and runs in a seperate application pool on an instance of the apphost role. The front ends are updated to route traffic to the instance of the apphost containing the tenant deployment.
These front ends also monitor for a topology change and will coordinate moving tenant instances across apphosts in response to apphost failures or increases in resources. Simply put, if an apphost instance goes down, tenants running on that instance will then
be provisioned on a healthy instance and routes will be updated. If a new apphost instance is added, some tenants will be moved to the new instance in order to rebalance the load across the available resources. The application simply distributes tenants across
instances based on count and no other factors. This could certainly be extended to distribute tenants based on other factors such as size, utilization, etc...
This sample was developed by the Developer & Platform Evangelism
group at Microsoft, supported by
Full Scale 180 and other community volunteers.
- Visual Studio 2010 SP1
- Windows Azure SDK 1.5
- Windows Azure Subscription
- DNS configured with wildcard subdomain (alternatively you could test using hosts file and simply add a bunch of tenant hosts)
We tried to keep the various technologies used in this solution to a minimum in order to simplify the setup and configuration of this solution. You will be able to run and test most of the functionality in this solution in the Windows Azure Emulator but
not all of it.