Skip to the content.

Observations on ARM (Bicep) Templates

- Azure Deployment Framework


Naming Standards - These are configurable, however built into this project by design.

Azure Resource Group Deployment - Multi-Region/Multi-Tier Hub/Spoke Environments

Common naming standards/conventions/examples:

+       - ACU1-FAB-ADF-RG-S1
             - [Central US Deployment for Fabrikam organization, for ADF App team Resource Group
                 Sandbox 1 RG]
            
+       - ACU1-FAB-ADF-S1-wafFW01
            - [Central US Deployment for Fabrikam organization, for ADF App team, deploying a Web App. 
                Firewall in Sandbox 1 Resource Group]
!                   - The name that you provide: FW01
            
+       - ACU1-FAB-ADF-S1-vmSQL01
            - [Central US Deployment for ADF App team, 
                deploying vmSQL01 Azure Virtual Machine in Sandbox 1 Resource Group]
!                   - The name that you provide: SQL01
            
+       - ACU1ADFS1SQL01
            - [Central US Deployment (VM hostname on internal Domain [15 char limit]) for ADF App team, 
                deploying SQL01 VM in Sandbox 1 Resource Group]
!                   - The name that you provide: SQL01
                    - OrgName [FAB] is not included, since on internal domain and limit is 15 chars.
            
+       - ACU1-FAB-ADF-S1-nicSQL01
            - [A Network interface on the above Virtual Machine]
            - Generated from VM Name e.g. SQL01
            
+       - ACU1-FAB-ADF-S1-vn
            - [A Virtual Network in the Sandbox 1 Resource Group - a Spoke Environment]
            - Always 1 VNET per RG/Environment, also per Parameter file definition.
            
+       - ACU1-FAB-ADF-RG-S1
            - [The Spoke Resource Group for Above (ADF App)]
            
+       - ACU1-FAB-HUB-RG-P0
            - [The HUB Resource Group for HUB App]
            
+       - acu1fabhubg1saglobal
            - [Central US Deployment for FAB organization, for HUB App team, deploying a storage account 
                (lower case 24 char limit) in Global (G1) Resource Group]
!                   - The name that you provide: global
            
+       - ACU1-FAB-HUB-P0-kvVLT01
            - [Central US Deployment for FAB organization, for HUB App team, deploying a keyvault 
                in the HUB (P0) Resource Group]
!                   - The name that you provide: VLT01
            
+       - ACU1-FAB-HUB-P0-kvVLT01-pl-vault-snMT02.nic.50a08879-44ce-4a16-a9e9-8595ce9734ca
            - [A private link connection on the above Keyvault to subnet MT02]
            
+       - ACU1-FAB-HUB-P0-networkwatcher
            - [Network watcher on above HUB]
            
+       - ACU1-FAB-HUB-P0-networkwatcher/ACU1-FAB-ABC-S1-fl-AzureBastionSubnet
            - [A Subnet from S1 Spoke Bastion Subnet connecting back to the Hub Network watcher]
Name Example Allowed/Sample Values Defintion
Example_Resource ACU1-FAB-HUB-P0-kvVLT01 ACU1-FAB-HUB-P0-kvVLT01 A sample resource name used in this table
Sample of a keyvault name
Prefix {Prefix}-FAB-HUB-P0-kvVLT01 AZE2 + ACU1 Location - Azure Region (Using Azure Partner Regions)
DeploymentID ACU1-FAB-HUB-P{DeploymentID}-kvVLT01 0 + 1 –> 8
00 + 01 –> 15
The deployment iterations (configured to 8 environments)
The deployment iterations (configured to 16 environments)
- Network ranges in Hub/Spoke are dynamically assigned based on this [DeploymentID]
Environment ACU1-FAB-HUB-{Environment}0-kvVLT01 S + D + T + Q + U + P The specific environment type:
[Sandbox –> Dev –> Test –> UAT –> QA –> Prod]
etype Prod PreProd + Prod The general environment type
Enviro ACU1-FAB-HUB-{Enviro}-kvVLT01 D03 + T04 + Q06 + U08 + P09 + P00
S1 + D2 + D3 + T4 + U5 + P6
The environment name (16 environments)
The environment name (8 environments)
OrgName ACU1-{OrgName}-HUB-P0-kvVLT01 FAB or ADW or WTP or FAB Your 3 letter Organization (company) name.
This ensures public Azure Resources have a unique name
App ACU1-FAB-{App}-P0-kvVLT01 ADF, HUB, PSO, ABC The App (tenant) name
ResourcePrefix ACU1-FAB-HUB-P0-{ResourcePrefix}VLT01 kv,sa,vm,vmss,fw,waf,nsg The resource type prefix
e.g. kv
Name ACU1-FAB-HUB-P0-kv{Name} short name e.g. VLT01 The resource name, this is the part that you define in the parameter file
Deployment {Deployment}-kvVLT01 ACU1FABADFS1 + ACU1-FAB-ADF-S1 + acu1fabadfs1 Used for naming resources e.g. part of hostname and Azure Resource names, lower for storage Etc.
[Prefix + App + Enviro]
Subscription G0 Azure Subscription Deployments G0 E.g. RBAC or Policy
Global G1 A Global environment G1 represents Azure Global Services E.g. DNS Zones or Traffic Manager OR GRS Storage
HUB P0 A Hub environment is denoted by the P0 or P00 ACU1-FAB-ADF-P0 Central Hub, AZE2-FAB-ADF-P0 EastUS2 Hub
DR + HA P0 or any other mirrored environment
E.g. U4 or P6
Primary Test environment ACU1-FAB-ADF-T4 would have a mirror environment
DR Test environment AZE2-FAB-ADF-T4 in the partner region
A mirror would exist for a Test and Prod environments,
Plus the associated HUB environment
* ————————————————————- * —————————


How are the standard implemented?

The name of any resource is determined via the following method. - Example the Hub tenant, Central US Global Parameter File

As a consumer of this project you are not responsible for managing naming standards/conventions.

Sample portal images based on this naming convention.

Sample - ResourceGroups

ResourceGroups

Sample - Global G1 Resource Group Resources

Global-G1-Resources

Sample - Spoke S1 Resource Group Resources

Spoke-S1-Resources