Afaik the analogy was first used by Joshua McKenty of Piston Cloud
'"The servers in today's data center are like puppies -- they've got names and when they get sick, everything grinds to a halt while you nurse them back to health," Joshua McKenty, co-founder of Piston Cloud, is quoted as saying in a recent company press release. "Piston Enterprise OpenStack is a system for managing your servers like cattle -- you number them, and when they get sick and you have to shoot them in the head, the herd can keep moving. It takes a family of three to care for a single puppy, but a few cowboys can drive tens of thousands of cows over great distances, all while drinking whiskey."'
> If you have three pet dogs, give them names. If you have 10,000 head of cattle, don't bother. Nowadays the idea of giving a name to every file on your computer is ridiculous.
For what it's worth he was also the first to use the metaphor of a cloud, although in his sense the cloud represented your personal data and it drifted to follow you, casting a shadow over pavestones representing computers, as opposed to the usual sense of the cloud being an amorphous body of computers.
That's not really the same metaphor. The naming is almost incidental, it's the individual effort going into each item that matters. Most of my 'pet' files are nameless, but they are individually pampered and treated and difficult to recreate.
This reminds me of the "10th floor test" in Bootstrapping an infrastructure, a Lisa'98 paper which was pretty influential for me and a whole wave of sysadmins getting excited about this transition from individual machines to shapeless "infrastructure" where the individual machines mattered less.
It doesn't mention pets or cattle, but makes a similar point:
The test we used when designing infrastructures was "Can I grab a random machine and throw it out the tenth-floor window without adversely impacting users for more than 10 minutes?" If the answer to this was "yes", then we knew we were doing things right.
The disposable nature of factory farmed cattles is so common and accepted knowledge, that it's ok to make crappy analogies out of it.
That's particularly sad because it's the idea of an extremely smart mind.
It's not just on "factory farms" where animals raised for meat are considered temporary. If you are going to slaughter a pig in 18 months, you probably are going to be disinclined to form emotional bonds to it.
I named my farm pigs, and still knew that they were food.
Now later in life I have more qualms about eating pork. Pigs are smarter than dogs, and every bit as affectionate. Cows are pretty stupid. These days I feel like killing an animal over a certain intelligence is bad.
Computers... I have a computer that is my Home Theater PC that has only ever been upgraded. I don't think there is a part from the original AMD K5 90 in 1997 that I ran, but probably a few screws. I would upgrade a mother board and keep the vid card and hard disks. Or swap a Network card. Keep the hard drives, or a Raid controller. It would have likely been cheaper to start over a few of the time, but there is a sentimental attachment to the machine you took in to battle in Quake, raced in NFS, quested through WoW with, and had "Hot Coffee" with in GTA. That stayed up with you when you were building software, or helped with your taxes.
Well, given 20,0000 head of cattle died in a early blizzard (October 4, 2013) in South Dakota and it wasn't the number one story on any national news site pretty much tells you where cattle rate.
1) estimates go from 10,000 to 100,000 depending on source - it seems like 20,000 was the conservative estimate by veterinarians
I'm not sure how the analogy relies on awareness of factory farming, it seems to mostly rely on awareness of cattle. It would work just as well in the context of some idealized rancher raising cattle hundreds of years ago.
I agree that industrialised farming is very upsetting. (I am a life-long vegetarian, by the way!) Have you watched the film Samsara? To quote Jason Kottke, some of the scenes give a "full visual meaning to the mass production of food."
But the analogy holds. On any sort of farm (even a vegetable farm) units of production are fungible commodities. And it turns out that this notion of fungibility is very important in post-virtualisation architectures.
Although, I really expect such a high mind to come out with a much better metaphor of fungibilty (which shouldn't be so hard a concept for sys admins and the like).
Other examples: paper napkins vs silk napkins; Stylographic pen vs bic pens. And so on.
I haven't seen Samsara, but I've taken a note. Vegetarian here, too. I just read "Eating animals" (by JS Foer). That's a very good read, but as an European I must say it feels like it's written from a pretty U.S.-centric standpoint.
I like this analogy... puts words around a concern of mine. I'm building a startup around dealing with server configuration problems, but the problems tend to be more "pet" problems than "cattle" problems. In fact, my primary competition is switching from pets to cattle.
So I'm thinking hard about how to best apply my idea to cattle as well as pets, to reach a larger market and take advantage of industry trends.
Anyone have any tips on how to make the transition from pets to cattle? I ask because we are a cloud deployed company (EC2) still largely doing things in an old-school "pets" based approach. I'm fully onboard for why the cattle approach is better. Getting there, on the other hand, is non-trivial.
I don't have a citation, but I used this analogy in 1999 for terminal server as a replacement for desktops.
Y2K was pushing people to dump whole networks. Rather than upgrade people were just buying all new, but losing data on the machines was a huge scary thing. And migration tools sucked at the time.
http://www.cdstoledo.com/ where I was working at the time, under my direction started to role out commodity computers. Computers that used Hardware Compatibility list components, and were supplemented with Terminal services to allow important data to always be backed up "in the cloud".
When a computer "died" or had an issue, we could just swap the hardware. No local files were needed as everything was on the server as either part of the Terminal Services, or a Roaming Profile. We could then fix the computer at the shop quickly.
It had highs and lows. At the time it meant better service at a lower price. But that meant less money for the company. We could offset this to some degree, but the reliability was so high that in many cases we ended up with support contracts that wouldn't get renewed because the hardware never needed support.
I can't claim that I invented the analogy. I think someone at Microsoft told it to me when they pitched terminal services to me. Or maybe I pitched it to them, being a farm boy as I was.
In any event it is an analogy that is 15 years old at minimum.