Introducing the Azure Plugin Library
tl;dr
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.
The Azure Plugin Library offers a range of additional plugins which you can download, and include with your Azure deployment. The library is hosted on GitHub, and is open source (accepting contributions).
http://richorama.github.com/AzurePluginLibrary/
Installing a plugin using APM
The AzurePluginManager (APM) is a command line utility to discover, install, update and remove plugins:
apm list (displays a list of plugins available in the library) apm installed (displays a list of installed plugins) apm install [PluginName] (installs the specified plugin) apm remove [PluginName] (removes the specified plugin) apm update [PluginName] (updated the specified plugin) apm update (updates all plugins)
What plugins are available?
At launch only a few plugins are available but this list is set to grow. Community contributions will be accepted, so please fork the repository and issue a pull request with your own ideas.
How do I include a plugin in my Azure package?
Installed plugins will be included in your Azure package if you add them as an Import in your ServiceDefinition.csdef file:
<ServiceDefinition> <WorkerRole> <Imports> <Import moduleName="[PluginName]" /> </Imports> </WorkerRole> </ServiceDefinition>
How do I add my own plugin to the library?
The library has some instructions on how to do this.
vbmagic 1:09 pm on May 24, 2012 Permalink | Log in to Reply
Reblogged this on VB Magic and commented:
A great open source library of plug-in’s that should hopefully make life easier in Azure to make use of third party software or currently unsupported components like Classic ASP.
Windows Azure Community News Roundup (Edition #20) - Windows Azure - Site Home - MSDN Blogs 5:12 pm on May 25, 2012 Permalink | Log in to Reply
[…] Introducing the (Windows) Azure Plugin Library by @richorama (posted May 21) […]
Windows Azure Community News Roundup (Edition #20) - Windows Azure Blog 6:00 pm on May 25, 2012 Permalink | Log in to Reply
[…] Introducing the (Windows) Azure Plugin Library by @richorama (posted May 21) […]
jmayrbaeurl 9:33 am on May 27, 2012 Permalink | Log in to Reply
Really cool stuff and I’ll try to develop my first own plugin asap.
Richard 11:28 am on May 27, 2012 Permalink | Log in to Reply
Thanks Juergen, I look forward to accepting the pull request!
#Azure Action – Community Newsletter – 30th May 2012 | MSDN Blogs 9:01 pm on May 30, 2012 Permalink | Log in to Reply
[…] Introducing the Azure Plugin Library […]
#Azure Action – Community Newsletter – 6th June 2012 | MSDN Blogs 7:01 pm on June 6, 2012 Permalink | Log in to Reply
[…] the Azure Plugin Library […]