When comparing Chef vs SaltStack, the Slant community recommends SaltStack for most people. In the question“What are the best configuration management tools?” SaltStack is ranked 3rd while Chef is ranked 5th. The most important reason people chose SaltStack is:
Salt has an impressive welcoming and active community of users. There are user groups all over the world (Stockhom, Silicon Valley, Paris, and lots more), and an active [live chat.](http://saltstack.com/community/)
Ranked in these QuestionsQuestion Ranking
Pro Popular choice among large companies
Chef has an impressive list of companies using it's automation service. Among them is Facebook, Etsy, Ancestry.com, PharmMD and Yahoo.
Pro Large community
Chef has a relatively large community. One of the reasons for it is the fact that it's a pretty old and mature tool. Chef, originally released in 2009, is a more mature product. Being popular and with a large and dedicated community means that Chef has lots and lots of resources and guides from third party sources out there for beginners to pick up. Not only that, there are also many plugins and configuration recipes made by the community.
Pro Strong version control capabilities
Chef is centered around Git for it's configuration and deployments. Because of this, Chef also has great version control capabilities through Git.
Chef is cross-platform. Offering support for the biggest platforms out there: Linux, Windows and *nix.
Chef was released in 2009, which is relatively a long time ago for software. Since then it has been through several versions and many bug fixes and tests. All of this can make Chef more appealing to teams who are looking for stability and maturity, which are things that Chef brings on the table.
Pro Friendly and open community
Salt has an impressive welcoming and active community of users. There are user groups all over the world (Stockhom, Silicon Valley, Paris, and lots more), and an active live chat.
Pro Easy to read output
Salt's configuration files and setups are organized into YAML files. This makes them very easy to read and understand since YAML is considered very readable.
Pro Agentless via SSH is an option
Salt can run agentless just like ansible, allowing it to manage devices that you can't run an agent on (routers/switches, etc).
Pro Communicates through SSH or agents
Salt can communicate with clients through agents called minions, or through SSH.
With Salt you can have multiple layers of masters which result in an arrangement which distributes load and increases redundancy. Upstream masters can then control downstream masters and their minions.
Salt has support for Windows, Linux and Unix. Though it's fair to say that it's easier to use and it's more useful in Unix and Linux systems.
Pro Fast execution of commands
Salt works around a Salt master which has multiple agents (Salt minions) that have a persistent connection to the master. Because of this persistent connection, commands to the master are fast to reach the minions. Furthermore, the minions also save various data to the cache in order to make execution faster.
When compared against other tools to run the same actions, Salt almost always completes the actions in significantly less time.
Con Ties you to Ruby
Chef is written in Ruby and its CLI uses a Ruby-based DSL. In order to fully use and customize it you need to use Ruby as Chef does not give users any other choice when it comes to languages to use to configure it.
Con Steep learning curve
Chef has a steeper learning curve than many of its competitors, making it a more difficult tool for the non-devs of a team (such as sysadmins) to work with. For some teams, the added cost of teaching Chef to the team may outweigh the benefits.