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
巨大化したモノリスApplicationの安全なRubyバージョンアップ🚀
Search
Takashi Miyahara
October 30, 2019
Programming
4
7.8k
巨大化したモノリスApplicationの安全なRubyバージョンアップ🚀
Meetup for Rails engineers -メドピア×リンカーズ×Classi開発事例-にて発表した資料です。
https://connpass.com/event/150554/
Takashi Miyahara
October 30, 2019
Tweet
Share
More Decks by Takashi Miyahara
See All by Takashi Miyahara
プルリク毎の検証環境を建てよう
takashimiyahara
0
4.5k
Image processing tips using ruby-vips
takashimiyahara
0
9.7k
Other Decks in Programming
See All in Programming
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
26
8.2k
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
220
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
Git Lint
bkuhlmann
4
750
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
230
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.2k
ONE WEDGE_company_guide
1wedge_one
0
460
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
180
Goのmultiple errorsについて (2024年4月版)
syumai
3
570
Featured
See All Featured
In The Pink: A Labor of Love
frogandcode
138
21k
Gamification - CAS2011
davidbonilla
76
4.6k
4 Signs Your Business is Dying
shpigford
175
21k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
A designer walks into a library…
pauljervisheath
200
23k
What the flash - Photography Introduction
edds
64
11k
Web development in the modern age
philhawksworth
202
10k
A better future with KSS
kneath
231
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
78
42k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Transcript
ڊେԽͨ͠ϞϊϦε Applicationͷ҆શͳRuby όʔδϣϯΞοϓ Takashi, Miyahara MedPeer, Inc. DCP Division, Platform
Development Group. 2019/10/30 Meetup for Rails engineers
ࣗݾհ Nameɿٶݪ ਸࢤ(@TakashiMiyahara) Jobɿҩࢣઐ༻ίϛϡχςΟαΠτ ʮMedPeerʯͷ։ൃ Hobbyɿࣗ࡞ΩʔϘʔυ One ThingɿॳొஃͰ͢ʂʂ
ձࣾհ
ձࣾհ
ձࣾհ
ձࣾհ
None
None
! όʔδϣϯΞοϓͷखॱ 1. ։ൃڥΛRuby2.6Խɺ֤छهड़Λमਖ਼ 2. ECSͷΠϝʔδΛϏϧυˍΞοϓϩʔυ 3. खݩɾCIʹͯಈ࡞֬ೝˍςετ 4. stagingڥʹө͠ɺಈ࡞ݕূ
5. productionڥʹө
! όʔδϣϯΞοϓ։࢝ ʮRubyͷόʔδϣϯΞοϓؤுΔͧͬ ! ʯ
! खݩɾCIʹͯಈ࡞֬ೝˍςετ ʮϩʔΧϧɾCIڥͰςετશ෦ύε͠ ͨͧʂ ! ʯ
! 8݄ CI͕ίέͨʂʂ
None
! 8݄ ʮͨ·ʹམͪΔςετ͔ͳʁʯ CIʮReceived 'killed' signalʯ ʮ....ʯ
! 8݄
None
! 8݄ ݪҼͷίʔυΛൃݟ
! Durationͷόά Range#stepʹ ActiveSupport::DurationΛ͍ͯ͠Δ ෦Ͱɺੑೳ͕ेഒʙඦഒʹѱԽ Rubyɿ2.6.3, 2.6.4, 2.6.5 Railsɿ5.2.3 ActiveSupportɿ5.2.3
! ࠶ݱͤ͞ΔͨΊͷ࠷খͷίʔυ
! Rubyຖͷ࣮ߦͷ֬ೝ Ruby 2.5.3 Ruby 2.6.3 2.1e-05 s 11.550944 s
ʮRuby 2.6Λ͏ͱѹతʹ͘ͳΔ ͳ͊...ʯ
! Range#stepͷݕূ
None
! ࣮ߦ݁Ռ Ruby2.6ܥͱRails5.2ܥͷΈ߹ΘͤͰɺ ύϑΥʔϚϯε͕ѹతʹѱԽ͠·͢
! όάͷݪҼ Ruby 2.6͔Βrange.step(n)͕ Enumerator::ArithmeticSequenceΛ ฦ͢Α͏ʹͳͬͨ → ҙਤ͠ͳ͍σʔλߏʹมԽ → DurationͷՃࢉܭࢉྔ͕ϧʔϓؔʹ
ରͯ͠ࢦؔతʹ૿Ճ
! όάͷݱঢ় Rails6Ͱमਖ਼͞Ε͍ͯΔΑ͏Ͱ͢
! όάͷमਖ਼ํ๏
! ͬͨʂ
None
! 9݄
! 9݄
None
! 9݄ ʮBatchαʔόʔΛ҆શʹ࠶ىಈ͠ͳ͍ ͱɺJobΛਖ਼࣮͘͠ߦͰ͖ͳ͍ͧ...ʯ
! Sidekiq Jobͷ҆શͳ࠶ىಈ 1. ࣮ߦதͷJobΛ࣮ͯ͢ߦ͖ͤ͞Δ 2. Sidekiqͷleaderϓϩηε্ཱ͕͕ͪΒͳ ͤ͘͞Δ 3. SidekiqͷleaderϓϩηεΛఀࢭ
4. Masterϓϩηε͔ΒleaderϓϩηεΛى ಈ
! ಈ͍͍ͯΔJobΛ֬ೝ
! Sidekiqͷleaderϓϩηε্ཱ͕͕ͪΒͳ ͤ͘͞Δ
! Sidekiq Jobͷঢ়ଶΛࢹ
! SidekiqͷleaderϓϩηεΛఀࢭ
! SidekiqͷleaderϓϩηεΛఀࢭˠىಈ
! Sidekiqͷঢ়ଶΛ֬ೝ
! Batchαʔόʔͷ҆શͳ࠶ىಈ͕֬ೝͰ͖ ͨʂ
None
! productionڥʹө
! medpeer.jpͷRubyόʔδϣϯΞοϓΛ࣮ ࢪʂ 201910݄15ʢՐʣʹόʔδϣϯΞοϓ ྃ
None