Capistrano vs Fabric: What are the differences?
Capistrano: A remote server automation and deployment tool written in Ruby. Capistrano is a remote server automation tool. It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows; 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..
Capistrano and Fabric can be categorized as "Server Configuration and Automation" tools.
"Automated deployment with several custom recipes" is the primary reason why developers consider Capistrano over the competitors, whereas "Python" was stated as the key factor in picking Fabric.
Capistrano and Fabric are both open source tools. Fabric with 11.4K GitHub stars and 1.72K forks on GitHub appears to be more popular than Capistrano with 11.1K GitHub stars and 1.72K GitHub forks.
According to the StackShare community, Capistrano has a broader approval, being mentioned in 295 company stacks & 81 developers stacks; compared to Fabric, which is listed in 147 company stacks and 38 developer stacks.
What is Capistrano?
What is Fabric?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Capistrano?
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
Shipit, our deployment tool, is at the heart of Continuous Delivery at Shopify. Shipit is an orchestrator that runs and tracks progress of any deploy script that you provide for a project. It supports deploying to Rubygems, Pip, Heroku and Capistrano out of the box. For us, it's mostly kubernetes-deploy or Capistrano for legacy projects.
We use a slightly tweaked GitHub flow, with feature development going in branches and the master branch being the source of truth for the state of things in production. When your PR is ready, you add it to the Merge Queue in ShipIt. The idea behind the Merge Queue is to control the rate of code that is being merged to master branch. In the busy hours, we have many developers who want to merge the PRs, but at the same time we don't want to introduce too many changes to the system at the same time. Merge Queue limits deploys to 5-10 commits at a time, which makes it easier to identify issues and roll back in case we notice any unexpected behaviour after the deploy.
We use a browser extension to make Merge Queue play nicely with the Merge button on GitHub:
Both Shipit and kubernetes-deploy are open source, and we've heard quite a few success stories from companies who have adopted our flow.
#BuildTestDeploy #ContainerTools #ApplicationHosting #PlatformAsAService
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.
Automate everything! I have fabfiles for testing, bootstrapping, deployment, and building. Easy to customize and its pure python.
For deploying to a VPS like DigitalOcean. This pairs nicely with https://github.com/cyrusstoller/gardenbed.
Deployment automation all of the websites and apps are deployed to linux via capistrano.