I wonder if the notion of machines naming conventions being just about where to locate it on the rack, or which AWS data center it lives in, require further levels of abstraction about "pet" and "cattle".
(Meanwhile moving further down, if the hardware guys are having to name ethernet or power ports on the wall due to their various temperaments, something is wrong. And moving up, it's reasonable for devs to name their services, but a signal of an issue if the VP has to know them)
There's a level of abstraction underneath which you should not be aware of to do your job...but someone likely has to (it's not quite turtles all the way down, but it probably ends with physicists and theory rather than cold hard fact).
The point with the analogy is not how you name them, but whether you identify them at all. I really don't care about the name of the machine that died while running my distributed service; I shouldn't ever have to know it. It should automatically be culled and replaced.
The person working in a datacenter really does care about the name of the rack that is faulty; they have to find and replace it. That rack can be named "RM22-R3-5", a super descriptive identifier, or "Tennyson", because the whole room is Elizabethan authors and poets; point is, he DOES need to identify it.
The whole cattle vs pets is about identification and uniqueness, not about whether the identity is self-descriptive or not.
My uncle owns a dairy farm with ~50 or so head of cattle.He gave each of them names and when one gets sick, he takes care of it.
Of course this is not a big industrial farm, but even so... not even actual cattle are as "cattle" as we're expected to treat computer-cattle -- and thanks to virtualization, computer-cattle are largely pretend anyway.
Restaurant vs Cafeteria
Espresso vs Drip
Cafe vs Starbucks
Backyard BBQ vs McDonalds
I actually think that garden vs farm is a good choice. The others are a bit funny to me :)
Another thing to consider is international cultures. There’s been concern around calling servers cattle and saying to just shoot them in the head during work meetings. Some cultures may have issues with that.
Personally I like the second since we're having cattle not pets, but it's your fleet and this is rather bike-shed-y. :)
When scaling up - hard- or software - it's better to be clear than clever.
At first, people name the machines after the software they install on it. Then, when you get to about 4-5 machines, you start finding a "cute" naming convention (Constellations, Star Trek ships, mythological figures). As long as there is only a handful of machines, it's easier to remember which machine does what.
Then, as you start to scale up, between a few tens to a hundred, finding names gets harder, so you switch to a more standard naming conventions. Something that communicates the physical/logical location and the organizational unit, as well as an index for duplicates / replicas / redundant machines.
So I think it's fine to be clever as long as it's manageable. The moment it's going to start getting out of hand you can switch to a more scalable approach.
I sent remote hands to pull a server for a customer that was done with their contract and another for failure not pay.
Got the wrong boxes, disconnected two customers, put the servers on the shelf and left for the weekend.
So I cut a ticket to the next remote hands guy and tell home to get the boxes back up and running and we'll deal with it Monday.
Cut another ticket to a third text Monday to pull the boxes. Yeah, you guessed it wrong boxes again. Same customers, what the fuck.
Have the boxes reracked and drive out there to do it myself. Count the servers, wrong label, do some digging around, 'OH'. Pull the right server. Loose two customers. Cut tickets for all racks to be relabeled starting from one.
People don't expect 0 index in the physical world. It's just too clever by half.
It's still likely bad. Your brain is simply not wired to zero index physical objects.
Building floors are more ambiguous - there can be basement, ie "negative" floors. So, floors in continental Europe are generally indexed 0-based (basements ..., -2, -1, ground floor = 0, upper floors 1, 2, ...). A German friend of mine caused some confusion when she checked into her student dorm at a US college, and having being told that her room was on the first floor, asked whether there was an elevator, as she had heavy suitcases.
US D F
3 2 2
2 1 1
__1__0__RdC
B1 -1 je ne sais pasAt some point we got tired of it and made a very firm "all services going forward must have normal, descriptive names" rule and ended up with such shocking names as "Metrics" and "Authentication".
Switching jobs to other startups, it seems like "cute" microservice names are going out of style. Thankfully.
One of the craziest "naming frenzy" though was revealed during the Enron scandal, where they had created countless shell companies to hide their crimes. They'd name the companies using names from the Star Wars universe: "Chewco investment" after Chewbacca, etc. Hundreds of them.