.NET Zone is brought to you in partnership with:

I’ve been a Windows developer since 3.0 and caught the Visual Basic wave early with v1. I’ve released a “production” application in every version of VB since then (except VB for DOS). Focusing on enterprise, line-of-business development I’ve built Call Center Applications, Mortgage finance systems, Customer Relationship Management tools and more recently I’ve been in the Litigation Support/Electronic Data Discovery/Electronically Stored Information space. Greg is a DZone MVB and is not an employee of DZone and has posted 476 posts at DZone. You can read more from them at their website. View Full User Profile

The Surprisingly Powerful Azure Plugin Library

05.24.2012
| 2375 views |
  • submit to reddit

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!

Published at DZone with permission of Greg Duncan, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)