CFEngine - The Third Wave of Configuration Management

Posted by Mark Burgess
November 1, 2011

If you have been anywhere near a Unix system in the past ten years, you will almost certainly have heard of CFEngine and its ‘revolutionary, self-healing approach’ to datacentre automation. However, what you might not know is that its current third incarnation CFEngine 3 is both younger and more advanced than most of its imitators, harnessing the very latest ideas about system management – and the difference is all about knowledge.

In 2008, after five years of detailed study with existing users, I decided that a major change was needed in the industry, and formed the CFEngine company to set the standard for a Third Wave of Configuration Management technology. It was time to push the industry in the direction of knowledge-based IT management

From the inception, CFEngine’s innovations were about increasing certainty and predictability in systems – and that is the start of actual knowledge. But even after two generations of configuration management tools, system administration still needs to make a change – and in more than just the scale and speed of its operations[1].

And in case you are wondering, yes, this all harks of Alvin Toffler’s three waves of human society:

  • The first wave: Agriculture, tending the land.
  • The second wave: Industrialization, automating production.
  • The third wave: Information Society, man and machine dividing labour optimally.

I’ve been arguing for some time now that this evolutionary sequence is in fact happening in IT management also[2,3]. The first wave was the introduction of system administrators, tending to fixes to the system with bare hands. This only scales to a few machines. The second wave involved scripting automation to mass produce simple replicas in a few sorts. The third wave is all about knowledge or intention-driven precision automation, delivering self-healing, surgical accuracy to system configuration. In the third wave, users have true desired-state management at low cost, allowing them to handle as much complexity as they need. In the third wave, humans do the thinking and make the decisions, and automation provides consistent, large-scale implementation.

What can CFEngine users expect in the future? IT management still has a long way to go to ascend to the next level[4] – it’s more than mere automation of Web servers, or “DevOps” where the industry catches up on methods of inclusive autonomy. As IT grows in scale and complexity, the world is going to need agile methods that will work from the largest to the smallest devices, while keeping track of ever speedier business changes. That requires us to go beyond mere information, adding context and experience to bring about Knowledge.

CFEngine 3’s approach has been to build a model of knowledge, designed especially for system configuration, from the bottom up. This model, based on Promise Theory, provides a lingua franca (a set of policy `assembly codons’ for system change) that allows users to express desired state in a maintainable way – not merely for one-off deployment. It is more like a genetic code that can be self-healing. Using this model, CFEngine can track knowledge about the system in a very pervasive way. All of that information is then assembled and indexed by intelligent algorithms and made available to system administrators so that they can make the best use of their skills, backed up by powerful automation. It’s not a CMDB, but something more sophisticated and lighter-weight. We can call it the CFDB.

Today, we are already far ahead of other products in the knowledge-based approach to desired-state. Our new Nova offering brings users closer to the documentation of their system and the software, and connects examples of policy, by cross-referencing information with a knowledge map. In addition it measures business value and connects the dots between management goals and technical operations – giving system administrators the bridge they’ve needed all along to acquire a higher status within an organization. The CFDB semantic index offers insight into issues that are too complex to visualize without machine assistance.

Because every computer can be introspective about its state, it can learn and make use of patterns of behaviour in itself and other machines – allowing adaptive orchestration, so important for rapidly changine environments like the Cloud or mobile systems. CFEngine’s machine learning capabilities have a long way to go before we can say they have exhausted the possibilities for exploiting assisted knowledge. The goal for now is to raise system administrators up to the next level by using their expertise, instead of burning through their time.

What’s on the horizon? Well, there’s also the potential to harness human intelligence by using social networking concepts to make a kind of `Facebook for the machines’. Anthropology suggests that our intelligence arose from social interaction. As a first step, Nova already incorporates some simple relational analysis, and provides users with collaboration tools so that multiple system administrators needn’t tread on eath others’ toes when working on policy changes.

So today, we greet the new star of the third wave: CFEngine 3 Nova – coming soon to a datacentre near you! And we promise even more surprises just around the corner, so be sure to keep your telescope trained on the launchpad of CFEngine’s propulsion laboratory.

  1. http://www.usenix.org/publications/library/proceedings/lisa98/full_papers/burgess/burgess.pdf
  2. http://research.iu.hio.no/needles.php
  3. http://research.iu.hio.no/configmgt.php
  4. https://cfengine.com/markburgess/blog.html