The History of CFEngine

CFEngine's history 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, Bugess wrote the first version of CFEngine (the configuration engine) which was published as an internal report and presented at the CERN computing conference. It was able to hide platform differences using a domain-specific language that gained significant attention from a wider community.

A year later, Burgess finished his post-doc but decided to stay in Oslo and took at job lecturing at the University College of Oslo. 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 the core of CFEngine's reliability to this day.

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/LISA08 conference. It laid out a manifesto for creating self-healing systems, reiterated a few years later by at IBM in their form of Autonomic Computing. This started a research effort at Oslo University College and led to a major re-write, CFEngine 2, which added features for machine learning, anomaly detection and secure communications.

CFEngine 2 has grew incrementally ever since, learning from the research done at Oslo University College as well as from user experiences originating all over the world.

CFEngine is open source software -- licensed under the GPL -- but unlike some projects, it was driven by innovation and research, rather than by popular ideas.  Burgess' attention to quality and a belief in strong principles for reliability and security has been at the heart of CFEngine's popularity.  Named the world's first Professor in the field of Network and System Administration, Burgess still checks contributions to the code and discards changes that do not conform to core principles of safety, security and reliability.

In 2003, it was time to take stock. There was no existing complete model that could adequately explain how CFEngine worked, except for a handful of papers about CFEngine's maintenance model. Mark began developing what would become Promise Theory as a way to rewrite CFEngine once again, making it both simpler and more powerful at the same time.

In 2008, after more than five years of research, CFEngine 3 made its debut.  The most significant re-write of the program to date, CFEngine 3 integrates with knowledge management and discovery mechanisms, opening configuration management to truly large-scale enterprise infrastructure automation.

That year, Mark Burgess also founded CFEngine AS, an Oslo-based software and services company that could support the growing commercial interest in CFEngine from leading technology, financial, and government customers.

In 2011, the Company completed a ‘Series A’ investment round, led by Ferd Capital of Norway.  It also opened a new U.S. headquarters in Palo Alto, California, and released a major new version of its Nova commercial subscription offering.