Pets vs Cattle seems much more clear, cattle is there to be culled, you feed it, look after it, but you don't get attached. If the herd has a week member you kill it.
I'd be a heartless farmer, but that analogy radically improved my infrastructure.
However, I feel like this article really glosses over the challenge of stateful workloads by simply handing over that responsibility to the cloud providers.
A lot of us have to run our own servers in our own datacenters for various reasons, so we have to solve that problem ourselves.
Luckily, the same principals apply for stateful workloads, it is just more challenging. You have to plan for instance failures while still preserving your data.
Even more luckily, the tools for this have gotten better and better. Various database controllers are getting much better at handling clustering and failover for you, so you can handle instances and nodes going down without losing data and without having to outsource the management to the cloud.
I remember when I had my first desktop PC at home (Windows 95) and it would need a fresh install of Windows every so often as things went off the rails.
Windows XP largely made that irrelevant, and Windows 7 made it almost completely irrelevant.
Ten years ago I think rule of thumb was uptime of not greater than 6 months. But for different reasons. (Windows Server...)
On Solaris, Linux, BSDs etc. it's only necessary for maintenance. Literally. I think my longest uptime production system was a sparc postgres system under sustained high load with uptime of around 6 years.
With cloud infra, people have forgotten just how stable the Unixken are.
But there is much out there that still run the exact same software that they wrote 20, 30 or even longer time ago. Personally, it's most noticable with musical instruments I use, where most of the synthesizers are still running the exact same software as they launched with, +- some recreational hacks sometimes.
Once you control both the hardware and software, things become a lot easier (yet not problem-free). I'm sure there is more stuff out there than synthesizers that is similar, from signage to 3D printing firmware. I still come across random (important) devices running Windows XP out there in the wild.
Is that software, or firmware though?
Manage these things and any stateful distributed service can run easily in Kubernetes.
When I update the Kubernetes or Talos version new nodes will be created, and after the existing pods are rescheduled on new nodes the old nodes are deleted.
Works pretty well.
Basic premise is to encode, be it lifecycle rules or a cron, behavior such that instances are cycled after at most 7 days, but there should always be an instance cycling (with some cool down period of course).
It has never not improved overall system stability and in a few cases even decreased costs significantly.