Developer(s) | Mark Burgess, CFEngine AS |
---|---|
Stable release |
3.10.0 / December 27, 2016
|
Repository | github |
Operating system | Cross-platform |
Platform | Unix-like, Windows |
Type | Configuration management System administration Network management |
License | GNU General Public License version 3 |
Website | www |
CFEngine is an open source configuration management system, written by Mark Burgess. Its primary function is to provide automated configuration and maintenance of large-scale computer systems, including the unified management of servers, desktops, consumer and industrial devices, embedded networked devices, mobile smartphones, and tablet computers.
The CFEngine project began in 1993 as a way for author Mark Burgess (then a post-doctoral fellow of the Royal Society at Oslo University, Norway) to get his work done by automating the management of a small group of workstations in the Department of Theoretical Physics. Like many post-docs and PhD students, Burgess ended up with the task of managing Unix workstations, scripting and fixing problems for users manually. Scripting took too much time, the flavours of Unix were significantly different, and scripts had to be maintained for multiple platforms, drowning in exception logic.
After discussing the problems with a colleague, Burgess wrote the first version of CFEngine (the configuration engine) which was published as an internal report and presented at the CERN computing conference. It gained significant attention from a wider community because it was able to hide platform differences using a domain-specific language.
A year later, Burgess finished his post-doc but decided to stay in Oslo and took a job lecturing at Oslo University College. Here he realized that there was little or no research being done into configuration management, and he set about applying the principles of scientific modelling to understanding computer systems. In a short space of time, he developed the notion of convergent operators, which remains a core of CFEngine.
In 1998, dissatisfied with the level of understanding in the area and the ad hoc discussions of computer security at the time, Burgess wrote "Computer Immunology", a paper at the USENIX/LISA98 conference. It laid out a manifesto for creating self-healing systems, reiterated a few years later by IBM in their form of Autonomic Computing. This started a research effort which led to a major re-write, CFEngine 2, which added features for machine learning, anomaly detection and secure communications.