Skip to content

Instantly share code, notes, and snippets.

@ladydangerdame
Last active January 17, 2017 08:07
Show Gist options
  • Save ladydangerdame/e31cf2ab69ed92a0d67238235053cde4 to your computer and use it in GitHub Desktop.
Save ladydangerdame/e31cf2ab69ed92a0d67238235053cde4 to your computer and use it in GitHub Desktop.
A Lightening Talk on Capistrano Deployment Automation Tool

Capistrano Deployment Automation

Eloquently put by Wikipedia:

Capistrano is an open source tool for running scripts on multiple servers; its main use is deploying web applications. It automates the process of making a new version of an application available on one or more web servers, including supporting tasks such as changing databases.

Capistrano is written in the Ruby language and is distributed using the RubyGems distribution channel. It is an outgrowth of the Ruby on Rails web application framework, but it is also used to deploy web applications written using other languages, for example, PHP.

Capistrano is implemented primarily for use on the UNIX shell command line. A user may choose from many Capistrano recipes, e.g. to deploy current changes to the web application or roll back to the previous deployment state.

Translation:

Capistrano requires some work in the beginning, but once you clambor through all of it, deploying Web Apps to one or multiple servers is faster and simpler. All of the pain I went through repeatedly with AWS EC2 instances and SSHing into AMIs to create environments for a Rails app is negated by the magic that is capistrano.

Admitedly, I fiddled with AWS so much over the last week and a half that I failed to get a full trial of a capistrano deployment up and running (It's fast... but not lightening talk fast). But my intention is to use what I have learned of the Capistrano gem and AWS to deply a simple ROR app to multiple services such as Digital Ocean (which I discovered during my research of Capistrano) or Docker and include detailed steps and screen shots. I found a good number or resources regarding Capistrano, but as with other topics, I struggled with many sources assuming too much knowledge on some key points and sending me off on a chase to hunt down an additional piece of information I didn't understand. This is rewarding in the long run, but frustrating when I'm trying to just DO THE THING.

So, in short, this gem simplifies executing the scripts needed to deploy a web app to one or more servers. You use it by including the gem in your app gemfile and the rest of the magic happens in your terminal.

Helpful resources:

Capistrano ...an introduction

Ruby Thursday

Capistrano Wiki

Capistrano Github

Capistrano Rails Github

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment