Thursday, May 24, 2012

Plugging into Azure with the Azure Plugin Library

Richard Astbury's Blog - Introducing the Azure Plugin Library
An open source library of plugins installed with a command line tool (a package manager). Once a plugin is installed, it can be easily packaged with an Azure deployment to install application dependencies on a Web or Worker role.
http://richorama.github.com/AzurePluginLibrary/
Watch a screen cast demonstration
Background
One of the key strengths of Windows Azure, is the Platform as a Service offering. Why would you want to patch an operating system, manage the deployment of your application, and check the health of your infrastructure? It’s better left to someone else (Microsoft) so you can focus on your application. However, the pitfall is when your application depends on something extra being installed or configured on the machine.
There are a few ways for installing 3rd party components on an Azure instance. This blog post has a good summary of the options.
In summary, start-up tasks are the best mechanism available for installing dependencies, which is fine for something straight forward, but for more complicated components (like MongoDB for example) there is quite a bit of work involved in scripting out the installation. Projects like AzureRunMe help with this, but ideally you want something that just works, without you having to write a lot of script.
Azure Plugin Library
The Azure Plugin Library exploits an undocumented feature of the Azure SDK, whereby modules referenced in the Service Definition file are bundled with your application in a package, which is uploaded and deployed to the Azure instances. The SDK uses this mechanism to set up Remote Desktop, Connect, WebDeploy and Diagnostics, however, additional plugins can be added by copying the files to the “Windows Azure SDK\v1.6\bin\plugins” folder.
..."
Azure Plugin Library
What is a plugin?
A plugin comprises of configuration, scripts and binaries that are packaged with your Azure deployment, and executed on the Azure Web or Worker Role.
These plugins will typically alter the configuration of the Azure instance or install a dependency.
The Windows Azure SDK ships with five plugins:
  • Connect
  • Diagnostics
  • RemoteAccess
  • RemoteForwarder
  • WebDeploy
Plugins are installed in this directory:
C:\Program Files\Windows Azure SDK\v1.x\bin\plugins
This project aims to extend the capability of the SDK by providing a wide range plugins with a community maintained library, and a command line installer.
What plugins are available?
The Azure Plugin Library is maintained in a GitHub repository. You can browse and download the plugins directly from the respository, using the links below, or alternatively use the command line tool.
image
The fact that this is built on an undocumented feature of the Azure SDK concerns me a little, but I still think this is pretty cool. Got to love plugins/extensions/not-having-to-reinvent-the-wheels!

No comments:

Post a Comment

NOTE: Anonymous Commenting has been turned off for a while... The comment spammers are just killing me...

ALL comments are moderated. I will review every comment before it will appear on the blog.

Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...

I reserve, and will use, the right to not approve ANY comment for ANY reason. I will not usually, but if it's off topic, spam (or even close to spam-like), inflammatory, mean, etc, etc, well... then...

Please see my comment policy for more information if you are interested.

Thanks,
Greg

PS. I am proactively moderating comments. Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...