Engineering/Engineering Principles/7 Security And Availability/Secure Infrastructure/Naming Cloud Resources/

Naming Cloud Resources Standards · CLOUD-01

Overview

Naming conventions for resources in a cloud provider play a crucial role in maintaining a well-organized and easily manageable environment. By adhering to these guidelines, we can ensure consistency, clarity, and efficiency across all Audacia projects both ones hosted by us and ones hosted by our clients.

Determine the appropriate naming convention based on the project’s context:

  • For a new project or environment - use this naming convention.
  • For an existing project or environment without a clear convention - use this naming convention for new resources.
  • For an existing project or environment with a clear convention - use the existing naming convention.

Cloud resources must have descriptive and meaningful names · CLOUD-01.1 · MUST · DEV

Use names that accurately describe the resource’s purpose, function, or role. Avoid ambiguous or generic names that may lead to confusion or misinterpretation. Ensure names convey relevant information without being overly long or complex.

Example 1:

  • Good: olympus-dev-vm
  • Bad: vm1

Example 2:

  • Good: olympus-dev-asp-functions
  • Bad: app-service-plan

Example 3:

  • Good: olympusdevst
  • Bad: storageaccount

Cloud resources must be named consistently · CLOUD-01.2 · MUST · DEV

Establish a consistent naming convention that is applied uniformly across all resources. Include all relevant teams and stakeholders in the development of the naming standard to ensure buy-in and alignment.

Good:

  • olympus-dev-asp-functions
  • olympus-qa-asp-functions
  • olympus-uat-asp-functions

Bad:

  • olympus-dev-service-plan-functions
  • olympus-qa-asp-functions
  • olympus-uat-app-service-plan-functions

Resource names must use lowercase letters and numbers · CLOUD-01.3 · MUST · DEV

Stick to lowercase letters and numbers to avoid potential case sensitivity issues and ensure consistency. Avoid using special characters, spaces, or uppercase letters in resource names.

Resource names must include an environment indicator · CLOUD-01.4 · MUST · DEV

Include environment indicators to differentiate resources across development, production, staging, or testing environments. Use abbreviations or standardized keywords such as “dev”, “prod”, “staging” or “qa”.

Generic: {project}-{environment}-*

Examples:

  • olympus-dev-*
  • olympus-qa-*
  • olympus-uat-*
  • olympus-prod-*

Resource names must include purpose or resource type indicators · CLOUD-01.5 · MUST · DEV

Use the purpose and the type of the resource to categorize the resources based on their purpose, department, or function. Prefixes provide a quick way to identify resource types and aid in navigation and management.

Generic: {project}-{environment}-{purpose*}-{resource}-*

purpose*: A prefix indicating the purpose of the resource in the context of the system.

Examples:

  • olympus-qa-portal-api
  • olympus-qa-public-api
  • olympus-qa-orders-func
  • olympus-qa-timers-func
  • olympus-qa-customers-sqldb
  • olympus-qa-sales-sqldb
  • olympus-qa-language-vnet
  • olympus-qa-build-vnet

Resource names must include a location indicator · CLOUD-01.6 · MUST · DEV

Include location indicators for resources deployed across multiple regions or geographical locations. Use standardized location abbreviations or keywords to maintain consistency.

Generic: {project}-{environment}-{resource}-{location}

  • olympus-qa-sqldb-uksouth
  • olympus-qa-sqldb-westeu
  • olympus-qa-cosmos-westus
  • olympus-qa-cosmos-usva

Resource names must be concise and clear · CLOUD-01.7 · MUST · DEV

Keep resource names concise while maintaining clarity and conveying relevant information. Avoid excessively long or cryptic names that may hinder readability and management.

Project-specific conventions must be documented · CLOUD-01.8 · MUST · DEV

If the project requires a different naming convention this should be documented and distributed among relevant teams and stakeholders. Provide clear guidelines, examples, and explanations to ensure proper understanding and adoption of the naming standard. Conduct training or workshops to educate teams on the importance of adhering to the naming conventions.

Appendix - Common Abbreviations

Azure Resources

CategoryResourceAbbreviationExample
GeneralResource Grouprg{project}-{env}-rg
Compute and WebVirtual Machinevm{project}-{env}-vm
Compute and WebApp Service Planasp{project}-{env}-asp / {project}-{env}-asp-functions
Compute and WebWeb Appweb{project}-{env}-{name}-app
Compute and WebFunction Appfunc{project}-{env}-{name}-func
Compute and WebAvailability Setavail{project}-avail
DatabasesDatabasedb{project}-{env}-sqldb / {project}-{env}-cosmos
DatabasesAzure Cache for Redis instanceredis{project}-redis
IntegrationService Bussbns{project}-{env}-sbns
IntegrationService Bus Queuesbq{project}-sbq
IntegrationService Bus Topicsbt{project}-sbt
IntegrationLogic Applogic{project}-logic
Management and GovernanceAzure Monitor Action Groupag{project}-ag
SecurityKey Vaultkv{project}-kv
StorageStorage Accountst{project}{env}st / {project}{env}st{name}
AnalyticsLog Analytics workspacelog-analytics{project}-{env}-log-analytics
AnalyticsApplication Insightsappinsights{project}-{env}-app-insights
NetworkingDNS zonedns{project}-{env}-dns
NetworkingVirtual Networkvnet{project}-{env}-vnet
NetworkingSubnetsnet{project}-{env}-snet
NetworkingNetwork Security Groupnsg{project}-{env}-nsg / {project}-{env}-nsg-{type}
NetworkingFront Door (Standard/Premium) profileafd{project}-afd
NetworkingFront Door (Standard/Premium) endpointfde{project}-fde
NetworkingFront Door firewall policyfdfp{project}-fdfp
NetworkingFront Door (classic)afd{project}-afd
AI & MLAzure Cognitive Searchsrch{project}-{env}-srch
AI & MLAzure Cognitive Servicescog{project}-{env}-cog

For Azure resources that are not in the above table, refer to here for guidance.