news.yc had a link to Don
Libes' rfc 1178. It
comes across as very Old Testament, basically one proposition (use a theme to
generate uncommon words) with a whole lot of "Never ever do X" for X in
range(10).
While eliminating only the really bad ideas leaves a lot of space open in
the Venn diagram view of machine naming, we should probably sit down and think
about why we name machines and how we use those names. With that in mind, we
can try painting
this shed.
- Short names work better than longer. Yes, we can turn on bash tab
completion and put hostnames like slartibartfast in /etc/hosts, however it just
adds up to a bunch of extra work to distinguish that machine from how many
other machines? Say that each extra character in length (conservatively) buys you 2
bits of information, with 14 characters, you'd better have a nice data center
to house all those machines.
- Use easily spelled and said names. Some sysadmins have a primarily
visual memory for words, while some have an auditory memory. So to make
machine name memorization easier, we should use names that spell like they sound,
and sound like they spell.
Unfortunately, English sucks for bijective mappings between sounds (phonemes)
and their spelling (orthography). Check dictionary.com's
pronunciation for your word to see how close the pronunciation maps to the spelling (e.g. compare snot and phlegm).
- Use a naming scheme that fits your planned deployment. Somewhere between 1 and 100 machines, names become something you want to automate;
so you either maintain a pool of available names (like hurricanes), or
name a class of machines and form the name from a combination of class and the current count of how many have been deployed.
- Reflect DNS's hierarchy. Do you really have a flat list of hosts? Or does an intrisic hierarchy emerge? Keeping your installation
well-managed in DNS ( subdomains; hosts with A, PTR, SRV records ) usually helps organize your naming. Even if you don't publish all records to the
Internet.
That's all I can think of so far; any other pointers?