<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Faster Web Application Deployment With Mina vs Capistrano | Infinum</title>
		<atom:link href="https://infinum.com/blog/faster-web-application-deployments-using-mina-instead-of-capistrano/feed/" rel="self" type="application/rss+xml" />
		<link>https://infinum.com/blog/faster-web-application-deployments-using-mina-instead-of-capistrano/</link>
		<description>Building digital products</description>
		<lastBuildDate>Thu, 09 Apr 2026 14:25:21 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>8024https://infinum.com/uploads/2013/12/faster-web-application-deployments-using-mina-instead-of-capistrano-0.webp</url>
				</image>
				<title>Faster Web Application Deployments Using Mina Instead of Capistrano</title>
				<link>https://infinum.com/blog/faster-web-application-deployments-using-mina-instead-of-capistrano/</link>
				<pubDate>Wed, 11 Dec 2013 08:29:00 +0000</pubDate>
				<dc:creator>Gabrijel Skoro</dc:creator>
				<guid isPermaLink="false">https://infinum.com/the-capsized-eight/faster-web-application-deployments-using-mina-instead-of-capistrano/</guid>
				<description>
					<![CDATA[<p>Every web application needs to be deployed to a server at one point, and there are several ways to do that. </p>
<p>The post <a href="https://infinum.com/blog/faster-web-application-deployments-using-mina-instead-of-capistrano/">Faster Web Application Deployments Using Mina Instead of Capistrano</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-220"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	Every web application needs to be deployed to a server at one point, and there are several ways to do that. If you are running Rails, a VPS/dedicated server, what’s the best way to do that?</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	If you’ve never operated a VPS or dedicated server and have used a <a href="http://en.wikipedia.org/wiki/Platform_as_a_service">PaaS</a> solution like <a href="https://www.heroku.com/">Heroku</a> or AppFog, you probably never had to bother with deploying your application. This is because the PaaS did all the heavy lifting for you.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-100'
	>
	But, if you ever needed to deploy a Ruby on Rails application to a VPS or dedicated server, I bet you used <a href="http://www.capistranorb.com/">Capistrano</a>, a deployment tool used by many developers around the world. We used it as well, but then we met <a href="http://nadarei.co/mina/">Mina</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-102">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-103'
	>
	What’s wrong with Capistrano?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-105">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-106'
	>
	Maybe you’re wondering what’s wrong with Capistrano. Doesn’t it do the job? Yes, it does, and yes, it’s great, but it’s also terribly slow.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-108">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-109'
	>
	Capistrano deployments can take up to 3 minutes if, for example, you have a large repository, if you’ve changed a couple of database columns or made some extensive changes to the applications. If you deploy all day, every day, being slow isn’t an option for you.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	Well… we deploy every day, and Capistrano just wasn’t working for us anymore, so we began to search for a better solution. At that time, the guys from Dwellable wrote an article about the most recent RailsRumble event and analyzed the most popular gems used by the competing developers. It turns out that 13% of the competing teams used <a href="http://nadarei.co/mina/">Mina</a> and that was reason enough for us to check it out.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-114">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-115'
	>
	Capistrano vs Mina</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-117">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-118'
	>
	To show the difference between these deployment tools, we measured their performance on two different projects.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-120">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-121'
	>
	Capistrano</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-123">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-124'
	>
	To see how much it would take for the first deployment, we created a new Rails project. Because we used the new version of Capistrano (v3), we had to add two gems, <strong>gem ‘capistrano’</strong> and <strong>gem ‘capistrano-rails’</strong>. We also added <strong>require ‘capistrano/rails’</strong> in the Capfile and edited the <strong>deploy.rb</strong> file.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-126">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-127'
	>
	Steps we had to perform:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-129">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-130'
	>
	<li>Add <strong>gem ‘capistrano’</strong> and <strong>gem ‘capistrano-rails’</strong> to the Gemfile</li><li>Call <strong>cap install</strong></li><li>Edit the <strong>deploy.rb</strong>, <strong>Capfile</strong> and <strong>production.rb</strong> file</li><li>Call <strong>cap production deploy</strong></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-132">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-133'
	>
	As from version 3 you don’t need to call <strong>cap deploy:setup</strong> anymore.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-135">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-136'
	>
	Deploy</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-139"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">07036</span><span class="token" style="color: #005cc5;">a87</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Running</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">usr</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">bin</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">env</span><span class="token"> </span><span class="token" style="color: #005cc5;">mkdir</span><span class="token"> </span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">p</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token"> </span><span class="token" style="color: #005cc5;">on</span><span class="token"> </span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">DEBUG</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">07036</span><span class="token" style="color: #005cc5;">a87</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Command</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">usr</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">bin</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">env</span><span class="token"> </span><span class="token" style="color: #005cc5;">mkdir</span><span class="token"> </span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">p</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">07036</span><span class="token" style="color: #005cc5;">a87</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Finished</span><span class="token"> </span><span class="token" style="color: #005cc5;">in</span><span class="token"> </span><span class="token" style="color: #005cc5;">1</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">236</span><span class="token"> </span><span class="token" style="color: #005cc5;">seconds</span><span class="token"> </span><span class="token" style="color: #005cc5;">with</span><span class="token"> </span><span class="token" style="color: #d73a49;">exit</span><span class="token"> </span><span class="token" style="color: #005cc5;">status</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">successful</span><span class="token">)</span><span class="token" style="color: #d73a49;">.</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">DEBUG</span><span class="token"> </span><span class="token" style="color: #005cc5;">Uploading</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">git</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">ssh</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">sh</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #d73a49;">%</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token" style="color: #005cc5;">Uploading</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">git</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">ssh</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">sh</span><span class="token"> </span><span class="token" style="color: #005cc5;">100</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #d73a49;">%</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">b1b91149</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Running</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">usr</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">bin</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">env</span><span class="token"> </span><span class="token" style="color: #005cc5;">chmod</span><span class="token"> </span><span class="token" style="color: #d73a49;">+</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">git</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">ssh</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">sh</span><span class="token"> </span><span class="token" style="color: #005cc5;">on</span><span class="token"> </span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">DEBUG</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">b1b91149</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Command</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">usr</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">bin</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">env</span><span class="token"> </span><span class="token" style="color: #005cc5;">chmod</span><span class="token"> </span><span class="token" style="color: #d73a49;">+</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">tmp</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">git</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">ssh</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">sh</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">b1b91149</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Finished</span><span class="token"> </span><span class="token" style="color: #005cc5;">in</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">172</span><span class="token"> </span><span class="token" style="color: #005cc5;">seconds</span><span class="token"> </span><span class="token" style="color: #005cc5;">with</span><span class="token"> </span><span class="token" style="color: #d73a49;">exit</span><span class="token"> </span><span class="token" style="color: #005cc5;">status</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">successful</span><span class="token">)</span><span class="token" style="color: #d73a49;">.</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">…</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">9</span><span class="token" style="color: #005cc5;">a6ef5d6</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Running</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">usr</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">bin</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">env</span><span class="token"> </span><span class="token" style="color: #005cc5;">echo</span><span class="token"> </span><span class="token" style="color: #005cc5;">“Branch</span><span class="token"> </span><span class="token" style="color: #005cc5;">master</span><span class="token"> </span><span class="token" style="color: #005cc5;">deployed</span><span class="token"> </span><span class="token" style="color: #d73a49;">as</span><span class="token"> </span><span class="token" style="color: #005cc5;">release</span><span class="token"> </span><span class="token" style="color: #005cc5;">20131206155724</span><span class="token"> </span><span class="token" style="color: #005cc5;">by</span><span class="token"> </span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #005cc5;">”</span><span class="token"> </span><span class="token" style="color: #d73a49;">&gt;</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #d73a49;">var</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">c</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">revisions</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">log</span><span class="token"> </span><span class="token" style="color: #005cc5;">on</span><span class="token"> </span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">DEBUG</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">9</span><span class="token" style="color: #005cc5;">a6ef5d6</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Command</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">echo</span><span class="token"> </span><span class="token" style="color: #005cc5;">“Branch</span><span class="token"> </span><span class="token" style="color: #005cc5;">master</span><span class="token"> </span><span class="token" style="color: #005cc5;">deployed</span><span class="token"> </span><span class="token" style="color: #d73a49;">as</span><span class="token"> </span><span class="token" style="color: #005cc5;">release</span><span class="token"> </span><span class="token" style="color: #005cc5;">20131206155724</span><span class="token"> </span><span class="token" style="color: #005cc5;">by</span><span class="token"> </span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token">;</span><span class="token"> </span><span class="token" style="color: #005cc5;">”</span><span class="token"> </span><span class="token" style="color: #d73a49;">&gt;</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #d73a49;">var</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">c</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">capistrano</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">revisions</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">log</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">INFO</span><span class="token"> </span><span class="token">[</span><span class="token" style="color: #005cc5;">9</span><span class="token" style="color: #005cc5;">a6ef5d6</span><span class="token">]</span><span class="token"> </span><span class="token" style="color: #005cc5;">Finished</span><span class="token"> </span><span class="token" style="color: #005cc5;">in</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">228</span><span class="token"> </span><span class="token" style="color: #005cc5;">seconds</span><span class="token"> </span><span class="token" style="color: #005cc5;">with</span><span class="token"> </span><span class="token" style="color: #d73a49;">exit</span><span class="token"> </span><span class="token" style="color: #005cc5;">status</span><span class="token"> </span><span class="token" style="color: #005cc5;">0</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">successful</span><span class="token">)</span><span class="token" style="color: #d73a49;">.</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-142"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-140">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-141'
	>
	Because Capistrano only records the time for every command it runs, we can’t see how long the whole deployment takes. Luckily, my trusty phone has a stopwatch, so I recorded the elapsed time on my own. And the result – the deployment process with Capistrano took <strong>180 seconds</strong> of our precious time.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-145"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-143">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-144'
	>
	So let’s do it again, but this time with Mina.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-148"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-146">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-147'
	>
	Mina</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-151"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-149">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-150'
	>
	The first thing that we noticed on Mina website was the title <strong>Really fast deployer and server automation tool</strong>, and that alone put a smile on our faces.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-154"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-152">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-153'
	>
	Again, we created a new project and pushed it to a repository. After adding the <strong>gem ‘mina’</strong> to the Gemfile, it was very easy to configure the <strong>deploy.rb</strong> file, and, in less than a minute, we were ready to deploy (note that the repository size was around 250 KB).</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-157"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-155">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-156'
	>
	We performed these steps:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-160"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-158">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-159'
	>
	<li>Add <strong>gem ‘mina’</strong> to the Gemfile</li><li>Call <strong>mina init</strong></li><li>Edit the <strong>deploy.rb</strong> file</li><li>Call <strong>mina setup</strong></li><li>Call <strong>mina deploy</strong></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-161">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-162'
	>
	Running setup:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-165"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Setting</span><span class="token"> </span><span class="token" style="color: #005cc5;">up</span><span class="token"> </span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #d73a49;">var</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">m</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">mina</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token">        
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">total</span><span class="token"> </span><span class="token" style="color: #005cc5;">16</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">drwxrwxr</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #005cc5;">4</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">4096</span><span class="token"> </span><span class="token" style="color: #005cc5;">Dec</span><span class="token">  </span><span class="token" style="color: #005cc5;">6</span><span class="token"> </span><span class="token" style="color: #005cc5;">15</span><span class="token">:</span><span class="token" style="color: #005cc5;">15</span><span class="token"> </span><span class="token" style="color: #d73a49;">.</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">drwxrwxr</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #005cc5;">3</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">4096</span><span class="token"> </span><span class="token" style="color: #005cc5;">Dec</span><span class="token">  </span><span class="token" style="color: #005cc5;">6</span><span class="token"> </span><span class="token" style="color: #005cc5;">15</span><span class="token">:</span><span class="token" style="color: #005cc5;">15</span><span class="token"> </span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #d73a49;">.</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">drwxrwxr</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #005cc5;">2</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">4096</span><span class="token"> </span><span class="token" style="color: #005cc5;">Dec</span><span class="token">  </span><span class="token" style="color: #005cc5;">6</span><span class="token"> </span><span class="token" style="color: #005cc5;">15</span><span class="token">:</span><span class="token" style="color: #005cc5;">15</span><span class="token"> </span><span class="token" style="color: #005cc5;">releases</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">drwxrwxr</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">x</span><span class="token"> </span><span class="token" style="color: #005cc5;">2</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">-</span><span class="token" style="color: #005cc5;">data</span><span class="token"> </span><span class="token" style="color: #005cc5;">4096</span><span class="token"> </span><span class="token" style="color: #005cc5;">Dec</span><span class="token">  </span><span class="token" style="color: #005cc5;">6</span><span class="token"> </span><span class="token" style="color: #005cc5;">15</span><span class="token">:</span><span class="token" style="color: #005cc5;">15</span><span class="token"> </span><span class="token" style="color: #005cc5;">shared</span><span class="token"> 
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Done</span><span class="token" style="color: #d73a49;">.</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Be</span><span class="token"> </span><span class="token" style="color: #005cc5;">sure</span><span class="token"> </span><span class="token" style="color: #005cc5;">to</span><span class="token"> </span><span class="token" style="color: #005cc5;">edit</span><span class="token"> </span><span class="token" style="color: #005cc5;">‘shared</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">config</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">database</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">yml’</span><span class="token" style="color: #d73a49;">.</span><span class="token">        
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Elapsed</span><span class="token"> </span><span class="token" style="color: #005cc5;">time</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">1</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">00</span><span class="token"> </span><span class="token" style="color: #005cc5;">seconds</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-168"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-166">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-167'
	>
	It takes only 1 second to create all the necessary directories.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-171"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-169">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-170'
	>
	Running first deploy:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Creating</span><span class="token"> </span><span class="token" style="color: #005cc5;">a</span><span class="token"> </span><span class="token" style="color: #005cc5;">temporary</span><span class="token"> </span><span class="token" style="color: #005cc5;">build</span><span class="token"> </span><span class="token" style="color: #005cc5;">path</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Cloning</span><span class="token"> </span><span class="token" style="color: #005cc5;">the</span><span class="token"> </span><span class="token" style="color: #005cc5;">Git</span><span class="token"> </span><span class="token" style="color: #005cc5;">repository</span><span class="token">        
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Cloning</span><span class="token"> </span><span class="token" style="color: #005cc5;">into</span><span class="token"> </span><span class="token" style="color: #005cc5;">bare</span><span class="token"> </span><span class="token" style="color: #005cc5;">repository</span><span class="token"> </span><span class="token" style="color: #005cc5;">‘</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #d73a49;">var</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">www</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">m</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">mina</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">gabrijelskoro</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">com</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">scm’…</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Using</span><span class="token"> </span><span class="token" style="color: #005cc5;">git</span><span class="token"> </span><span class="token" style="color: #005cc5;">branch</span><span class="token"> </span><span class="token" style="color: #005cc5;">‘master’</span><span class="token">        
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Cloning</span><span class="token"> </span><span class="token" style="color: #005cc5;">into</span><span class="token"> </span><span class="token" style="color: #005cc5;">‘</span><span class="token" style="color: #d73a49;">.</span><span class="token" style="color: #005cc5;">’…</span><span class="token"> 
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">done</span><span class="token" style="color: #d73a49;">.</span><span class="token"> 
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Using</span><span class="token"> </span><span class="token" style="color: #005cc5;">this</span><span class="token"> </span><span class="token" style="color: #005cc5;">git</span><span class="token"> </span><span class="token" style="color: #005cc5;">commit</span><span class="token">        
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Gabrijel</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Skoro</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">f78408d</span><span class="token">)</span><span class="token">:</span><span class="token"> 
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">initial</span><span class="token"> </span><span class="token" style="color: #005cc5;">commit</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Symlinking</span><span class="token"> </span><span class="token" style="color: #005cc5;">shared</span><span class="token"> </span><span class="token" style="color: #005cc5;">paths</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Installing</span><span class="token"> </span><span class="token" style="color: #005cc5;">gem</span><span class="token"> </span><span class="token" style="color: #005cc5;">dependencies</span><span class="token"> </span><span class="token" style="color: #005cc5;">using</span><span class="token"> </span><span class="token" style="color: #005cc5;">Bundler</span><span class="token">        
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Fetching</span><span class="token"> </span><span class="token" style="color: #005cc5;">gem</span><span class="token"> </span><span class="token" style="color: #005cc5;">metadata</span><span class="token"> </span><span class="token" style="color: #005cc5;">from</span><span class="token"> </span><span class="token" style="color: #005cc5;">https</span><span class="token">:</span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">rubygems.org/………. </span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Fetching</span><span class="token"> </span><span class="token" style="color: #005cc5;">gem</span><span class="token"> </span><span class="token" style="color: #005cc5;">metadata</span><span class="token"> </span><span class="token" style="color: #005cc5;">from</span><span class="token"> </span><span class="token" style="color: #005cc5;">https</span><span class="token">:</span><span class="token" style="color: #6a737d;">//</span><span class="token" style="color: #6a737d;">rubygems.org/.. </span><span class="token" style="color: #6a737d;">
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Installing</span><span class="token"> </span><span class="token" style="color: #6f42c1;">rake</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">10</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">1</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">0</span><span class="token">)</span><span class="token">  
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Installing</span><span class="token"> </span><span class="token" style="color: #6f42c1;">i18n</span><span class="token"> </span><span class="token">(</span><span class="token" style="color: #005cc5;">0</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">6</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">9</span><span class="token">)</span><span class="token">  
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">…</span><span class="token">
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Migrating</span><span class="token"> </span><span class="token" style="color: #005cc5;">database</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Precompiling</span><span class="token"> </span><span class="token" style="color: #005cc5;">asset</span><span class="token"> </span><span class="token" style="color: #005cc5;">files</span><span class="token">   
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Build</span><span class="token"> </span><span class="token" style="color: #005cc5;">finished</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Moving</span><span class="token"> </span><span class="token" style="color: #005cc5;">build</span><span class="token"> </span><span class="token" style="color: #005cc5;">to</span><span class="token"> </span><span class="token" style="color: #005cc5;">releases</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">1</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Updating</span><span class="token"> </span><span class="token" style="color: #005cc5;">the</span><span class="token"> </span><span class="token" style="color: #005cc5;">current</span><span class="token"> </span><span class="token" style="color: #005cc5;">symlink</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Launching</span><span class="token">        
</span></span><span class="line"><span class="token" style="color: #005cc5;">—–</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #005cc5;">Done</span><span class="token" style="color: #d73a49;">.</span><span class="token"> </span><span class="token" style="color: #005cc5;">Deployed</span><span class="token"> </span><span class="token" style="color: #005cc5;">v1</span><span class="token">        
</span></span><span class="line"><span class="token">       </span><span class="token" style="color: #005cc5;">Elapsed</span><span class="token"> </span><span class="token" style="color: #005cc5;">time</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">85</span><span class="token" style="color: #005cc5;">.</span><span class="token" style="color: #005cc5;">00</span><span class="token"> </span><span class="token" style="color: #005cc5;">seconds</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-174">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-175'
	>
	And only <strong>85 seconds</strong> for the deployment. Indeed, very, very fast.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-177">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-178'
	>
	Let’s see the time after subsequent deploys</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-180">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-181'
	>
	But what’s the difference between the first and subsequent deploys? It’s huge because when you deploy an application for the first time it will run <strong>bundle</strong> and download all the gems, run <strong>assets:precompile</strong> and <strong>db:migrate</strong>. For every subsequent deploy, if you don’t change your assets (styles, pictures, videos…), make bigger changes in your database (like create new tables or add new columns) or if you add a new gem, commands <strong>assets:precompile</strong> and <strong>db:migrate</strong> won’t be called anymore, and <strong>bundle</strong> will only download the new gem.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-185"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-183">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-184'
	>
	So, on both projects I removed the unused gem (<strong>gem ‘sdoc’</strong>), and deployed the application again. The results are shown below:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-188"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-186"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-187">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2013/12/faster-web-application-deployments-using-mina-instead-of-capistrano-1.webp"
					class="image__img block-media__image-img"
					alt=""
										height="464"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-191"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-189">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-190'
	>
	On a small project Mina is 6.8 times faster than Capistrano, so you can imagine how long it would take to deploy a bigger application like our Infinum web with a repository of around 107 MB. You can’t? Then let’s test it!</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-194"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-192">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-193'
	>
	I deployed our web application two times with both tools, once to see the difference on the first deploy and once to see the difference on the second deploy. Here are the results:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-197"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-195"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-196">
	<picture class="image__picture block-media__image-picture">
												<img
					src="https://infinum.com/uploads/2013/12/faster-web-application-deployments-using-mina-instead-of-capistrano-2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="464"
															width="700"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-200"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-198">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-199'
	>
	Now you can see the real power of Mina – it’s about 28x faster on the second deploy than Capistrano.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-203"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-201">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-202'
	>
	Why is Mina so much faster?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-206"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-204">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-205'
	>
	Capistrano runs each command separately on their own SSH session and that’s why it takes so long to deploy an application. Unlike Capistrano, Mina runs only one command which requires only one session. Confused? Don’t be. When you call <strong>mina deploy</strong>, it generates the entire procedure as a Bash script, uploads it and runs it on the server. The results of that is drastically reduced deployment time.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-209"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-207">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-208'
	>
	Which to use?</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-212"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-210">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-211'
	>
	If speed is not important to you, and editing 3 files and bothering with so many different functions just to deploy an app isn’t a problem, you can use Capistrano like other 87% of users.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-213">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-214'
	>
	Mina is the choice if you need a really fast deployment tool that’s easy to set up and has a clear console output. On the other hand, be ready to sacrifice some functionality like rollback. Mina doesn’t support rollback (yet!), but there’s an open ticket for this, and I hope rollback will be implemented soon.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-218"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-216">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-217'
	>
	To be honest, both tools are great, have functions like multienv, run the rails production console locally, have support for deploying non-rails apps like php., etc. In short, they both make our lives easier, but at the end of the day Mina is so much faster and that’s the reason it replaced Capistrano in our development toolset.</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/faster-web-application-deployments-using-mina-instead-of-capistrano/">Faster Web Application Deployments Using Mina Instead of Capistrano</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>