Skip to main content

Azure Naming Conventions

We follow Microsoft's Cloud Adoption Framework (CAF) naming and tagging guidance for all Azure resources. Consistent names make resources self-describing (type, workload, environment, region) and keep cost reports, RBAC, and automation predictable.

Our subscription naming (opennav-prod, etc.) already uses this convention โ€” see Azure Subscriptions Setup. This page is the standard to follow inside those subscriptions.

The patternโ€‹

<resource-type>-<workload>-<environment>-<region>-<instance>
ComponentMeaningExamples
resource-typeCAF abbreviation for the resourcerg, st, kv, psql
workloadApp / project short codeopennav
environmentDeployment stageprod, nonprod, sandbox
regionAzure region short nameeastus
instanceZero-padded instance number001

Example: a production resource group โ†’ rg-opennav-prod-eastus-001.

Rules: lowercase, hyphen-separated, segments in this fixed order. Omit a segment only when it doesn't apply (e.g. globally-unique types that forbid hyphens โ€” see below).

Our standard valuesโ€‹

SlotAllowed values
Workload (org_prefix)opennav
Environmentprod, nonprod, sandbox
Regioneastus (primary)
Instance001, 002, โ€ฆ

These mirror the Terraform variables in infra/azure (org_prefix, the subscriptions map keys).

Resource type abbreviations (CAF)โ€‹

Common ones we use. Full list in the CAF abbreviation reference.

ResourceAbbrevExample
Resource grouprgrg-opennav-prod-eastus-001
Storage accountststopennavprodeus001 ยน
Key Vaultkvkv-opennav-prod-eus ยน
PostgreSQL flexible serverpsqlpsql-opennav-prod-eastus-001
App Service planaspasp-opennav-prod-eastus-001
Web App / App Serviceappapp-opennav-prod-eastus-001
Function Appfuncfunc-opennav-prod-eastus-001
Container registrycrcropennavprod001 ยน
Virtual networkvnetvnet-opennav-prod-eastus-001
Subnetsnetsnet-opennav-prod-eastus-001
Network security groupnsgnsg-opennav-prod-eastus-001
Log Analytics workspaceloglog-opennav-prod-eastus-001
Application Insightsappiappi-opennav-prod-eastus-001
Managed identityidid-opennav-prod-eastus-001
Management groupmgmg-opennav-platform
Databricks workspacedbwdbw-opennav-prod-eastus-001

Databricks managed resource group. Creating a Databricks workspace auto-creates a second, Azure-managed resource group named databricks-rg-<workspace>-<hash> (holding the workspace's VNet, storage, NAT gateway, etc.). You don't name or manage that one โ€” Azure owns it.

ยน Globally-unique / restricted names. Some resources have tight rules that break the standard pattern:

  • Storage account โ€” 3โ€“24 chars, lowercase letters + digits only, no hyphens, globally unique. Use a compact form: st + workload + env + region-short + instance, e.g. stopennavprodeus001.
  • Key Vault โ€” 3โ€“24 chars, globally unique; hyphens allowed but keep it short.
  • Container registry โ€” 5โ€“50 chars, alphanumeric only, globally unique.

When hyphens aren't allowed, drop them and shorten the region (e.g. eus for East US) โ€” but keep the same segment order.

Taggingโ€‹

Every resource carries these tags (the Terraform applies them via common_tags):

TagValue
managed_byterraform
projectopen-navigator
environmentprod / nonprod / sandbox
cost_centerengineering
ownerresource owner

Tags drive cost attribution and lifecycle policies โ€” prefer them over encoding extra metadata into names.

Region short namesโ€‹

RegionLongShort
East USeastuseus
West US 2westus2wus2
Central UScentraluscus

Use the long form in the standard pattern; use the short form only for hyphen-restricted names.

Referencesโ€‹