Using a Synchronization Framework to Run mojoPortal on Azure

How It Works

Azure Host is basically a synchronization system that synchronizes files between blob storage and one or more web role instances. You upload the web application files to Azure Blob Storage and the application files are synchronized to all of the configured web role instances. When users upload files to a web role instance the uploaded file is synchronized back to Blob Storage and from there out to all the other Web Role Instances. The main advantage of this approach is that with the normal way of deploying a web application as a web role any time you need to make a even a small change to Web.config or user.config or any other individual files such as CSS files in your skin, you would have to redeploy the entire application because a Web Role is basically a virtual machine that does not keep it state across reboots, so when you deploy the hosted service it is basically making the image for your virtual machine that will be replicated when new web role nodes are created and brought online, but any files uplaoded or changed on a single node would not affect other nodes and they would be gone once the virtual machine is rebooted. With Azure Host you can more easily update individual files in blob storage and they will automatically be synced to all of the web role nodes.

Azure Accelerator Synchronization Architecture

Steps to Setup

Note that these instructions are for mojoPortal 2.3.7.5 or higher, older versions of mojoPortal did not have support for AppFabric Cache. Also this guidance for installing and running mojoPortal in Windows Azure is new and not thoroughly tested so it may change over time after we get feedback from people using it. Windows Azure is high end expensive hosting so we don't have a permanent testing environment and having already used up our free trial when we test it is usually setup for a single day and we delete everything at the end of the day to avoid the costs, so while we have tested this installation process a number of times we haven't done a lot of testing over time or with lots of users or load testing, so we are looking for community feedback about any problems or successes you have with running mojoPortal on Windows Azure.

Create a Windows Azure Storage Account

Deploy Azure Host to Windows Azure

Create a SqlAzure Database

Create a Windows Azure AppFabric Cache

Preparing a Local Copy of the mojoPortal Files for Deployment to Azure

Uploading mojoPortal Files to Azure Blob Storage

Created 2011-11-08 by Joe Audette
Updated 2011-11-29 by Joe Audette