Naming convention massively outdated and needs updating
The naming convention outlined in https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/naming-and-tagging is massively outdated and not reflective of real world scenarios. From my experience of working with many clients over the past 25 years there has never been a time where the naming outlined in the above document has been implemented or would have been implemented due to the confusion it leaves when infrastructure has been deployed.
The examples need to be broken down into several different use cases depending on the client needs. Naming conventions can be different from company to company, for example for a company only providing infrastructure for their own organisation to a company that has multiple clients that need infrastructure (for possible security and GDPR purposes) Just to quickly highlight:
Prefixing is never a good idea.
When looking through infrastructure in Azure that has the naming of the following
webapi-org-dev-application-001
ai-org-dev-application-001
it is a lot harder to understand than:
org-dev-application-001-webapi
org-dev-application-001-ai
Both are the same but just named differently. This makes a huge difference when trawling through masses of infrastructure in Azure
Environments vs purpose
Environments are not just dev, test, preprod and prod on their own, they are the purpose of the infrastructure
Environments are made up of purpose dev and a version 001
dev-001
prd-001
prd-002
having infrastructure naming built up like this allows you to have multiple instances of sites that you can easily switch to or create blue green testing for. It also helps with not having pets (long standing infrastructure) and breeds more cattle (short lived easily destroyed infrastructure)
Positional values in the naming convention matter.
How you construct your naming convention is very important. having a name of
org-dev-app1-001
org-dev-app1-002
is a lot easier to read and predictably create using automation than
org-dev-001-app1
org-dev-002-app1
A naming convention could be built up from the following items
Owner: short descriptor of the organisation - it unique naming for some infrastructure org1 - Organisation 1
Purpose: Dev - Development Tst - Test Qa - Qa pp - PreProd Prd - Production
Application: ap1 Application1
Environment: 001, 002 ect
Base name org1-dev-ap1-001
Infrastructure: App insights -ai Web UI -webui Web api -webapi Web job -webjob App service plan -asp Service Bus Sb Function App -func Key Vault -kv
This is just a very brief overview of where I feel the naming conventions should go for enterprise scale infrastructure.