Capistrano vs Mina: What are the differences?
What is 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.
What is Mina? Really fast deployer and server automation tool. Mina works really fast because it's a deploy Bash script generator. It generates an entire procedure as a Bash script and runs it remotely in the server. Compare this to the likes of Vlad or Capistrano, where each command is run separately on their own SSH sessions. Mina only creates one SSH session per deploy, minimizing the SSH connection overhead.
Capistrano and Mina can be primarily classified as "Server Configuration and Automation" tools.
Some of the features offered by Capistrano are:
- Reliably deploy web application to any number of machines simultaneously, in sequence or as a rolling set
- Automate audits of any number of machines (checking login logs, enumerating uptimes, and/or applying security patches)
- Script arbitrary workflows over SSH
On the other hand, Mina provides the following key features:
- Safe deploys. New releases are built on a temp folder. If the deploy script fails at any point, the build is deleted and it’d be as if nothing happened.
- Locks. Deploy scripts rely on a lockfile ensuring only one deploy can happen at a time.
- Works with anything. While Mina is built with Rails projects it mind, it can be used on just about any type of project deployable via SSH, Ruby or not.
"Automated deployment with several custom recipes" is the primary reason why developers consider Capistrano over the competitors, whereas "Easy, fast and light weight" was stated as the key factor in picking Mina.
Capistrano and Mina are both open source tools. It seems that Capistrano with 11.1K GitHub stars and 1.71K forks on GitHub has more adoption than Mina with 4.05K GitHub stars and 453 GitHub forks.
According to the StackShare community, Capistrano has a broader approval, being mentioned in 293 company stacks & 81 developers stacks; compared to Mina, which is listed in 8 company stacks and 9 developer stacks.
What is Capistrano?
What is Mina?
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 Mina?
Sign up to get full access to all the companiesMake informed product decisions
What tools integrate with Mina?
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
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.