Migrating WordPress to Azure SQL from MySQL

As www.microsoftTrends.com traffic grows, we have been making some changes to the underlying infrastructure in Microsoft Azure and doing some performance tests against the environment.  The goal in all cases is to run this blog as cheaply as possible by limiting the footprint while allowing for lots of increased traffic.

One of the key changes we have decided was to migrate the database from MySQL to Azure SQL.  The primary reason for this is that the bundled free version of MySQL is limited to 4 connections.  As my blog was increasing traffic, I was finding that the connection limit was being overwhelmed and then the blog was generating errors connecting to the database.

image

There is also a limitation on how many MySQL databases you can have – with Azure Web Sites you are limited to a single free database. 

If you can run using Azure SQL, you can have a free 20 MB database with any Azure Web Sites.  This option is technically a “retired” plan (e.g. it will be unavailable in September, 2015) but at that time I can upgrade to Basic which provides me a 2 GB database for $6 / month or go crazy and get a 250 GB standard database starting at $16 / month.

In comparison, ClearDB’s “Bronze” package only gives me a 1 GB database and maxes out at 15 connections.  SQL Server in comparison has no limitations on connections.

Migration of the site was pretty simple – I created a new WordPress site using the Brandoo WordPress plugin.  The Brandoo WordPress plugin allows you to run WordPress through an adapter that translates the calls to a standard SQL database instead of MySQL. 

image

Once created, I had a standard WordPress site.  I reinstalled all the plugins, themes, and settings from the existing site manually and then did an import of all the content from the existing site.  I then ran some performance tests against the site to see how the site would perform under load (the results are posted here).

Once up and running, I simply switched my domain to the new site and we were up and running!

So far, I haven’t seen any issues other than the web site seems to consume more memory than the old WordPress site.

image

This means that I cannot run the site under a single shared instance – I need at least two just to have enough memory quota to keep the site running.  I had moved to two shared instances with the previous site because it was just under the quota limit and occasionally would go over the 512 MB instance quota and kill the site.  So far, the site performs well and runs comfortably within two shared instances using the 1024 MB memory usage limit.

Tweet me your feedback at @microsoftrend – let me know what your experience is as a consumer of the web site!