host naming scheme

Things I might want to know about a host:

application / services
geography
network
architecture
OS
VM / non-VM
prod / non-prod

Things I want to encode in the host part of a hostname:

application / services – that is all

Things I do not mind encoding in the FQDN (using subdomains or suffixes)

geography
prod / dev / qa

Hostname parts

<service hint> <handle> . <subdomain> . <domain>

Joining the service hint and handle should be done with a non-dot. The dash (-) is popular.

Service hints should be “registered” centrally (wiki, source control repository, etc.) to provide humans with a lookup table.

<service hint> should be no longer than n characters, where n is usually 3 but can be as high as 5 if there is dire necessity. Remember, you only want to encode the service here, nothing else. Examples: web db srch mx smtp relay cache log cs fs crs

<handle> should be picked from a semi-randomly generated list of simple dictionary words. Care must be taken to prevent near-collision (dear, deer) by auditing the list. Avoid using anglicized “borrowed” words, or really anything above a 5th-grade reading level. These are names you will be spelling and pronouncing, and some of your co-workers are not native English speakers. Uniqueness need not be cumbersome.

<handle> *may* be suffixed by -dev, -qa, -sp, etc. to indicate non-production status. Production should never be suffixed, it needs to have the simplest naming possible.

<subdomain> can be used to encode one of:

geography to the level of city or colo name
network type (s for storage, p for pocket / private, etc.)

Examples:

plain hostname

log-foo.domain.com

dev hostname (suffixed host part)

db-bar-dev.domain.com

using a subdomain for geography

mail-baz.atl.domain.com

using a subdomain for a storage interface

nfs-flee.s.domain.com

nesting subdomains

nfs-blah.atl.s.domain.com