Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deploying Rails apps with Capistrano
Search
Bruno Sutic
October 01, 2014
Technology
0
72
Deploying Rails apps with Capistrano
Bruno Sutic
October 01, 2014
Tweet
Share
More Decks by Bruno Sutic
See All by Bruno Sutic
Readline + irb/pry = <3
brunosutic
0
100
Moreutils
brunosutic
0
42
The venerable "expect"
brunosutic
0
52
Capistrano vs Mina: Capistrano demo talk
brunosutic
0
420
Configuring tmux
brunosutic
0
70
Introduction to Arel
brunosutic
1
200
Tmux osnove
brunosutic
0
160
Other Decks in Technology
See All in Technology
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
550
表現を育てる
kiyou77
1
210
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
550
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
370
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
750
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
250
人はなぜISUCONに夢中になるのか
kakehashi
PRO
6
1.7k
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
Goで作って学ぶWebSocket
ryuichi1208
3
1.5k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
176
9.5k
The Cult of Friendly URLs
andyhume
78
6.2k
A Tale of Four Properties
chriscoyier
158
23k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Facilitating Awesome Meetings
lara
52
6.2k
Bash Introduction
62gerente
611
210k
Code Review Best Practice
trishagee
67
18k
Agile that works and the tools we love
rasmusluckow
328
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Thoughts on Productivity
jonyablonski
69
4.5k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Transcript
Deploying Rails apps with Capistrano +
About: Bruno Sutic, github.com/bruno-/ Rails & Javascript developer Ideal Project
Group, Chicago Worked on a Capistrano plugins: github.com/capistrano-plugins/
Goals • motivate Rails devs to try Capistrano • make
Capistrano vs Heroku comparison • demo app deployment
What is Capistrano? • Capistrano is a deployment tool. It
gets the app running on the server. • Other deployment strategies: - manual (zip + ftp) - Mina - Heroku - Engine Yard - Docker - Chef, Puppet…
Heroku PROS • Free! • Really simple • Single click
add-ons CONS • Paid plans are expensive • Closed (and expensive) add-on ecosystem • Technical lock-in
Heroku is great, but expensive. Capistrano is the alternative.
What is Capistrano? • Ruby gem • built on top
of ssh and Rake (think tasks) • mature and battle tested v1.1.0 in March 2006 • scalable • technology agnostic: used for deploying apps in Ruby, PHP + other
What Capistrano is *not*? • server installation / provisioning tool
think: `apt-get install nginx` • server configuration tool think: updating IPtables • Chef, Puppet, Ansible are better for these tasks
How does it work? • built on top of `ssh`
$ ssh my_server “echo ‘foo’” $ scp some_file.txt my_server:/dir/
How does it work? $ ssh my_server “git clone github.com/myapp”
$ ssh my_server “service nginx restart” 2) git clone myapp 1) ssh my_server Dev machine Server Git repo (Github)
Capistrano downsides • more work (than i.e. Heroku) • requires
learning • capistrano itself • dev ops: server installation, configuration, hardening • familiarity with ssh
Quiz
Capistrano vs Heroku quiz Situation: • Ruby on Rails beginner
• Created first app for practice How do you deploy?
Capistrano vs Heroku quiz Situation: • Rails dev team •
Long term customer • Big app, will need scaling How do you deploy?
Capistrano vs Heroku quiz Situation: • Experienced Rails dev •
Small app built over the weekend How do you deploy? Both are fine! (it depends )
Demo time
Capistrano demo STEPS 1. make a Rails app ✅ 2.
buy & setup a server ✅ 3. setup Capistrano 4. deploy STACK • Nginx • Unicorn • PostgreSQL
Next steps • www.capistranorb.com • capistrano github • https://gist.github.com/bruno-/9808201