Pets, Cattle, Insects – The Next Step in Technology History
Over the past five years, the “Pets vs. Cattle” analogy has been very popular and instructive. It’s helped people think differently about their infrastructures, and how they design, deploy, and manage their infrastructures and applications. It’s helped people think about creating systems that are far more tolerant of failure, and expose areas of their systems that are bottlenecks to upgrade or maintenance.
In simple terms, “Pets” are systems that cannot be replaced without significant cost. “Pets” are usually quite expensive to keep and will be kept until they die a natural death – and the end is when they get most expensive. The vet bills really add up at the end of a pet’s life. Same with systems that are treated like pets. If they’re critical to the business, they will be very expensive to replace.
“Cattle” on the other hand, are said to be raised to die. Their lifetimes are well prescribed, and they have a specific task to accomplish. Afterwards, they are sent to market and sold for parts. If something should go wrong with that cattle, the cost is absorbed pretty easily, and it’s sent early to market to be sold off for parts. What’s made this possible?
Pets: Bare metal monolithic and shell scripting
Cattle: Virtualization and config management/orchestration
Pets and Cattle are all about cost and replacement. “Pets” are high cost and low capacity for replacement. “Cattle” have a lower cost and capacity for replacement. Virtualization and the new generations of configuration management and orchestration have made that possible. But what’s the next step?
Containers use most of the O/S’s resources, like SSH, file access, etc. It has so little of what it needs to survive on its own. But those services are abstracted out by managing the container format – Docker is defacto.
Bacteria might be a better analogy because nobody would see a bacteria living very long on their own. They are always seen in the context of a host.
Enabling tech from Cattle to Insect the containerization, containerization, and image shrinkage, unikernal tech like Docker Containers on CoreOS.
hypervisor into the firmware and microprocessor for app startup latency
Insect class is dependent on Unikernel code can run anywhere, but always have a central service element.
Ultra-short execution cycles in the insect class.
Eliminate service persistency
Pets had a 50 year life cycle,
Cattle have a 5 year life cycle,
Insect class – seamless autoremediative orchestration and automation
Chargify and NetFlix
Orchestration with resilient autoremedation