Fabric vs Shipit: What are the differences?
Fabric and Shipit can be categorized as "Server Configuration and Automation" tools.
Fabric and Shipit are both open source tools. Fabric with 11.4K GitHub stars and 1.73K forks on GitHub appears to be more popular than Shipit with 4.71K GitHub stars and 199 GitHub forks.
What is Fabric?
What is Shipit?
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 Fabric?
What are the cons of using Shipit?
Sign up to get full access to all the companiesMake informed product decisions
What tools integrate with Shipit?
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.