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
300
RailsClub 2016
Kir Shatrov
October 22, 2016
Tweet
Share
More Decks by Kir Shatrov
See All by Kir Shatrov
Running Jobs at Scale
kirs
0
180
Operating Rails in Kubernetes
kirs
2
390
Performance regressions in Ruby on Rails Core
kirs
0
190
Building a toolkit to detect performance regressions in Ruby on Rails core
kirs
3
5k
Развертывание веб-приложений и фреймворк Capistrano
kirs
1
260
Capistrano 3
kirs
4
2.5k
Other Decks in Programming
See All in Programming
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
3
770
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
5
4.6k
入門 AWS Amplify Gen2 / Introduction to AWS Amplify Gen2
genkiogasawara
1
310
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
3
340
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
1
190
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
340
"config" ってなんだ? / What is "config"?
okashoi
0
220
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
ゆるい個人開発のススメ
kuroppe1819
10
940
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Bootstrapping a Software Product
garrettdimon
PRO
301
110k
Building Adaptive Systems
keathley
30
1.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
Building an army of robots
kneath
300
41k
How to name files
jennybc
64
92k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
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 Спасибо!