February 16, 2016

Quick Nugget - Azure ARM Commands - 2 Versions?

Recently, I blogged about abandoning the Azure ARM PowerShell commands from the MSI installer and instead using the PowerShell gallery. A colleague of mine, Michael Collier mentioned to me that there are some things about my approach that should be called out. Hopefully this clears up some confusion as to the 2 Versions of ARM PowerShell.

The PowerShell Gallery is not GA as yet, in fact, it says so right there on the website:

I'm not GA

This is in opposition to the PowerShell MSI installer for Azure which is absolutely generally available and can be downloaded here or via WebPI.

The PowerShell that you get for Azure from the PowerShell gallery is a beta, gets updated WAY more frequently by each different team and is dependent on the OS version: It depends on PowerShell 5 and WMF 5, which is available by default in Windows 10. Previous Windows versions require a separate install to get PS and WMF 5.

The PowerShell gallery installation doesn't constrain the end users from getting breaking changes between the different modules. For example, if the Storage team (Azure.Storage) releases a new version of their module, it MIGHT break something in the Compute module (AzureRM.Compute) because there is no strict dependency on each other. The PowerShell team therefore bundles the latest dependency bundled experiences together in the official MSI installer. Put another way: if you use the MSI, you know everything will work. If you use the gallery, you are on the bleeding edge and may have some broken dependencies.

In the future, these concepts will come together so that MSI and Gallery don't overwrite each other/break each other and will also help you manage those dependencies and updates.

Hope that helps and thanks Michael for the details!