Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
A Pragmatic Approach to Rails Deployments and O...
Search
technicalpickles
May 28, 2012
Technology
510
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A Pragmatic Approach to Rails Deployments and Operations
Lessons learned from deploying and managing hundreds of Rails applications
technicalpickles
May 28, 2012
Other Decks in Technology
See All in Technology
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
150
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
1.3k
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
440
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
150
20260912_スクラムにジェネラリストは必要か
ryugen04
0
400
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
720
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
140
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
170
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
180
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
140
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
720
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Documentation Writing (for coders)
carmenintech
77
5.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Optimising Largest Contentful Paint
csswizardry
37
4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Speed Design
sergeychernyshev
33
2.1k
Transcript
Lessons learned from deploying and managing hundreds of Rails applications
A Pragmatic Approach to Rails Deployments and Operations Monday, May 28, 12
Lessons learned from deploying and managing hundreds of Rails applications
Rails Deployments and Operations Monday, May 28, 12
o hai, im josh Monday, May 28, 12
•@techpickles •http://github.com/technicalpickles •http://technicalpickles.com Monday, May 28, 12
Monday, May 28, 12
Awesomeness Engineer of Supreme Versatility III Monday, May 28, 12
Managed hosting and operations Monday, May 28, 12
I’m talking about Rails Operations Monday, May 28, 12
WTF is Rails Operations? Monday, May 28, 12
Development and maintenance of a production Rails application Monday, May
28, 12
Before we dig in too deep... Monday, May 28, 12
Monday, May 28, 12
Does development generate revenue? Question Monday, May 28, 12
Monday, May 28, 12
•Takes place on laptops, desktop machines, staging servers Monday, May
28, 12
•Takes place on laptops, desktop machines, staging servers •No real
users Monday, May 28, 12
•Takes place on laptops, desktop machines, staging servers •No real
users •Unknown if it truly works Monday, May 28, 12
•Takes place on laptops, desktop machines, staging servers •No real
users •Unknown if it truly works •Tests are green, but... Monday, May 28, 12
Monday, May 28, 12
•Step 1: Development Monday, May 28, 12
•Step 1: Development •Step 2: Operations Monday, May 28, 12
•Step 1: Development •Step 2: Operations •Step 3: ...... Monday,
May 28, 12
•Step 1: Development •Step 2: Operations •Step 3: ...... •Step
4: PROFIT! Monday, May 28, 12
NO Monday, May 28, 12
but it CREATES potential revenue Monday, May 28, 12
Monday, May 28, 12
•Step 1: Development Monday, May 28, 12
•Step 1: Development •Step 2: ....... Monday, May 28, 12
•Step 1: Development •Step 2: ....... •Step 3: PROFIT Monday,
May 28, 12
Does operations generate revenue? Question Monday, May 28, 12
Monday, May 28, 12
•Lives on servers located in data centers and clouds Monday,
May 28, 12
•Lives on servers located in data centers and clouds •Real
users Monday, May 28, 12
•Lives on servers located in data centers and clouds •Real
users •Either code works, or it doesn’t Monday, May 28, 12
•Lives on servers located in data centers and clouds •Real
users •Either code works, or it doesn’t •Either the application is available or not Monday, May 28, 12
NO Monday, May 28, 12
but it PRESERVES potential revenue Monday, May 28, 12
Uh, what generates revenue? Question Monday, May 28, 12
Million Dollar Question Monday, May 28, 12
Monday, May 28, 12
•Working features (or at least that work enough) Monday, May
28, 12
•Working features (or at least that work enough) •Infrastructure to
keep the application up and running (or at least up enough) Monday, May 28, 12
•Working features (or at least that work enough) •Infrastructure to
keep the application up and running (or at least up enough) •A business model that works (or at least works enough) Monday, May 28, 12
•Working features (or at least that work enough) •Infrastructure to
keep the application up and running (or at least up enough) •A business model that works (or at least works enough) •??????????????????????? Monday, May 28, 12
Lessons learned Monday, May 28, 12
Common threads Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Pattern Configuration Management Monday, May 28, 12
duh. It’s about managing configuration. Monday, May 28, 12
You write code that manages your servers’ configuration Monday, May
28, 12
Monday, May 28, 12
•apache package is installed Monday, May 28, 12
•apache package is installed •apache service is running Monday, May
28, 12
•apache package is installed •apache service is running •deploy user
exists Monday, May 28, 12
•apache package is installed •apache service is running •deploy user
exists •cron jobs Monday, May 28, 12
•apache package is installed •apache service is running •deploy user
exists •cron jobs •etc Monday, May 28, 12
•Puppet •Chef •Moonshine Monday, May 28, 12
Automation Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Pattern Staging Environments Monday, May 28, 12
Preproduction servers Monday, May 28, 12
Gives you a place to ensure correctness of deploy Monday,
May 28, 12
configuration management + staging servers = VERY YES Monday, May
28, 12
Monday, May 28, 12
Monday, May 28, 12
Repeat after me Monday, May 28, 12
Repeat after me • development Monday, May 28, 12
Repeat after me • development • staging Monday, May 28,
12
Repeat after me • development • staging • production Monday,
May 28, 12
capistrano-gitflow Monday, May 28, 12
Pattern Deploy early, deploy often Monday, May 28, 12
Although technically, I guess it’s the same A play on
release early, release often. Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Antipattern Feeling Driven Development Monday, May 28, 12
Monday, May 28, 12
The front page feels slow Monday, May 28, 12
The primary key seems like it’s increasing rapidly Monday, May
28, 12
IO seems high Monday, May 28, 12
What does it even mean? Monday, May 28, 12
Counterpattern Science Driven Development Monday, May 28, 12
Monday, May 28, 12
Metrics everywhere! Monday, May 28, 12
•New Relic - http://newrelic.com •Scout - http://scoutapp.com Monday, May 28,
12
The front page is taking 10 seconds to load, but
we really need it to be loading in under 1 second The front page feels slow Monday, May 28, 12
The primary key is at 90% of it’s maximum, up
from 80% yesterday, and looks like it’ll run out overnight. The primary key seems like it’s increasing rapidly Monday, May 28, 12
IO fluctuates up to 90% sometimes, but doesn’t appear to
have a negative effect IO seems high Monday, May 28, 12
Monday, May 28, 12
Topic Monitoring Monday, May 28, 12
How do you know when everything is awful? Monday, May
28, 12
How would you prefer to know? Monday, May 28, 12
How would you prefer to know? •A late night phone
call? Monday, May 28, 12
How would you prefer to know? •A late night phone
call? •Angry tweets that you are down? Monday, May 28, 12
How would you prefer to know? •A late night phone
call? •Angry tweets that you are down? •You personally checking everything all the time? Monday, May 28, 12
How would you prefer to know? •A late night phone
call? •Angry tweets that you are down? •You personally checking everything all the time? •An automated system to let you know? Monday, May 28, 12
•Nagios •Scout •New Relic •Pingdom Monday, May 28, 12
What to monitor Monday, May 28, 12
Define urgency Monday, May 28, 12
Must be actionable Monday, May 28, 12
Single point of contact Monday, May 28, 12
Monday, May 28, 12
Pattern Vertical scaling Monday, May 28, 12
Now what? Your app is slow Monday, May 28, 12
Monday, May 28, 12
Resources are (relatively) cheap Monday, May 28, 12
Developers are (relatively) expensive Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Antipattern Hipster Stack Monday, May 28, 12
Monday, May 28, 12
“I read a blog post about how mongo is totally
web scale” Monday, May 28, 12
Cargo cult operations Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
Monday, May 28, 12
If you’re still going to go hipster... •experiment in branches
•understand operational impact •Staging! Monday, May 28, 12
.... wait, what? Test in production Monday, May 28, 12
Fin. Monday, May 28, 12
Further Reading •Web Operations - John Allspaw and Jesse Robins
•Continuous Delivery - Jez Humble and David Farley •“Web Operations for Developers 101” Monday, May 28, 12
find me here
[email protected]
@techpickles Want to talk ops? Monday,
May 28, 12