Microsoft Improves Azure App Service Support for Linux and MySQL

Image result for lamp mysql

Microsoft has supported running PHP, Java and Node.JS within the Azure App Service (which is what used to be called Azure Web Sites) for years.  However, it was always based on Windows and IIS.  This blog, for example, runs on the Azure App Service using WordPress.  The WordPress application code runs within an IIS web site that runs the PHP handler. 

Microsoft is now introducing native Linux support for Node.js and PHP stacks.  This means that instead of running within a Windows/IIS instance, your web site will now running natively in Linux.  This should improve compatibility and allow for folks used to managing Apache the ability to now do so instead of IIS.

Microsoft is also slowly improving its support for MySQL.  Today, the only PAAS solution for MySQL is ClearDB and from my experience its quite expensive and restrictive in its pricing structure.  This blog started running MySQL using ClearDB and it was cheaper and easier to scale it running a native Linux VM. 

Microsoft will now support running MySQL as part of its native Linux Azure App Service.  However, it is only in preview and is pretty limited – it doesn’t support scaling across multiple instances and it runs in the same app instance as your web site (as opposed to setting up a separate dedicated MySQL instance).  Microsoft is only recommending it for dev/test scenarios and not for production just yet.

Read More

WordPress on Azure Simplified through Azure Resource Manager Template

As those of you who read this blog regularly know, this web site runs WordPress on Microsoft Azure.  WordPress runs within an Azure Web App and MySQL runs within an Azure VM running MySQL on Linux.  To date, this solution has been rock solid, even running on a A0 shared CPU virtual machine. 

For those wanting to build a more robust enterprise scale WordPress cluster, Microsoft has released a new Azure Resource Manager template that provisions a WordPress Azure Web Application backed by a cluster of MySQL servers through a load balancer. 

WordPress-Azure-Template Microsoft releases Azure template for WordPress/MySQL

The template is available in the Azure Marketplace.


Read More

MySQL Running on Azure VM A0 Rock Solid So Far…

This blog runs on WordPress using Azure Web Sites.  When I first launched the site, I used the Clear DB free MySQL tier and it worked quite well until about 300-400 page views per day.  The free tier has a connection limit of 4 connections and when it exceeds that limit you start getting errors.

I then re-launched the site with an Azure SQL backend using the Brandoo plugin.  At the time, this was an option in Azure Web Sites template selection (it’s no longer available).  This worked well until I upgraded to WordPress 4.2 and then it broke completely.  I had been warned by the original developer that this would happen eventually because it was impossible to keep up with all the WordPress changes to the MySQL schema. 

I then went back to MySQL using a dedicated Azure VM running Ubuntu and MySQL.  The VM is an A0 VM which means it runs on a shared core (e.g. not even a full core) and 768 MB of memory. 

The results so far have been very good, with no downtime and no errors.  If I look at the VM performance, it’s rock solid and barely uses up the available CPU or memory available:



As you can see by the charts, the VM is running at about 2-3% of CPU and MySQL runs at about 14% of available memory.  Given this is a shared core and 768 MB only of memory, that’s pretty remarkable and a better deal than running through Clear DB at least at my current scale (peak load is about 1500 page views per day).

Read More

Brandoo and WordPress Now Completely Broken: Moved Back to MySQL on Ubuntu

Brandoo is an open source plugin for WordPress that translates MySQL to SQL Server.  As performance increased on this blog, the free database provided by ClearDB wasn’t cutting it and I moved to Azure SQL using the Brandoo plugin.

I received a note from the author of the plugin saying it was no longer supported and continued to use the plugin because it was working. 

As of WordPress 4.2, Brandoo finally broke altogether.  The blog continued to work but the upgrade process failed and I couldn’t get access to my blog at all from an administration perspective.  I couldn’t also post any new blog posts.

So over the past week, I have re-architected my blog to go back to MySQL as this seems to be the only reliable way to run WordPress.  Instead of using the free MySQL database from ClearDB, I have set up a dedicated linux VM for running MySQL in Azure.  This seems to work remarkably well, even with the smallest VM – MySQL is very efficient at running in a small VM footprint.


For those looking to go this route, have a read through this article – I found it very helpful in setting up Ubuntu, MySQL and then connecting it to Azure Web Sites.

Read More