CFEngine to the masses

With the aim of suggesting a way to bring CFEngine to the wider audience it deserves, I am launching a project called Dumbed-down CFEngine (or DDCFE for short, or DDC for shorter). It is a raw draft specification of a simple configuration management language, to be compiled into native CFEngine policies. There is no software yet, rather: it’s a call for action to build one because, to be honest, I have neither the resources nor the qualifications to build it all alone in a reasonable amount of time.

CFEngine is probably the most powerful configuration management system on the market. Its rock-solid theoretical foundations provide coherence and predictability; its source code can be compiled on any C99 platform, making it faster and more portable than its interpreted competitors; the language is powerful and allows for rather low-level operations.

However, as it often happens: with power comes complexity. Such complexity makes CFEngine harder to tackle than its competitors, and such remains despite an excellent book, a comprehensive documentation set, and a helpful and passionate community. What makes tools like Puppet and Chef more popular than CFEngine is mainly their language.

CFEngine AS (the company behind CFEngine) is trying to bridge the gap with the CFEngine Design Center and the sketches in it. Sketches in CFEngine are like installable libraries, where one fills in a set of parameters, and gets a ready to use policy tailored for his/her environment.

Sketches are a very good and useful tool indeed. However, there’s still an audience for which CFEngine is not the right tool, and it’s unfortunately a broad one. It’s the audience of those System Administrators and DevOps that value agility in the first place; they despise the complexity of CFEngine’s language and theory, as well as they despise the simplicity of Design Center’s black boxes. They want tools they can “program” by themselves and can be learned quickly; they can’t program sketches, because to do that they should know the language. And they don’t want to, because it takes too long to learn it.

DDC aims to equip them with such a simple language, a level of abstraction that will allow them to use all the power that one can leverage out CFEngine’s by stripping down the complexities.

Want to {help|discuss}?

Super! Use comments on the DDC website, or participate to the discussion in the help-cfengine group/mailing list, or contact me directly via email (brontolinux, you know where to place the “@”, don’t you?) or twitter. Depending on the traction DDC gets, we can open a project on github and take it from there. Shouldn’t it get enough traction… well, I’ll close the website and I’ll be content to have tried 😉


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.