| Chef | Puppet | Ansible | SaltStack |
Architecture | Client/Server | Client/Server | Client/Server | Client/Server |
Ease of installation | Average | Average | Very easy | Average |
Language | Procedural: specifying how to perform a task. | Declarative: specifying only what to do. | Procedural: specifying how to perform a task. | Procedural: specifying how to perform a task. |
Scalability | Scalable | Scalable | Scalable | Scalable |
Management | Difficult because you have to learn Ruby DSL. | Difficult because you have to learn Puppet DSL. | Very easy | Very easy |
Interoperability | High | High | High | High |
Availability in the cloud | Amazon | Amazon/Azure | None | None |
Protocole of communicattion | Kife tool | SSL | SSH | SSH |
Environnement(s) | Ubuntu, Linux, Windows, Solaris …etc. | GNU/Linux, Mac OS X et Windows. | GNU/Linux, Mac OS X and Windows. | Linux, Unix and Windows. |
Strong points | -Integrates well with Git, which provides strong version control; -A large collection of recipes is available. | -Strong community support from Puppet Labs; -Well-developed reporting mechanism. | -There is no need to install the agent on systems that require configuration; -YAML is extremely easy to understand and learn. | 6Extremely easy to use once set up; -A good reporting mechanism that allows easy visualization of all operations. |
Weak points | -Considerable learning time is required if one is not comfortable with Ruby. | -For performing advanced tasks, a good knowledge of Ruby is required; -The main server does not have much control. | -Execution speed is often slower than other tools; -YAML is not as powerful as most other languages. | -The installation phase is a little more difficult; -A relatively new web interface that is much less developed than other tools. |