Chef vs Fabric: What are the differences?
Chef: Build, destroy and rebuild servers on any public or private cloud. Chef enables you to manage and scale cloud infrastructure with no downtime or interruptions. Freely move applications and configurations from one cloud to another. Chef is integrated with all major cloud providers including Amazon EC2, VMWare, IBM Smartcloud, Rackspace, OpenStack, Windows Azure, HP Cloud, Google Compute Engine, Joyent Cloud and others; Fabric: Simple, Pythonic remote execution and deployment. Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution..
Chef and Fabric can be primarily classified as "Server Configuration and Automation" tools.
"Dynamic and idempotent server configuration" is the top reason why over 104 developers like Chef, while over 19 developers mention "Python" as the leading cause for choosing Fabric.
Chef and Fabric are both open source tools. It seems that Fabric with 11.4K GitHub stars and 1.73K forks on GitHub has more adoption than Chef with 5.85K GitHub stars and 2.36K GitHub forks.
According to the StackShare community, Chef has a broader approval, being mentioned in 360 company stacks & 80 developers stacks; compared to Fabric, which is listed in 147 company stacks and 38 developer stacks.
What is Chef?
What is Fabric?
Want advice about which of these to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Chef?
What are the cons of using Fabric?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
We use Fabric for automating deployment and maintenance tasks: bootstrapping and updating application servers (using the "rolling update" pattern), pulling logs from the servers, running manage.py maintenance commands.
Out custom recipes makes it simple for developers bootstrap process (using vagrant) and that same recipe is also the one that is used to prep instances
Automate everything! I have fabfiles for testing, bootstrapping, deployment, and building. Easy to customize and its pure python.