How CFEngine stays ahead of the pack
cfengine.com
cfengine.com
CFEngine isn't in a strong position, it has been completely replaced by Chef/Ansible everywhere. It's barely used with some legacy systems.
Edit: seeing that this post has gotten multiple upvotes but at the same time two others have posted almost the same as me simultaneously I guess that means a lot of people here are interested in cfengine, but this article is more likely to turn people away.
Also, the username who posted it seems similar to the author of the post (nothing wrong with that) so if you are the same person: would you mind posting a more technical resource? I'm actually interested.
CFEngine being based on Promise Theory is circular, since Promise Theory means whatever it's convenient to mean, or possibly maybe "whatever CFEngine does"
To me, CFEngine has been behind the pack for a long time. I use Nix now, and right now in order to be ahead of the pack, a configuration manager needs not just declarative configuration, but atomic upgrades and rollbacks, dry-run builds and upgrades, service isolation, and service discovery or meshing.
My implication that cfengine is a bad tool was not directed at him. So I was surprised to see a person like him (a CEO, with PHD) respond this way.
So, as far as I can tell, in both cases you describe the desired target state of the box, and the tool examines the current state and migrates towards the target state.
I always assumed that Chef and Puppet were similar.
Am I overlooking something?
Chef/Puppet/Ansible are all enforcing a state which is usually defined by a package being installed, a file present, a service/process running.
Nothing groundbreaking.