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
RailsClub 2016
Search
Kir Shatrov
October 22, 2016
Programming
340
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RailsClub 2016
Kir Shatrov
October 22, 2016
More Decks by Kir Shatrov
See All by Kir Shatrov
Running Jobs at Scale
kirs
1
240
Operating Rails in Kubernetes
kirs
3
510
Performance regressions in Ruby on Rails Core
kirs
0
240
Building a toolkit to detect performance regressions in Ruby on Rails core
kirs
3
6.3k
Развертывание веб-приложений и фреймворк Capistrano
kirs
1
310
Capistrano 3
kirs
4
3.1k
Other Decks in Programming
See All in Programming
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
Jetpack Compose Mechanisms
skydoves
3
840
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
310
Simple Storage Service(S3) is not simple
iwatsukayura
0
310
AI-Powered Domain-Driven Design
ziobrando
0
210
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
140
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
140
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
Seven New Principles of Software Engineering
yegor256
0
190
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
890
Railsバージョンを4倍にした話
optim
0
520
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
180
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Documentation Writing (for coders)
carmenintech
77
5.6k
A Soul's Torment
seathinner
8
3.8k
Site-Speed That Sticks
csswizardry
13
1.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
A Tale of Four Properties
chriscoyier
163
24k
Agile that works and the tools we love
rasmusluckow
331
22k
Everyday Curiosity
cassininazir
0
360
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 Спасибо!