edit: apparently it's Bill Baker of Microsoft who originated it: <a href="https://www.pistoncloud.com/2013/04/announcing-enterprise-openstack-version-2/" rel="nofollow">https://www.pistoncloud.com/2013/04/announcing-enterprise-op...</a><p>Afaik the analogy was first used by Joshua McKenty of Piston Cloud<p>'"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]<p>[1] <a href="https://www.networkworld.com/news/2013/041113-servers-cows-puppies-268650.html" rel="nofollow">https://www.networkworld.com/news/2013/041113-servers-cows-p...</a>
I don't have a citation, but I used this analogy in 1999 for terminal server as a replacement for desktops.<p>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.<p><a href="http://www.cdstoledo.com/" rel="nofollow">http://www.cdstoledo.com/</a> 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".<p>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.<p>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.<p>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.<p>In any event it is an analogy that is 15 years old at minimum.
Another term for this is "snowflake server"––every one's a little bit different. Good for skiing, bad for a data center. <a href="http://martinfowler.com/bliki/SnowflakeServer.html" rel="nofollow">http://martinfowler.com/bliki/SnowflakeServer.html</a>
This reminds me of the "10th floor test" in <i>Bootstrapping an infrastructure</i>, 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.<p>It doesn't mention pets or cattle, but makes a similar point:<p><i>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.</i><p><a href="http://www.infrastructures.org/papers/bootstrap/bootstrap.html" rel="nofollow">http://www.infrastructures.org/papers/bootstrap/bootstrap.ht...</a>
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.
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.<p>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.
<a href="https://news.ycombinator.com/item?id=7313882" rel="nofollow">https://news.ycombinator.com/item?id=7313882</a><p>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.<p>That, and we thought it sounded kind of cool.