Azure originally used the Azure Service Management (ASM) model,
commonly called Classic.
Azure Resource Manager (ARM) is the modern deployment and management
layer for Azure resources.
All new Azure features, tooling, and security capabilities are built exclusively for ARM.
----------------------------------------------------------------------------------------
Feature Classic (ASM) ARM
-------------------- -------------------------- ----------------------------------------
Deployment Model Cloud Services Resource Groups
Access Control Co-admin / Service Admin Role-Based Access Control (RBAC)
Templates Not supported ARM Templates / Bicep / Terraform
Tagging Limited Full support
Policy & Governance Not available Azure Policy & Blueprints
Support Status Retired Fully supported
----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
Method Steps
----------------------------------------------------- -----------------------------------------------------------
Azure Portal Navigate to **Virtual Machines**.
If listed under "Virtual machines (classic)", it is ASM.
Azure CLI az vm list --output table -> lists ARM VMs.
PowerShell Get-AzVM -> lists ARM VMs.
Get-AzureVM -> lists Classic VMs.
Azure Resource Graph Use the queries below.
-----------------------------------------------------------------------------------------------------------------
ARM VMs:
Resources
| where type == "microsoft.compute/virtualmachines"
| project name, resourceGroup, location
Classic VMs:
Resources
| where type == "microsoft.classiccompute/virtualmachines"
| project name, resourceGroup, location
ARM Storage Accounts:
Resources
| where type == "microsoft.storage/storageaccounts"
| project name, resourceGroup, location, kind
Classic Storage Accounts:
Resources
| where type == "microsoft.classicstorage/storageaccounts"
| project name, resourceGroup, location
Azure provides a platform-supported migration path to move Classic resources to ARM with minimal downtime.
High-Level Flow:
VALIDATE → PREPARE → COMMIT (or ABORT)
Use Azure PowerShell or the Azure Portal migration workflow depending on subscription configuration.
-------------------------------------------------------------------------------------------------
Area Impact Mitigation
----------------------- ---------------------------- ------------------------------------
Downtime Brief reboot during commit Schedule maintenance window
IP Address Changes Public IP may change Reserve static IPs in advance
Automation Breakage Classic scripts will fail Refactor to Az PowerShell / az CLI
Monitoring Alerts do not migrate Recreate using Azure Monitor
DNS & Certificates Cloud Service DNS may change Plan DNS and certificate updates
----------------------------------------------------------------------------------------------------
Azure Service Management (Classic) is retired and no longer supported
for production workloads.
Any remaining Classic resources must be migrated immediately to avoid
operational, security, and compliance risks.