Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Naming your clusters? Naming them after the service that runs on them is great, till the point you start running something else on them too. We ended up naming them with our team name.

This is covered by RFC 1178¹, Choosing a Name for Your Computer (from 1990):

Don't choose a name after a project unique to that machine.

A manufacturing project had named a machine "shop" since it was going to be used to control a number of machines on a shop floor. A while later, a new machine was acquired to help with some of the processing. Needless to say, it couldn't be called "shop" as well. Indeed, both machines ended up performing more specific tasks, allowing more precision in naming. A year later, five new machines were installed and the original one was moved to an unrelated project. It is simply impossible to choose generic names that remain appropriate for very long.

Of course, they could have called the second one "shop2" and so on. But then one is really only distinguishing machines by their number. You might as well just call them "1", "2", and "3". The only time this kind of naming scheme is appropriate is when you have a lot of machines and there are no reasons for any human to distinguish between them. For example, a master computer might be controlling an array of one hundred computers. In this case, it makes sense to refer to them with the array indices.

While computers aren't quite analogous to people, their names are. Nobody expects to learn much about a person by their name. Just because a person is named "Don" doesn't mean he is the ruler of the world (despite what the "Choosing a Name for your Baby" books say). In reality, names are just arbitrary tags. You cannot tell what a person does for a living, what their hobbies are, and so on.

1. https://tools.ietf.org/html/rfc1178#page-2



Naming standards are the ultimate bikeshedding event. Everyone has an opinion and camps develop for various schemes.

The last time this happened, I happened to be in a position of influence for the final decision for naming standards. We took an approach designed to piss off everyone... license plates. We used sequential numbers prepended by a pronounceable string, and random words, selected by a system, for internal services.

Overall, everyone is pretty happy with it. YMMV.


I have been on both the receiving and producing end of a similar decision making process whereby all stakeholders are consulted, and then a solution is provided which has as its only real design consideration - beyond being effective - that no-one gets exactly what they requested.

Is there a name for this kind of anti-consensus decision making?


Not sure if there’s a name for this, but my favourite example is settling on UTC as the acronym for Coordinated Universal Time:

https://en.m.wikipedia.org/wiki/Coordinated_Universal_Time#E...


ISO stands for the International Organization for Standardization, for largely the same reasons.


Maybe I got the wrong person (on the phone), but it was explained to me the name "ISO" was the Greek word for "sameness" and that Français and English just happened to form /meaningful/ representations for an acronym.


"IT'S ALL IN THE NAME Because 'International Organization for Standardization' would have different acronyms in different languages (IOS in English, OIN in French for Organisation internationale de normalisation), our founders decided to give it the short form ISO. ISO is derived from the Greek isos, meaning equal. Whatever the country, whatever the language, we are always ISO." https://www.iso.org/about-us.html

But I'd tend to call BS - if it wasn't ever an acronym, why capitalize all three letters?

The google ngrams are also suggestive:

https://books.google.com/ngrams/graph?content=international+...


The Greek ισο "iso" does mean "equal". I do not know if that influenced the naming of the organization, though.

You see this word in many English roots, such as isotropic, isometric, isomer, etc.


In a similar vein, the acronym for Web Ontology Language is OWL[1].

[1]: https://www.w3.org/OWL/


Great question! I wish I knew!

It’s a weird scenario as people are very emotional about their chosen position during the discussion, but literally nobody gives a hoot once a decision was made.

In our case, multiple organizations were merged, so the perception one camp “winning” was important to avoid.


I'd call that a compromise.


I like the sound of "anti-compromise."


Compromise?


No; the point here is to pick the worst possible compromise out of compromises that solve the problem effectively.

It's like you're dividing an 8-piece pizza between 3 people. Everyone's minimum desire is 2 pieces, compromise solution would be 2 and 2/3 split, and people keep arguing why they deserve more. However you - the decision maker - decide instead to give everyone 2 pieces and throw the remaining 3 pieces into the bin, because shut up and get back to work.


You understand perfectly: everyone got enough food to keep going, and they are equally dissatisfied with the result. I might take a step to the left by ordering known-unpalatable toppings and provide no further allocation instructions, but the effect is the same.


If there are 3 people, and they each get 2 slices, that is 6 slices.

So, throwing away 2 slices, because there is 8 total, is fine, as you stated that is everybody’s agreed minimum desired amount.

And there is no knife, nor protractor.

What is the difference between the worst and best compromise? If it is a compromise, it is a compromise.


Anti-compromise: A solution which pleases the fewest parties possible while still meeting each party’s needs.

Compromise: A solution which pleases the most parties possible while still meeting each party’s needs.


I'm in Denmark, it has been my experience that the most common naming scheme (I would say omnipresent naming scheme almost) is to use the old Norse Pantheon for names.


Similar in Greek academic networks, adapting to local mythology. The amount of routers and mail servers named 'Hermes' was ridiculous.

Different experience in English academia, where I encountered random names (e.g. 'mira' for a shell server and 'laplace' for a Physics Dept server). The acronyms could at times be interesting. Particular favourite was a 'central university network time' server. That was later renamed to ntp.*.ac.uk, after stern recommendations.


Around 2000 I was working at the small bank that had servers named by currency. Development server happened to be "dong". Eudora had some spicy language detection and used to show me some red chili peppers every time I'd mention that server in email.


In Colorado, USA, all 5 companies I've been inside conference rooms of use specific mountains (or ski towns) in the area. I've been in meetings in Longs Peak in 3 different companies.


Same experience in Norway and Sweden. Followed very closely by sci-fi/fantasy characters or authors.


I've noticed the Pritunl VPN suite uses that to name nodes. Two words (adjective + noun) and a number.


> Naming standards are the ultimate bikeshedding event.

I hope you never write a single line of code with this mentality...


There is a cute name for, er, the two ways of naming systems: pets naming vs cattle naming [1]. I think naming after services is like pet naming, while naming them by numbers is like cattle naming.

Pets Service Model

In the pets service model, each pet server is given a loving names like zeus, ares, hades, poseidon, and athena. They are “unique, lovingly hand-raised, and cared for, and when they get sick, you nurse them back to health”. You scale these up by making them bigger, and when they are unavailable, everyone notices.

Examples of pet servers include mainframes, solitary servers, load balancers and firewalls, database systems, and so on. Cattle Service Model

In the cattle service model, the servers are given identification numbers like web-01, web-02, web-03, web-04, and web-05, much the same way cattle are given numbers tagged to their ear. Each server is “almost identical to each other” and “when one gets sick, you replace it with another one”. You scale these by creating more of them, and when one is unavailable, no one notices.

Examples of cattle servers include web server arrays, no-sql clusters, queuing cluster, search cluster, caching reverse proxy cluster, multi-master datastores like Cassandra, big-data cluster solutions, and so on.

[1] https://medium.com/@Joachim8675309/devops-concepts-pets-vs-c...


The thing I found when naming things was to have as much information packed in the first syllable in a way that was reinforced by all the remaining syllables (that becomes more important when there are a variety of accents in the workplace).

One set of systems I worked on, a team had names based on islands. Two of the test machines were Trinidad and Tobago. Upon hearing the first syllable, it was clear that these were the test machines. Every additional bit beyond tri or tƏ was distinct and reinforcing that the first bit was heard correctly.

They also had boring names like dc2f1a3r1s4 and foo-test1 (depending on who was interested in the machine).

The problem that I've found with names like asfcap1234 is that one has to listen to every piece of information and remember it to properly identify the machine. With every character being important and distinct, there isn't any reinforcement or mnemonic checksum to make sure you've got it right.

I will note that this is from the era of servers (and even before VMs started being the thing).

It is very true that once humans no longer reference the machines by name, the ability to name them becomes less important.

As a counterpoint to RFC 1178, consider RFC 2100 - The Naming of Hosts https://tools.ietf.org/html/rfc2100


If you designate your servers with numbers or meaningless identifiers instead of names, you also won't ever feel guilty about killing and replacing them. I believe this is (somewhat gruesomely) called the "pets vs. livestock" approach.


If you believe people can't get a little attached to "prodsys3" or whatever, then you underestimate the sentimentality of some of us. ;)

Of course, the other thing you can do is name server roles rather than specific hardware, so all of your servers are immortal, Ship-of-Theseus style.


A farmer gets attached to his cattle but when the time comes for one of them to go (either old age, to sell the meat, or there's a newer faster cattle that management has enforced a mandatory deadline of Q3 to migrate to), it's understood that it's time to say goodbye.


At one job, the servers were named after characters on Gilligan's Island.

Problems with Ginger were being discussed at one stand-up, and an engineer who didn't care about that quietly said, "Blah blah blah Ginger, blah blah blah Ginger." I almost fell over laughing.

(https://desertdemocrat.files.wordpress.com/2015/03/gary-lars...)


Yeah, I work for a CDN with tens of thousands of machines, and I still miss wac052.mad when we decommmed that POP 5 years ago.


prodsys3 pales in comparison to when I had to decommission gandalf and galadriel.

Now when name them by physical position in the rack/bladecenter.


At least the memes write themselves.


Every time someone trots out that old analogy, I think of my uncle who has a small dairy farm in the U.S. midwest with over 50 head of cattle. He gave each one a name, and when one is sick, he cares for it until it is better if possible.


I know of a man with over 50 children. I'm friendly with his neighbour, who has almost 40. 50 is a number that a human can still care for and love each one individually.

NB: Yes, I know that the Wikipedia list of "people with many children" makes 50 look like a record-breaking number. That list is Western-centric. Though 50 is a huge number of children even by Arab standards, it is not unheard of.


If you can have four wives, 50 children is only about 12/13 per wife, and 12/13 kids seems like a high-but-achievable number in our monogamous culture. So I find that very believable.


Right, because 50 is still a small enough number to care about each one. If he had 20,000....


It is also misguided. Not only do people get attached just as easily to meaningless identifiers, but when stripped of their mening people are more likely to re-use identifiers, not less.


in my home network i name my computers after animals, whereby the power/size of the computer roughly resembles the size of the animal.

my beefy desktop may be the whale, the nas is the rhino, the notebooks are roughly dogs, the raspberry pis are small animals like mice, the chromecast is e coli.

plus good: i'm never going to run out of animal names.


Nice! Could take a turn for the worse when you need something smaller than E. coli though--you'll be wishing you named the Chromecast "tardigrade" when some lightswitch has to be named "herpes."


Rest assured, IoT deserves to be named herpes...


My parents use the same scheme; they have developed a tradition of buying a corresponding stuffed animal to live next to the computer.


I use Simpson’s bit characters. Never gonna run out of those.


I use One Piece characters for the same reason. My most beefy PC is Monkey D. Luffy and so on. Like you, I like the whimsy in using names from a fictional world, and some worlds have more names to choose from than others.


My first job, I named each web server off of a different Simpson’s character, all attached to a big KVM, so I customized each desktop to the character, so I could easily tell what server I was in.


Some people thought it was annoying, but the desktop picture had the character in the upper right corner. Away from the Icons, but you could glance ad see who it was and go right to it.

Also have used Simpson's for test data. There is some built in structures that can be used Abe-> Homer == Marge > Bart, Maggie, Lisa. Lots of people mostly remember them.


I went for traditional Russian names, because I’d also have a healthy amount of diminutives to use if the device behaved well, and could fall back to the full patronymic version if it acted up.

It’s like having a little family.


I'm a bit reluctant to be that guy, but... E. coli is not an animal...

There are some really small animals, though:

https://en.wikipedia.org/wiki/Rotifer

https://en.wikipedia.org/wiki/Water_bear


Yes, this is more or less what RFC 1178 recommends:

https://tools.ietf.org/html/rfc1178#page-6


For some reason nobody liked my norse pantheon names.

Teaching people to spell yggdrasil correctly in order to get a database connection is fun. For some values of fun.


Dwarf Fortress values of Fun.


I am not understanding why the machine name could not be changed when it's purpose changed? Is an immutable name unique to that environment?


Because you'd probably also change the SMB or DNS name for the machine when you rename it, and that opens a can of worms where you try to work out what's using that reference and change everything that matters.

Now renaming the machine is a multi-day thing involving configuration changes (and that assumes it's not hard coded anywhere) to a whole bunch of software; inevitably you'll miss some and it'll break. Easier not to bother.


If something else is still referencing the old machine, it means you aren't changing its purpose but only adding to it. I would imagine a change of purpose would normally be a reprov.


Changes can be gradual. I know a server that was named after a single service the machine was set-up for. Then later across a span of time, more services needed to be added. They're unrelated services, but circumstances necessitated them being installed on this server. Then even later, the original service ceased to be used and was shut-down.

Changing the name might imply changing references in other services that make reference to this server for the current services that are still running. It might also imply changing bookmarks in the machines of the users of the services still running on this server.

The bookmarks are a concern because many users don't know how to do anything with bookmarks other than clicking on them, so you can't depend on them understanding how to edit the URLs of these bookmarks. Yes, that's depressing.


RFC 1178 answers this:

However, let me add that if you later decide to change a name (to something sensible like you should have chosen in the first place), you are going to be amazed at the amount of pain awaiting you. No matter how easy the manuals suggest it is to change a name, you will find that lots of obscure software has rapidly accumulated which refers to that computer using that now-ugly name. It all has to be found and changed. People mailing to you from other sites have to be told. And you will have to remember that names on old backup media labels correspond to different names.


It is a good idea not to re-use host names. Otherwise you may encounter soft fails if the old name is still accessible, especially in systems outside of your control. If there are certificates generated it will also guarantee that they can not be re-used. So it is a good rule of thumb in larger organizations.


Names are an opportunity for fun. Call that old server PersistentSnail, or some old fashioned name like Myrtle. Make naming a reason to smile.


I find that team names change more frequently than responsibility in a large org. Also using a team name makes people assume ownership of decisions with that team. That's why I prefer service name. However I haven't thought much about shared use clusters.


We've had the same name for the past 7 years, so going by the future estimates with no extra useful information, I expect us to have the same team name for 7 more years :P


Makes things easy for you then. My company, every manager hire decides to change team names. Had a vp who used to be marketing that changed the org name like 4 times in 2 years. Cause name changes fix everything. Essentially we have a few teams / orgs with name of the week.


The only machine we have that's not named poorly, is named DP2950. It was originally a Dell PowerEdge 2950, and we probably had more than one back then, so maybe it wasn't a great name.

Everything else is named based on it's purpose.

www, webapps, data, acccounting, mail, things like that.

But, mail is actually named mailV3 (it's the third hardware the mail server has been on). Why it wasn't just named mail, and if the old one was kept around, it could be mail-old, I don't know.

Then we have our development servers. devel, develv2, www-devel, that kind of stuff. I'd personally prefer devel-whatever the name of the production version is called. Instead we have to thing 'develv2 is actually the development version of dp2950....'


> Why it wasn't just named mail, and if the old one was kept around, it could be mail-old, I don't know.

Probably because mail system hostnames end up hardcoded in configuration files all over the place, and it's easier to add one and mirror onto it than to migrate the hardware while keeping the name.


  > Nobody expects to learn much about a person by their name.
This is wrong. If I tell you that I just hired a mathematician, a farmhand, and a nurse, you could probably guess which person was which when I introduce you to Vladimir, Jebbediah, and Sofia.

Names are a reflection of culture, and certain cultures tend towards certain professions. No politically-correct dreams will change that unless we instill a universal monoculture throughout the world. I'm sure that Disney and Coca Cola would love that, but most people would probably prefer to protect their heritage and culture.


> Names are a reflection of culture, and certain cultures tend towards certain professions.

They key word there is “tend”. Since it’s not an absolute, it would be unfair and ultimately disadvantageous of anyone to pre-judge individual people based on their name, since it is not a guarantee.


Branch prediction is a very good optimization though, you'd lose quite a lot if you forbade people from using it.


> you'd lose quite a lot if you forbade people from using it.

We do forbid it, though: https://en.wikipedia.org/wiki/List_of_anti-discrimination_ac...

It seems that we have decided as a society that we gain more from the cumulative effect of all people gaining a equal and fair chance, than we would save by allowing people to use whatever branch predictors they like.

It looks like branch predictors in general tend to have unforeseen problems; see also https://en.wikipedia.org/wiki/Spectre_(security_vulnerabilit...


I think your example rather exemplifies what kind of cliches "Disney and Coca Cola" have established. This kind of role models is the universal monoculture, not a nurse called Vladimir.



Certainly:

- Dr. Sofia Cerny, the brilliant Czech topologist

- Vlad, a fifth-generation Ukrainian dairy farmer

and

- Jeb, a favorite of the patients at his clinic, who is not on speaking terms with his Southern Baptist pastor father


> It is especially tempting to name your first computer after yourself, but think about it. Do you name any of your other possessions after yourself? No. Your dog has its own name, as do your children. If you are one of those who feel so inclined to name your car and other objects, you certainly don't reuse your own name. Otherwise you would have a great deal of trouble distinguishing between them in speech.

a) I am, in fact, named after my father.

b) This does, indeed, cause trouble for other people trying to differentiate us.


“We named the dog ‘Indiana’!”


Like the inevitable branch names. Main, Borg, Borgmain, etc... Or the purposes of the standard unix directories (lib, usr, opt, etc, ...)


Isn't Cloud-Computing something that should make it unnecessary to name individual computers?


How do you make a service call or ssh into a machine without a name?


IP Address. We have “servers” that get created and destroyed nightly based on how many items are in the queue. All of our web servers are behind autoscaling groups. Even the ones where we have a min/max of 2. If it doesn’t respond to a health check it gets killed and another one is brought up.

Ideally, none of our servers are special.


You don't. Stop thinking in machines.

Your code doesn't directly call a service, you'd use a service discovery framework (eg AWS Cloud Map) to lookup a location that can handle a particular type of request. It doesn't even matter to the caller whether the request is handled by an instance (eg EC2), a container (eg Fargate), or a function (eg Lambda).

End user requests are handled by an application loadbalancer (eg ELB) that accepts the requests and routes them to an available location, which again doesn't need to be any particular machine (and it can also spawn/destroy instances as needed) or type.

With serverless computing (eg AWS Lambda), there's not even machine for you to SSH into, the cloud takes care of executing functions "somewhere" to handle your work. Work could mean serving an HTTP request - however there doesn't even need to be a client making a call; the lambda could e.g. run in response to an event on an S3 bucket.

Of course AWS can also handle your pets; ie you can name your EC2 instances (and either manage DNS outside, or use Route 53 to let AWS handle it). But that's not what AWS is about; there are way cheaper options for vServers. And of course there are real computers below this, and DNS is being used in the middle of this (with auto-generated names that you don't care about). But you don't deal with that.


The first thing you should do is question why you're SSHing into a production server in 2019. But after that, usually you can do it by IP address or instance ID.


OP never mentioned it was a production server. Also, sometimes, things get stuck, or you haven’t set up a pipeline to gather X data but y has happened, or there’s a deadlock in your source control host, or you’ve accidentally deleted the backup and the live service is the only copy of the data... all awful reasons and yet I’m sure they happen every day to people.


I didn't say you should never ssh into an instance, I just said you should ask yourself why you're doing it first. Every one of the reasons you listed is a great thing to be cognizant of so that you can make a list/ticket/whatever to fix that problem so you won't need to ssh again to solve that problem.


Haha, I had no idea. Thank you!


[flagged]


It's sad to see in the current century that a group of erstwhile professionals jump to "porn stars".


Some folks are more relaxed than others. I have even seen servers named after gods in the distant past, can you imagine? Try naming a server Odin now, or Loki, etc. Used to be a popular naming scheme but today it would have someone complaining to HR about inappropriate religion in the workplace.

I gotta say that whoever flagged that post has the thinnest skin I've yet encountered. Even for HN, I am slightly surprised.


For servers that, er, probably filter out porn stars?

You realise someone has to do this stuff, right?


Why is this being downvoted? It is highly inappropriate to do this in a work context.


Because it's like having subtle adult jokes in Disney movies, the adults get it and the children are oblivious and unharmed by them. Anyone offended by the use of porn star names wouldn't (or at least shouldn't) know what it's referencing.


I know that porn is pretty normalised by western culture, and I’m not reply anti porn myself, but if you can’t see how another adult might find porn references in their work inappropriate then I don’t know what to tell you.


Heh, 9 out of 10 people couldn't even tell you where those names came from. They never even had a chance to be offended. And frankly, not too many people wandering through the datacenter spent much time reading all the labels.


> Anyone offended by the use of porn star names wouldn't (or at least shouldn't) know what it's referencing.

“Offended by the use of X to name servers at their workplace” doesn't imply “have never heard and wouldn't recognize the names of X”. Whether X is “porn stars” or “Nazi leaders”.


I'm naming my server Godwin.


It is somewhat amazing how reliable that rule is. A part of me wonders how many people actually do it on purpose.


Maybe. But they were doing web filtering, so I get it.


Some people work in porn hub, and some in the mormon church. Of course the culture will differ. I, personally, would rather work for the pornhub than the mormons purely due to ethical reasons.


The example that cited upthread (a smaller ISP) had nothing to do with either of those examples, which are both extremes in terms of corporate culture.

Naming your servers after porn stars is the digital equivalent of having pin ups in your auto shop. Can you not see how this creates a hostile work environment for some employees? It’s inappropriate, unprofessional and unnecessary.

I shouldn’t even need to footnote this by saying that I don’t care whether someone enjoys porn in their personal life. If the business is not about porn, porn shouldn’t be a topic in the business.


Again, it is a matter of workplace culture, that is, the collective understanding of what's ok and what's not in that particular workplace. If everyone's ok with having pornstar names for servers, fine, whatever rocks your boat. I'm for diversity of workplace cultures instead of bland corporatism "safe space" and samethink. And besides, ain't nothing wrong with pinups in the autoshop as long as they do not discriminate them by gender, color and age :)

Peace & chill.


It's downvoted I guess because it's inflammatory and causing conflict/political discussion where there was absolutely none. I.e. We're talking about something innocent like naming servers.


It got as many upvotes as downvotes, actually.

People also name servers after Norse gods, which might be offensive to religious folks. Many naming schemes are not innocent unless you just aren't offended about the particular topic. Here's the thing, though -- once we decided that the metric was whether or not someone could be offended by something, then we made everything offensive. Whoops!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: