Archives

Archives / 2012 / June
  • How I migrated my blog to Orchard on Windows Azure Web Sites

    Tags: Website, Orchard, Windows Azure

    A couple of days ago I started the migration of my blog to the new and shiny Windows Azure Web Sites (AWS - I don't think that acronym is a co-incidence) and the Orchard CMS platform. The whole reason behind doing this migration is that I felt the need for a more modern (and stable) platform than the one I've built from scratch, years ago, and of course that I want to fiddle with some new toys. So, here is a short story on how I did the migration.

    Setting up Azure Web Sites

    Create a new AWS siteThe first thing was to set up a new Azure Web Sites site. This is done from the new metro-styled Azure portal at https://manage.windowsazure.com/ and all you need to do is click NEW in the lower left corner and select Web Site and then From Gallery. This option allows you to quickly create a web site and at the same time install an App on that site. I chose Orchard CMS, but you can choose from a lot of apps here such as Wordpress, Umbraco, Drupal, Dotnetnuke etc.

    The reason I chose Orchard is that I wanted a modern and top of the line CMS and that I've been following that project since the Oxite days. It's based on .NET which also makes it very easy for me to extend it.

    Once the App is chosen from the AWS Gallery you need to choose a name (nnnnn.azurewebsites.net) and a Region where to host it. Then you just apply your configuration and wait for a couple of minutes for the web site to spin up.

    Using SQL Azure

    Orchard allows you to choose from using the embedded SQL or using a separate SQL instance. I decided to use SQL Azure. I did this since that makes it easier for me to move the data from my development environment back and forth and since the Azure Web Sites is in a preview mode - you never now if your data will be gone one day :-)

    Configuring Orchard

    Once the Azure Web Site is up you will be presented by the Orchard start screen which asks you for information on how to set up Orchard. You enter username and password, choose which SQL to use (embedded or separate) and you will be asked for a recipe (for which I chose the blog one). Click Ok and wait a minute or two and your Orchard site will be prepared.

    Migrating content

    The first thing I did was to start migrating content - the blog posts and all associated images. Since I had my own home brew blog CMS I created a small tool that exported all the data from my old site to the BlogML format. That gave me a 7MB XML file with all posts and comments. The next thing I did was to move all the images from the old system into Orchard. This can be done in Orchard using a very convenient method where you upload zip files with your images. I had some issues with the file size, so I had to move it in smaller chunks of max 5MB at a time. The URLs for my media did change when I uploaded the images and files, so I used a text editor and replaced all the paths in the BlogML file to the new paths.

    BlogML importOnce all media and files were uploaded I started importing the BlogML data. I added the BlogML module to Orchard which extends the admin interface with BlogML import and export functionality. I had to split my BlogML file into smaller chunks, since it would time out on me if I used to many posts/comments at a time. One reason that I got a lot of timeouts was that I had a lot of comments (approved and unapproved) in my BlogML file and all those were verified using Akismet spam check during the import. The BlogML import feature uses the Orchard Alias function, so all URLs are preserved.

    Other Orchard Modules

    Once I had all my content in Orchard I added a couple of extra Modules to Orchard. These are the ones that I have added:

     

    I have also added a couple of search/index modules

     

    There is only one problem right now with modules in Orchard on AWS (I think it's related somehow, since I don't get the same issues/timeouts in my dev env), is when you activate/install a Module your site becomes unresponsive for 5-10 minutes.

    And a custom Theme...

    The only customization so far is a custom theme that you can see right now. It's based on the TimeMachine Theme.

    Going Live

    Once the site was all ready I updated the DNS (which I have in Office 365) with a CName pointing to my Azure Web Site. But in order to get AWS to accept my domain name I needed to add a hostname to the web site. Unfortunately this feature is not available when you're using the Shared Web Site Mode, so I had to switch to the Reserved Mode - which of course starts the billing clock...

    Reserved Mode

    Then I did some final configurations like mapping my FeedBurner feeds etc and my site was up and running.

    Summary

    A quick walkthrough on how I got my blog moved to Azure Web Sites, SQL Azure and the Orchard CMS. As you just read it was an easy ride, with the only obstacles that I had to upload data in chunks and could not use the Shared Web Site Mode. Now let's hop that AWS don't have to many hiccups...

  • Now running on Azure Web Sites and Orchard

    Tags: Website, Personal, Office 365, Windows Azure

    Azure Web SitesYES! I'm finally alive with a new hosting provider - this time it's Microsoft (who could have guessed that!). Thanks to the just released Azure Web Sites I have now moved my blog from my old custom blog implementation (that has been a fun project though), to running Orchard on Azure Web Sites using SQL Azure. This finalizes my cloud migrations - last year I moved e-mail and everything but the site to Office 365 and started with a hosted service for this site, but for running this little blog that was a bit to expensive (you're not clicking the ads enough).

    You have to bare with me for a little while until I get everything spinning. I apologize for any inconveniences with updated posts in your blog readers and other physical or mental illness caused from this. All blog posts should have been migrated fine (I know some stuff haven't got correctly through) keeping the old URL's and everything. I built a quick Orchard theme and haven't tried it in obscure browsers yet. Also Azure Web Sites is only in preview, so I expect it not to work 24/7 (my previous hosting provider didn't have that either though...).

    If you do find something peculiar, don't hesitate to comment on it...

    [Update] There seems to be an issue with Azure Web Sites/Orchard when I'm updating or adding modules, which makes the site go down for a couple of minutes. Hopefully I won't do this as often though...

About Wictor...

Wictor Wilén is a Director and SharePoint Architect working at Connecta AB. Wictor has achieved the Microsoft Certified Architect (MCA) - SharePoint 2010, Microsoft Certified Solutions Master (MCSM) - SharePoint  and Microsoft Certified Master (MCM) - SharePoint 2010 certifications. He has also been awarded Microsoft Most Valuable Professional (MVP) for four consecutive years.

And a word from our sponsors...

SharePoint 2010 Web Parts in Action