Puppet performance compared to CFEngine

cfenginepuppet

I'm trying to decide between using Puppet or CFEngine for my configuration management system.
Performance is going to be a key factor, and research on the internet suggests CFEngine uses less memory and CPU cycles compared to puppet. However, puppet seems easier to use.

I need to manage several web servers, as well as handheld tablets and machines that will only connect to some central control servers periodically. All are Linux machines.

Would I be able to use either Puppet or CFEngine for this? And if so, does Puppet still make poor use of resources?

Also part of the reason I'd like to use Puppet is because it seems simpler, but a lot of the articles I've found refer to CFEngine 2 – is CFEngine 3 easier to configure?

Best Answer

You can use both tools for your use case. I don't know how powerful are your handhelds tablets, but you might be interested to know that:

  • CFEngine agent uses about 15 MB of RAM (never seen it going over 30 MB on any of my servers) (and it's been reported working on a Nokia N900 phone)
  • Puppet needs the Ruby stack to work, and according to documentation, Puppet will eat at least 80 MB of RAM

CFEngine 3 syntax is easier than CFEngine 2's. I wouldn't compare to use Puppet because I'm not a Ruby fan, so I would be biased :)