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
RailsClub 2016
Search
Kir Shatrov
October 22, 2016
Programming
2
310
RailsClub 2016
Kir Shatrov
October 22, 2016
Tweet
Share
More Decks by Kir Shatrov
See All by Kir Shatrov
Running Jobs at Scale
kirs
1
210
Operating Rails in Kubernetes
kirs
3
460
Performance regressions in Ruby on Rails Core
kirs
0
210
Building a toolkit to detect performance regressions in Ruby on Rails core
kirs
3
5.6k
Развертывание веб-приложений и фреймворк Capistrano
kirs
1
280
Capistrano 3
kirs
4
2.8k
Other Decks in Programming
See All in Programming
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
210
🔨 小さなビルドシステムを作る
momeemt
3
650
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
140
オープンセミナー2025@広島「君はどこで動かすか?」アンケート結果
satoshi256kbyte
0
240
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
19
4.6k
1から理解するWeb Push
dora1998
3
1.3k
為你自己學 Python - 冷知識篇
eddie
1
340
testingを眺める
matumoto
1
130
Swift Updates - Learn Languages 2025
koher
1
400
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
1.3k
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
17
7.7k
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
380
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Practical Orchestrator
shlominoach
190
11k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
A Modern Web Designer's Workflow
chriscoyier
696
190k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Transcript
Monolithic Rails: deal with it Railsclub 2016 Kir Shatrov
Kir Shatrov Developer acceleration @ Shopify " Rails, Capistrano, RubyBench
None
Developer acceleration team
Rails Ruby Developer Tools
None
git clone … brew install postgres brew install redis bundle
install rake db:create
git clone … brew install postgres brew install redis bundle
install rake db:create где-то тут ломается nokogiri
git clone … brew install postgres brew install redis rake
db:create vagrant up
VM creation is slow VM has to be updated every
week from Chef Development in VM is slower VM file system has limitations for frontend stuff
None
The xhyve hypervisor is a port of bhyve to OS
X. It is built on top of Hypervisor.framework in OS X 10.10 Yosemite and higher, runs entirely in userspace, and has no other dependencies.
None
install Homebrew packages provision language and dependencies ruby, node, go
create and prepare database setup Git hooks
git clone … brew install postgres brew install redis rake
db:create dev up
None
Detect dangerous patterns ☠
Detect dangerous patterns changing existing migrations adding new gems changing
application configuration
None
⚓ CI ⚓
50 000
None
None
None
None
None
None
⚰ Rails upgrade
1. Make your application boot (fix gem conflicts) 2. Setup
two Gemfiles and two CI statuses 3. Fix failings tests 4. Deploy to 10% of nodes
None
None
None
1. Make your application boot (fix gem conflicts) 2. Setup
two Gemfiles and two CI statuses 3. Fix failings tests 4. Deploy to 10% of nodes
None
1. Make your application boot (fix gem conflicts) 2. Setup
two Gemfiles and two CI statuses 3. Fix failings tests 4. Gradually deploy
⏱ Application boot ⏱
$ rails new railsclub --skip-spring $ time bundle exec rails
runner "puts 1+1" 2 0.64s user 0.09s system 24% cpu 2.969 total
require 'activerecord' require '/Users/kir/Projects/shopify/vendor/bundle/gems/ activerecord-4.2.7.1/lib/activerecord.rb'
github.com/byroot/bootscale
Rails hacks
block any external calls from inside database transaction instrument Net::HTTP
by host lint database migrations circuit breaker
continuous improvements share as many tools as possible make people
happy
shopify.com/careers
@kirs @kirshatrov Спасибо!