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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kir Shatrov
October 22, 2016
Programming
330
2
Share
RailsClub 2016
Kir Shatrov
October 22, 2016
More Decks by Kir Shatrov
See All by Kir Shatrov
Running Jobs at Scale
kirs
1
220
Operating Rails in Kubernetes
kirs
3
500
Performance regressions in Ruby on Rails Core
kirs
0
230
Building a toolkit to detect performance regressions in Ruby on Rails core
kirs
3
5.9k
Развертывание веб-приложений и фреймворк Capistrano
kirs
1
300
Capistrano 3
kirs
4
2.9k
Other Decks in Programming
See All in Programming
Swift Concurrency Type System
inamiy
0
330
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
550
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
130
ファインチューニングせずメインコンペを解く方法
pokutuna
0
270
存在論的プログラミング: 時間と存在を記述する
koriym
5
820
おれのAgentic Coding 2026/03
tsukasagr
1
140
実践CRDT
tamadeveloper
0
350
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
160
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
150
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
330
へんな働き方
yusukebe
6
2.9k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
What's in a price? How to price your products and services
michaelherold
247
13k
Test your architecture with Archunit
thirion
1
2.2k
We Have a Design System, Now What?
morganepeng
55
8.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
870
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
500
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
190
From π to Pie charts
rasagy
0
160
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
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 Спасибо!