Slide 1

Slide 1 text

ڊେԽͨ͠ϞϊϦε Applicationͷ҆શͳRuby όʔδϣϯΞοϓ Takashi, Miyahara MedPeer, Inc. DCP Division, Platform Development Group. 2019/10/30 Meetup for Rails engineers

Slide 2

Slide 2 text

ࣗݾ঺հ Nameɿٶݪ ਸࢤ(@TakashiMiyahara) Jobɿҩࢣઐ༻ίϛϡχςΟαΠτ ʮMedPeerʯͷ։ൃ Hobbyɿࣗ࡞ΩʔϘʔυ One ThingɿॳొஃͰ͢ʂʂ

Slide 3

Slide 3 text

ձࣾ঺հ

Slide 4

Slide 4 text

ձࣾ঺հ

Slide 5

Slide 5 text

ձࣾ঺հ

Slide 6

Slide 6 text

ձࣾ঺հ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

! όʔδϣϯΞοϓͷखॱ 1. ։ൃ؀ڥΛRuby2.6Խɺ֤छهड़Λमਖ਼ 2. ECSͷΠϝʔδΛϏϧυˍΞοϓϩʔυ 3. खݩɾCIʹͯಈ࡞֬ೝˍςετ 4. staging؀ڥʹ൓ө͠ɺಈ࡞ݕূ 5. production؀ڥʹ൓ө

Slide 10

Slide 10 text

! όʔδϣϯΞοϓ։࢝ ๻ʮRubyͷόʔδϣϯΞοϓؤுΔͧͬ ! ʯ

Slide 11

Slide 11 text

! खݩɾCIʹͯಈ࡞֬ೝˍςετ ๻ʮϩʔΧϧɾCI؀ڥͰςετશ෦ύε͠ ͨͧʂ ! ʯ

Slide 12

Slide 12 text

! 8݄๭೔ CI͕ίέͨʂʂ

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

! 8݄๭೔ ๻ʮͨ·ʹམͪΔςετ͔ͳʁʯ CIʮReceived 'killed' signalʯ ๻ʮ....ʯ

Slide 15

Slide 15 text

! 8݄๭೔

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

! 8݄๭೔ ݪҼͷίʔυΛൃݟ

Slide 18

Slide 18 text

! Durationͷόά Range#stepʹ ActiveSupport::DurationΛ౉͍ͯ͠Δ ෦෼Ͱɺੑೳ͕਺ेഒʙ਺ඦഒʹѱԽ Rubyɿ2.6.3, 2.6.4, 2.6.5 Railsɿ5.2.3 ActiveSupportɿ5.2.3

Slide 19

Slide 19 text

! ࠶ݱͤ͞ΔͨΊͷ࠷খͷίʔυ

Slide 20

Slide 20 text

! Rubyຖͷ࣮ߦ଎౓ͷ֬ೝ Ruby 2.5.3 Ruby 2.6.3 2.1e-05 s 11.550944 s ๻ʮRuby 2.6Λ࢖͏ͱѹ౗తʹ஗͘ͳΔ ͳ͊...ʯ

Slide 21

Slide 21 text

! Range#stepͷݕূ

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

! ࣮ߦ݁Ռ Ruby2.6ܥͱRails5.2ܥͷ૊Έ߹ΘͤͰ͸ɺ ύϑΥʔϚϯε͕ѹ౗తʹѱԽ͠·͢

Slide 24

Slide 24 text

! όάͷݪҼ Ruby 2.6͔Βrange.step(n)͕ Enumerator::ArithmeticSequenceΛ ฦ͢Α͏ʹͳͬͨ → ҙਤ͠ͳ͍σʔλߏ଄ʹมԽ → DurationͷՃࢉܭࢉྔ͕ϧʔϓؔ਺ʹ ରͯ͠ࢦ਺ؔ਺తʹ૿Ճ

Slide 25

Slide 25 text

! όάͷݱঢ় Rails6Ͱ͸मਖ਼͞Ε͍ͯΔΑ͏Ͱ͢

Slide 26

Slide 26 text

! όάͷमਖ਼ํ๏

Slide 27

Slide 27 text

! ௚ͬͨʂ

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

! 9݄๭೔

Slide 30

Slide 30 text

! 9݄๭೔

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

! 9݄๭೔ ๻ʮBatchαʔόʔΛ҆શʹ࠶ىಈ͠ͳ͍ ͱɺJobΛਖ਼࣮͘͠ߦͰ͖ͳ͍ͧ...ʯ

Slide 33

Slide 33 text

! Sidekiq Jobͷ҆શͳ࠶ىಈ 1. ࣮ߦதͷJobΛ͢΂࣮ͯߦ͖ͤ͞Δ 2. Sidekiqͷleaderϓϩηε্ཱ͕͕ͪΒͳ ͤ͘͞Δ 3. SidekiqͷleaderϓϩηεΛఀࢭ 4. Masterϓϩηε͔ΒleaderϓϩηεΛى ಈ

Slide 34

Slide 34 text

! ಈ͍͍ͯΔJobΛ֬ೝ

Slide 35

Slide 35 text

! Sidekiqͷleaderϓϩηε্ཱ͕͕ͪΒͳ ͤ͘͞Δ

Slide 36

Slide 36 text

! Sidekiq Jobͷঢ়ଶΛ؂ࢹ

Slide 37

Slide 37 text

! SidekiqͷleaderϓϩηεΛఀࢭ

Slide 38

Slide 38 text

! SidekiqͷleaderϓϩηεΛఀࢭˠىಈ

Slide 39

Slide 39 text

! Sidekiqͷঢ়ଶΛ֬ೝ

Slide 40

Slide 40 text

! Batchαʔόʔͷ҆શͳ࠶ىಈ͕֬ೝͰ͖ ͨʂ

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

! production؀ڥʹ൓ө

Slide 43

Slide 43 text

! medpeer.jpͷRubyόʔδϣϯΞοϓΛ࣮ ࢪʂ 2019೥10݄15೔ʢՐʣʹόʔδϣϯΞοϓ ׬ྃ

Slide 44

Slide 44 text

No content