It's not hard to have DNS CNAME and TXT records for machines, so that you can have both a naming theme for certain classes of servers, as well as descriptive names that indicate function, location, etc.
The way I handle the problem is pretty simple. Functionality gets a subnet 'name' under the root, and there are TXT records and aliases within that to handle description. So, if you have a datacenter in Sacramento, your DB and web machines would be named and alised:
For ambiguous names (like 'mercury' existing in both { planets } and { elements }), only one copy of that name can exist on the network. The people who work with that machine will know it's theirs, and for everybody else, there's CNAME and TXT records for when they're not sure.
It's not hard to have DNS CNAME and TXT records for machines, so that you can have both a naming theme for certain classes of servers, as well as descriptive names that indicate function, location, etc.
The way I handle the problem is pretty simple. Functionality gets a subnet 'name' under the root, and there are TXT records and aliases within that to handle description. So, if you have a datacenter in Sacramento, your DB and web machines would be named and alised:
johnny.sac.mycorp.com => db1.sac.mycorp.com TXT Rack 1, Slot 1-4
devi.sac.mycorp.com => db2.sac.mycorp.com TXT Rack 1, Slot 5-8
spooky.sac.mycorp.com => db3.sac.mycorp.com TXT Rack 1, Slot 9-12
tenna.sac.mycorp.com => db4.sac.mycorp.com TXT Rack 1, Slot 13-16
zim.sac.mycorp.com => web1.sac.mycorp.com TXT Rack 2, Slot 1
gir.sac.mycorp.com => web2.sac.mycorp.com TXT Rack 2, Slot 2
For ambiguous names (like 'mercury' existing in both { planets } and { elements }), only one copy of that name can exist on the network. The people who work with that machine will know it's theirs, and for everybody else, there's CNAME and TXT records for when they're not sure.