Skip to content

Commit de36b32

Browse files
authored
Merge pull request MicrosoftDocs#1062 from sptramer/migration/az-rationale
Update the 'introducing' article with detailed rationale information.
2 parents 99e13f8 + 035ec6a commit de36b32

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

docs-conceptual/azps-2.0.0/new-azureps-module-az.md

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,35 @@ Starting in December 2018, the Azure PowerShell Az module is in general release
1414
PowerShell module for interacting with Azure. Az offers shorter commands, improved stability, and
1515
cross-platform support. Az also offers feature parity and an easy migration path from AzureRM.
1616

17-
Az uses the .NET Standard library, which means it runs on PowerShell 5 and PowerShell 6.
18-
Since PowerShell 6 can run on Linux, macOS, and Windows, Azure PowerShell is now available for all platforms.
19-
Using .NET Standard allows us to unify the code base of Azure PowerShell with minimal impact on users.
17+
With the Az module, Azure PowerShell is now compatible with PowerShell 5.1 on Windows and PowerShell Core 6.x
18+
and later on all supported platforms - including Windows, macOS, and Linux.
2019

2120
Az is a new module, so the version has been reset to 1.0.0.
2221

22+
## Why a new module?
23+
24+
Major updates can be inconvenient, so it's important that we let you know why the decision was made to
25+
introduce a new set of modules, with new cmdlets, for interacting with Azure from PowerShell.
26+
27+
The biggest and most important change is that PowerShell has been a cross-platform product since the
28+
introduction of [PowerShell Core 6.x](/powershell/scripting/overview), based on the .NET Standard library.
29+
We're committed to bringing Azure support to all platforms, which means that the Azure PowerShell modules
30+
needed to be updated to use .NET Standard and be compatible with PowerShell Core. Rather than taking the
31+
existing AzureRM module and introduce complex changes to add this support, the Az module was created.
32+
33+
Creating a new module also gave our engineers the opportunity to make the design and naming of cmdlets
34+
and modules consistent. All modules now start with the `Az.` prefix and cmdlets all use the
35+
_Verb_-`Az`_Noun_ form. Previously, cmdlet names were not only longer, there were inconsistencies
36+
in cmdlet names.
37+
38+
The number of modules was also reduced: Some modules which worked with the same services have been rolled
39+
together, and magement plane and data plane cmdlets are now contained all within single modules for their
40+
services. For those of you who manually manage dependencies and imports, this makes things much simpler.
41+
42+
By making these important changes that required building a Azure PowerShell module, the team has
43+
committed to making it easier than ever, and on more platforms than previously possible, to use
44+
Azure with PowerShell cmdlets.
45+
2346
## Upgrade to Az
2447

2548
It's recommended that all users upgrade to the new Az module. To do so:
@@ -31,10 +54,15 @@ It's recommended that all users upgrade to the new Az module. To do so:
3154

3255
## Migrate existing scripts to Az
3356

34-
Major updates can be inconvenient. However, the Az module has a compatibility mode to
35-
help you use existing scripts while you work on updates to the new syntax. Use the
36-
`Enable-AzureRmAlias` cmdlet to enable the AzureRM compatibility mode. This cmdlet defines
37-
AzureRM cmdlet names as aliases for the new Az cmdlet names.
57+
The Az module has a compatibility mode to help you use existing scripts while you work on
58+
updates to the new syntax. Use the [Enable-AzureRmAlias](/powershell/module/az.accounts/enable-azurermalias)
59+
cmdlet to enable the AzureRM compatibility mode. This cmdlet defines AzureRM cmdlet names as aliases for
60+
the new Az cmdlet names.
61+
62+
> [!IMPORTANT]
63+
> Even though the cmdlet names are aliased, there may still be new (or renamed) parameters for the
64+
> Az cmdlets that will be exposed. Don't expect enabling aliases to take care of the full migration
65+
> for you! After enabling them, test your scripts to make sure they don't need any immediate updates.
3866
3967
The new cmdlet names have been designed to be easy to learn. Instead of using `AzureRm` or `Azure`
4068
in cmdlet names, use `Az`. For example, the old command `New-AzureRMVm` has become `New-AzVm`.

0 commit comments

Comments
 (0)