3 ms·
I first heard of Puppet first and so I'm assuming it was first on scene? CFEngine was first, it's based on a kind of maths called "promise theory" and it solve
by gaius 8y ago
I first heard of Puppet first and so I'm assuming it was first on scene?
CFEngine was first, it's based on a kind of maths called "promise theory" and it solved the problem of you had many different kinds of Unix owned by many different groups and had to have a consistent way of saying "all machines belonging to group X need to have user Y and package Z" and it would abstract away the slightly differing syntax between Solaris, SunOS, IRIX, OSF/1, Ultrix, yadda yadda. This is a problem that doesn't really exist anymore.
Chef I think came next, it was written by people who knew Ruby but didn't know maths so they used CFEngine terminology like "converging" but Chef doesn't really do that, it just runs Ruby scripts. If CFEngine was a scalpel, Chef is a mallet. Chef and Puppet are related somehow, same group of devs had a falling out and went their own ways, something like that. They are much of a muchness.
Ansible is cool because it recognises the reality of why CFEngine isn't relevant nowadays: most organisations are running just one particular Linux distro so you can do away with the abstraction and get all the benefits without the complexity.
- dozzie 8y ago> it's based on a kind of maths called "promise theory" Promise theory is not math, despite its name. It doesn't predict anything, it doesn't explain any phenomena. It's an architectural approach. Brilliant, led to a really great software (CFEngine), but it's not "maths".
- atsaloli 8y agoBasic concepts of promise theory (10 minute video by Mark Burgess who came up with it): https://www.youtube.com/watch?v=2TPsB5WuZgk https://www.youtube.com/watch?v=2TPsB5WuZgk 2014 introductory article: https://www.linuxjournal.com/content/promise-theory—what-it https://www.linuxjournal.com/content/promise-theory—what-it Basic book on the subject: https://www.amazon.com/Thinking-Promises-Designing-Systems-Cooperation/dp/1491917873 https://www.amazon.com/Thinking-Promises-Designing-Systems-C... It's not "maths" like arithmentic but it's "maths" like graph theory: Promise Theory, in the context of information science, is a model of voluntary cooperation between individual, autonomous actors or agents who publish their intentions to one another in the form of promises. It is a form of labelled graph theory, describing discrete networks of agents joined by the unilateral promises they make. https://en.wikipedia.org/wiki/Promise_theory https://en.wikipedia.org/wiki/Promise_theory
- dozzie 8y ago> It's not "maths" like arithmentic but it's "maths" like graph theory It's less like graph theory and more like inversion of control: an architecture, not a set of theorems and their proofs. Even Burgess' own book you mentioned is nothing like a mathematical handbook. I'm a great fan of Mark Burgess and his promise theory, but calling it a mathematical theory or a mathematical domain is simply incorrect.
- atsaloli 8y agoI hear you. The book I mentioned (Thinking in Promises) is the introductory-level public book. https://www.amazon.com/Promise-Theory-Principles-Applications-1/dp/1495437779/ https://www.amazon.com/Promise-Theory-Principles-Application... is the heavy-duty scientific stuff. "In Search of Certainty" (https://www.amazon.com/Search-Certainty-Science-Information-Infrastructure https://www.amazon.com/Search-Certainty-Science-Information-...) is somewhere in-between. I would say promise theory is its own kind of logic and notation. Thanks for the correction @dozzie.
- atsaloli 8y agoActually the sequence was CFEngine, Puppet, Chef. See http://verticalsysadmin.com/blog/relative-origins-of-cfengine-chef-and-puppet/ http://verticalsysadmin.com/blog/relative-origins-of-cfengin...