Schrödinger’s Cats

By Ryan Jones

Elevator Pitch

Not long ago, Pets vs Cattle served as a simple and powerful analogy. Pets are unique and irreplaceable. Cattle, in contrast, are abundant and cared for en masse. Let’s remember our pets, talk about our transition to cattle, and then discuss a new analogy for our future of containerizing everything.

Description

Schrödinger’s Cats

Not long ago, Pets vs Cattle was all the rage. The analogy was simple and powerful. Pets are unique, hand-fed and individually cared for. Cattle are abundant, replaceable and cared for en masse.

The analogy served as a quick way to convey the new server architectures pioneered by Google and proliferated by the cloud and container orchestrators alike.

In this talk, we’ll look at the roles of servers, load balancing, virtualization, the cloud, containers and container orchestration. Why did each come about? What problem did each solve? How did each transform how we build, deploy and interact with our software? Further, what impact did each have on security and observability?

We’ll look into the origins and meaning behind the analogy of Pets vs Cattle, and then ask ourselves: “Are we ready for a new analogy?”

In discussions with Albert Einstein in 1935, Erwin Schrödinger devised a thought experiment to illustrate what he saw as the problems of the Copenhagen interpretation of quantum mechanics.

A cat, a flask of poison, and a radioactive source are placed in a sealed box. Once radioactivity is detected, the flask is shattered, releasing the poison, which kills the cat.

Under Copenhagen interpretation, the cat, after some time, is simultaneously alive and dead.

Our services run inside containers, running on virtual machines behind load balancers, scaled up and hosted across clouds. With redundancy, fault-tolerance, auto-scaling and auto-recovery built in, might our services be simultaneously alive and dead - just like Schrödinger’s cat?

Notes

I’ve been developing Web sites and applications for ~25 years. I’ve first-hand witnessed the progression of an industry mentality from Pets to Cattle. And for the past 6 years, I’ve helped containerize hundreds of services, configured CI/CD pipelines, automated infrastructure, log collection, and monitoring & alerting.

In prior paradigms, we would perform health checks from external sources. With container orchestration, however, the health check is embedded. We no longer worry if a service has entered an unhealthy state. An unhealthy container will be destroyed and a new one created in its place.

We still supplement monitoring with external services - to monitor for HA and performance - but in reality, the underlying services, running inside of containers managed via orchestration and behind layers of abstraction, may be simultaneously alive and dead.

I’ve never spoken at an official conference before, only at our internal company conference: The Epsilon DevOps Summit. I am speaking again this year and giving this similar talk.