During the Microsoft //BUILD 2015 conference in San Francisco, California, they have released the newest version of the Microsoft Azure PowerShell module! The version is 0.9.0, and is dated April 2015. You can download the stand-alone Windows Installer (MSI) package from the GitHub releases page.
Azure Resource Manager (ARM)
The most significant enhancement in the latest Azure PowerShell module is the introduction of the Compute, Network, and Storage Resource Provider (RP) commands. These RPs are commonly known by their acronyms: CRP, NRP, SRP. Resource Providers are standardized interfaces to the underlying Azure platform, that are exposed via the ARM API. While these RPs have been in preview for some time now, Microsoft has officially announced their release.
These new PowerShell cmdlets communicate with the Azure Resource Manager (ARM) API, which replaces the traditional Service Management (RDFE) API. ARM allows IT Professionals, Developers, and DevOps Engineers to manage resources in Azure using a declarative API. Cloud resources are now provisioned by declaring them in a JSON document, which is then uploaded to the ARM API. The older Service Management API was a REST API, driven by XML messages.
ARM and PowerShell DSC
In some ways, the ARM API is similar to the declarative nature of the PowerShell Desired State Configuration (DSC) feature, which has been available in the Windows operating system since PowerShell 4.0 (October 2013). PowerShell DSC allows IT personnel to configure Windows and Linux systems using open standards, such as the Managed Object Format (MOF) and WS-Management, both from the Distributed Management Task Force (DMTF).
While the concept surrounding declarative syntax is shared between ARM and PowerShell DSC, they have significantly different use cases. PowerShell DSC is used to configure operating system level settings, such as registry keys, filesystem settings, server roles and features, and others. Conversely, ARM is used to provision and manage resources in the Microsoft Azure public cloud.
Incidentally, PowerShell DSC can be configured on Windows Server virtual machines in Azure by using the Azure VM DSC Extension. While you can initially provision Azure VMs using DSC, you can follow up the provisioning of a base operating system with automated customizations using DSC.
Infrastructure as Code
Both ARM and PowerShell DSC enable IT personnel to control their cloud and on-premises resources, respectively, using an “infrastructure as code” approach. By declaring cloud resources and infrastructure configurations as code (plain text), administrators can control their environments along a time scale. An additional benefit of infrastructure as code, is the ability to see who made which changes to the environment, and when. In team environments, having the natural ability to audit changes to the environment is critical.
By leveraging infrastructure as code as a component of your IT and DevOps processes, you can also naturally enhance the security of the environment. Administrators no longer require direct access to endpoints running in a production environment in order to make changes. Instead, changes can be submitted through source control, and then be approved by an internal approval process, prior to deploying the change to the production environment.
The newest Azure PowerShell module also adds some new commands for managing StorSimple devices:
Keep an eye out for more updates to the Azure PowerShell module! New updates are available roughly every 3-4 weeks, as I’ve been able to tell from past releases! Make sure that you’re keeping the module up-to-date to ensure that you’ve got all the latest functionality and bug fixes!