Project Description
Windows Azure Hosted Services VM Manager is a Windows Service that can manage the number of hosted services (VM's) running in Azure on either a time based schedule or by CPU load. This allows the application to scale either dynamically or on a timed schedule.

The Windows Service can manage multiple services. This example is set up to manage only one hosted service. If it is configured to manage many services, there will be blocking while the service sleeps, waiting for the newly created VM instance to boot and become responsive. For it to run efficiently in that manner, it would be best to mutli-thread the workflow.

This project makes several assumptions.

1. A hosted service deployed in Azure
2. An X509 certificate is uploaded to your hosted service
3. The app.config and service.xml files are edited to reflect the environment


The service also uses the Azure REST API samples found at http://code.msdn.microsoft.com/windowsazuresamples. Some of the code has been modified to run outside of the Azure environment and helper methods were added to simplify the tasks of getting a certificate from the host machine, creating an authorization header token and building the web request.

The GenerateSignatureForAuthorization method in the ServiceManagementHelpers.cs file came from a blog post, sorry I don’t remember where, but thank you. That helped in creating the correct hashed value for Azure security.  

Last edited Feb 18, 2011 at 5:17 PM by greggipson, version 8