HOWTO: Run Work Queue Workers on Azure

Work Queue Workers can be deployed and run on Microsoft Azure instances using the Azure Cloud Service. Here is a overview of the steps required to setup and run Work Queue Workers on Azure using its Cloud Service platform.
  1. We assume that you have already created a new Windows Azure Project using the latest Azure Development environment and are familiar with its working and interfaces.

  2. A Windows Azure Project typically consists of at least one WebRole and one WorkerRole. Build and configure the WebRoles and WorkerRoles to run using the API offered in the development environment. A simple configuration will be to run Work Queue Workers on the WorkerRoles and use the WebRole to start and manage the Work Queue Workers. We will assume this setup for the rest of the steps.

  3. Create a directory named "cygwin-install" in the project directory. Copy the Work Queue Worker executable (work_queue_worker.exe), sh.exe, and the dlls (cygwin1, cyggcc_s-1, cygiconv-2, cygintl-8, cygncursesw-10, cygreadline7, cygattr-1) that are available in the cctools installation (bin/) for Windows environments into this directory. This directory now contains the libraries needed to setup a basic Cygwin environment for running Work Queue Worker in the Azure platform.

  4. Configure the WorkerRole or create a bootstrap script to add the location of the cygwin-install directory to the PATH environment variable before a Work Queue Worker is started on a WorkerRole instance in the Azure platform.

  5. Add the cygwin directory to the list of directories and files that are built and packed into the Azure Service Package that is required to deploy a cloud service on the Azure platform.

  6. Upload the built Service Package file along with the Service Configuration in to the Azure platform to start and run Azure instances with the deployed cloud service.

  7. Start Work Queue Workers through the WebRole as defined by your configuration of the cloud service.

  8. If the tasks executed by the Work Queue Worker have dependencies on Cygwin libraries or other files, they can be specified as input files for the Work Queue Worker to transfer to its working environment.
[an error occurred while processing this directive]