Windows Azure and Open Source Applications

Whenever most of us think of OSS, we think in terms of a stack with Linux at the bottom, providing the OS platform and say PHP at the top with say a CMS app atop that. It’s often forgotten of course, that there’s a healthy and thriving community of developers who write OSS code to run on Windows (and therefore Windows Azure).

I guess the web apps that come to mind for me are those like Umbraco, Wordpress, Drupal, Joomla and so on. WebMatrix has done a good job of catering for the needs of one community of developers by making the creation and deployment of such sites as simple as possible.

For Windows Azure developers, there is a tool called the Windows Azure Companion. It’s now in its March 2011 CTP release and can downloaded from here. I’m mentioning all this because it appears to be a fantastically well-guarded secret among the cloud community. Pretty well known among OSS and interop folks, but it’s a really cool piece of cloud technology I think deserves a much wider audience. I wonder how many people know there is an installer that can install most of your favourite OSS web applications, plus platform-level components such as say, MySQL, on to your Windows Azure subscription for you…

One important reason to load the March CTP, if you happen to already have the old version of the companion, is because it’s built using the recent refresh of the SDK (v 1.4).

It works like this:

image

  1. Download the .cspkg file from the Windows Azure Companion site. This file contains all the application code needed to run the installer.
  2. Download the .cscfg file from the Windows Azure Companion site.
  3. This contains not only the configuration for the installer but also points to the list of apps you want to install. You need to edit the file to point at the app feed file.
  4. Edit the .cscfg file to point to the app feed file
  5. The app feed file point to the applications you want to deploy, for example, this entry points to Drupal
  6. …and this entry points to MySQL
  7. Once you have deployed the .cspkg and .cscfg to Windows Azure, an installer will fire up on port 8080 at your specified URL, say https://myDrupal.cloudapp.net:8080. It has to run on port 8080 because the actual application (say Drupal) you want to install, will run on port 80, later. All you have deployed at this stage is the installer itself.
  8. The installer gets some configuration information from the .cscfg that you edited in step 3. It consults the app feed and displays a list of applications and platform level packages you might want to install (as defined in the app feed).
  9. The installer installs the application(s), in this case Drupal.
  10. The application is installed – you can go to the application’s URL, say, https://myDrupal.cloudapp.net on port 80 and there you have it, a fully deployed OSS application on Windows Azure.

image

Above is a video, put together by the “Interop Technologies” Microsoft Evangelist Craig Kitterman which shows how simple these steps are. In fact, one piece of the hard work has already been done in the video – the creation of the app feed file. The “Cloud/Web Famous” Maarten Balliauw has already broken that ground for us! Thanks Maarten.

To learn more, download the code, engage in forums etc, go to the Windows Azure Companion site.

Planky – GBR-257