About me - Operations Staff Engineer @ - @lusis on twitter, github and other stuff - (retired) DevOpsDays core organizer - He/Him/His - Father/Husband - All around opinionated bastard
What I meant to say was... - The tools do what they were designed to do - Not everything is CM shaped - “Past performance is no guarantee of future results”
Current Behaviour - CM is running - This file doesn’t look like it’s supposed to - CM changes file - CM isn’t running What happens in the 5/10/30/60 minutes/hours/days in between?
“Binary CM” - Upload source to “server” component - “Server” compiles binary for all hosts it knows about where the code would apply (i.e. role::webserver) - Optionally for unknown clients, the binary is on-the-fly compiled when the host “checks in” (e.g. golang cross-compile) - Entire CM run is contained in single binary artifact. Use rsync or more efficient p2p mechanism for transferring
What if…. Nodes could pull state in peer ring instead of a central server? Habitat’s supervisor is sort of like this. If we can do that, do we need a central authority?