Earlier quoted context omitted.
If your problem is needing to synchronize a complex mesh of services when you upgrade stuff, the solution is to not have a complex mesh of services that needs managing. I have a dist-directory, in it is a directory for with each release version, and a symlink current pointing to the current release. To deploy a new version, I create a new directory, unpack each service, and then redirect the symlink ... then "systemc…
Just read your article: https://www.marginalia.nu/log/09-system-upgrade/ You got rid of a lot but where did the functionality for those tools go? I understand wanting to get rid of containers & Kubernetes, but did you rewrite/bake the functionality in to your app? or maybe not care about monitoring and logs temporarily for now?
Kubernetes and the surrounding ecosystem can create many of the problems they set out to solve.