Hacker News new | past | comments | ask | show | jobs | submit login
Pets vs. Cattle (engineyard.com)
74 points by nslater on Feb 27, 2014 | hide | past | favorite | 31 comments

edit: apparently it's Bill Baker of Microsoft who originated it: https://www.pistoncloud.com/2013/04/announcing-enterprise-op...

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."'[1]

[1] https://www.networkworld.com/news/2013/041113-servers-cows-p...

Unlike the iPad, the iPhone, Dropbox, and "The Web," credit for this metaphor may fairly be given to David Gelertner. Although he applied it to naming files rather than servers.

From http://www.edge.org/conversation/the-second-coming-a-manifes... (1999)

> 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.

Haha, wow. Thanks for digging that up!

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.

Ooh. That's a great anecdote. Thanks for sharing!

Another term for this is "snowflake server"––every one's a little bit different. Good for skiing, bad for a data center. http://martinfowler.com/bliki/SnowflakeServer.html

An extension of this is The Noflake Manifesto http://noflake.org/

This is fantastic. Thanks. I will integrate this into my next post.

Oh, that's a great term. Think I've seen it a few places. Thanks for the reminder!

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.


Hah! That's cool. Thanks!

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.

>Cows are pretty stupid

True, but they do make other cow friends and have social lives [1]. Now sheep.. they are stupid. And chickens, don't get me started.

[1] http://threegablesfarm.com/2013/02/natural-cattle-behaviour/

I've been vegetarian for over 20 years because of industrialization, but I have absolutely zero issues with small farm killing or hunting.

Waiting patiently for the person who loved his chickens to come in and mention how they each have a different personality.

Meanwhile, I'd wager that at least one person reading this thread has casually eaten a dog.

I lost so many "good computers" that all I have now are pet hard drivers. Yet, I pet those.

What's the name of a server that you are completely prepared to replace in 30 minutes notice (they are for personal use, some downtime is acceptable), but pet anyway?

Your computer reminds me of George Washington's Axe.

Well, given 20,0000[1] head of cattle died[2] 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

2) cattle hadn't grown winter coats, rain, 70mph wind, snow = frozen cattle http://news.nationalgeographic.com/news/2013/10/131022-cattl...

[edit: these were in the summer pastures still and I doubt they'd be defined as factory farmed cattle]

It's mostly the rain that got to them. Cattle have been genetically engineered, I mean bred, for cold tolerance. They can't handle moisture combined with the cold.

They didn't have their winter coats and it was early enough that they were still in the summer pastures, so later in the year, even with the rain, they would have been fine.

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.

Indeed. 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 liked this analogy, and found it informative.*

*Not a farmer, not a vegetarian, just a programmer.

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 hope to cover this in my subsequent posts. Stay tuned!


this was on the front page for a brief moment, but apparently engine yard's attitude that servers are cattle had fairly disastrous consequences for Groove.

We named our (soon to be announced) start-up after this principle. The company is called "Netkine", as in a kine of cattle on the net.

That, and we thought it sounded kind of cool.

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