Slide 1

Slide 1 text

∁ੴྒ / GMO Pepabo, Inc. 2018-04-24 LINE Developer Meetup #32 ʙΞΫηεස౓༧ଌΛ༻͍ͯαʔόʔΛࣗಈ૿ݮ͢ΔʮܭըతεέʔϦϯάʯͦͷޙʙ ͜Μͳ͜ͱ΋͋Ζ͏͔ͱɺ αʔόʔ͸༧Ί૿΍ͯ͠ஔ͍ͨ

Slide 2

Slide 2 text

ιϑτ΢ΣΞΤϯδχΞ ∁ੴ ྒ / @r_takaishi https://repl.info/ TAKAISHI Ryo ٕज़෦ ٕज़ج൫νʔϜ

Slide 3

Slide 3 text

ΩϟύγςΟϓϥϯχϯά

Slide 4

Slide 4 text

μ΢ϯ͠ͳ͍ෛՙΛ͞͹͘ ແବͳ͘ద੾ͳϦιʔεΛ഑ஔ͢Δ

Slide 5

Slide 5 text

!5 • ϐʔΫλΠϜʹ͋Θͤͯ୆਺Λܾఆ • ϝσΟΞ࿐ग़ɾΩϟϯϖʔϯ࣌ʹ͸ݸผʹ૿ઃ ΞϓϦέʔγϣϯαʔόʔͷ৔߹@minne

Slide 6

Slide 6 text

!6 ϐʔΫλΠϜʹ͋Θͤͯ୆਺Λઃఆ͢Δ৔߹ ࣌ؒ ΞΫηεස౓ʢਖ਼نԽࡁʣ αʔόʔ୆਺

Slide 7

Slide 7 text

ΞΫηε͕গͳ͍࣌ؒ͸αʔόʔ ୆਺Λ͍͍ײ͡ʹݮΒ͍ͨ͠

Slide 8

Slide 8 text

ΞΫηε͕ଟ͍࣌ؒ͸ͦΕΛࡹ͚ ΔΑ͏ͳαʔόʔ୆਺ʹ͍ͨ͠

Slide 9

Slide 9 text

ෛՙʹԠͯ͡ Φʔτεέʔϧ͢Ε͹͍͍

Slide 10

Slide 10 text

!10 • ϐʔΫ࣌ͷෛՙ͸ॠؒతʹൃੜ͢ΔͨΊɺݕ஌ͯ͠ ͔ΒͷεέʔϧΞ΢τͰ͸ؒʹ߹Θͳ͍ • αʔόʔͷىಈʙαʔϏεΠϯʹ͔͔ΔλΠϜϥά • Ծ૝Ϛγϯͷىಈ • ىಈ࣌ʹ࠷৽ͷΞϓϦέʔγϣϯίʔυΛσϓϩΠ ෛՙΛݕ஌ͯ͠Φʔτεέʔϧ͢Δख๏

Slide 11

Slide 11 text

ͳ͔ͳ͔೉͍͠ʜ

Slide 12

Slide 12 text

ͱࢥ͍ͬͯͨΒɺ೥ͷ಄ʹ

Slide 13

Slide 13 text

͍͍΋ͷ͋ΔΑ…ʂ

Slide 14

Slide 14 text

ࡾ୐ݚڀॴһʹΑΔ ఏҊख๏

Slide 15

Slide 15 text

ΞΫηεස౓༧ଌΛ༻͍ͨ ܭըతεέʔϦϯά

Slide 16

Slide 16 text

͜Ε·Ͱ஝ੵ͖ͯͨ͠ ΞΫηεϩάΛ࢖ͬͯ ະདྷͷΞΫηεස౓Λ༧ଌ͢Δ

Slide 17

Slide 17 text

ࣄલʹΞΫηεස౓͕Θ͔Ε͹ɺ ඞཁͳαʔόʔ୆਺΋Θ͔Δ

Slide 18

Slide 18 text

• minneͰ͸ΞΫηεϩάɾߦಈϩάΛอଘ͍ͯ͠Δ • ྫ͑͹աڈ1ϲ݄ؒɺ1࣌ؒ୯ҐͷΞΫηεස౓͕Θ͔Δ • ͜ͷ࣌ܥྻσʔλΛ༻͍ͯɺະདྷͷΞΫηεස౓Λ༧ଌ͢Δ • ࣄલʹΞΫηεස౓͕Θ͔Ε͹ɺॲཧՄೳͳ୆਺ʹ૿ݮͰ͖Δ !18 Ͳ͏͍͏΋ͷ͔ͬ͘͟Γ

Slide 19

Slide 19 text

• minneͰ͸ΞΫηεϩάɾߦಈϩάΛอଘ͍ͯ͠Δ • ྫ͑͹աڈ1ϲ݄ؒɺ1࣌ؒ୯ҐͷΞΫηεස౓͕Θ͔Δ • ͜ͷ࣌ܥྻσʔλΛ༻͍ͯɺະདྷͷΞΫηεස౓Λ༧ଌ͢Δ • ࣄલʹΞΫηεස౓͕Θ͔Ε͹ɺॲཧՄೳͳ୆਺ʹ૿ݮͰ͖Δ !19 Ͳ͏͍͏΋ͷ͔ͬ͘͟Γ ࠓ೔࿩͢ͷ͸ɺಛʹ͜ͷ෦෼

Slide 20

Slide 20 text

!20 ϩάऩू෦෼͕ؾʹͳΔํ͸εϥΠυΛνΣοΫʂ IUUQTTQFBLFSEFDLDPNNPOPDISPNFHBOFQFQBCPMPHJOGSBTUSVDUVSFCJHGPPU

Slide 21

Slide 21 text

!21 ༧ଌʹ͍ͭͯؾʹͳΔํ͸ϖύݚϒϩάΛνΣοΫʂ IUUQTSBOEQFQBCPDPNBSUJDMFJPUNJZBLFZ

Slide 22

Slide 22 text

ͱ͍͏Θ͚Ͱ ࡞͍ͬͯͧ͘

Slide 23

Slide 23 text

!23 • ΞΫηεස౓༧ଌ܅ʢϖύݚʣ • αʔόʔ୆਺ܭࢉɾ૿ݮ܅ʢminneʣ ඞཁͳίϯϙʔωϯτ͸Կ͔ʁ

Slide 24

Slide 24 text

!24 ͜Ε͕ܭըతεέʔϦϯάͷߏ੒ͩʂ cron Redis ΞΫηεස౓༧ଌ܅ (Sidekiq) IaaS API Endpoint ༧ଌΞΫηε਺ͷऔಘ ఆظ࣮ߦ αʔόʔ୆਺ܭࢉɾ૿ݮ܅ (hakata) ඞཁαʔόʔ୆਺Λܭࢉɾ૿ݮ ༧૝ΞΫηεස౓Λอଘ

Slide 25

Slide 25 text

!25 ܭըతεέʔϦϯάͷྲྀΕ ࣌ ࣌ ࣌ ࣌ ຖ೔0࣌ա͗ɿ 1೔෼ͷΞΫηεස౓Λ༧ଌ͢ΔΑ ຖ࣌40෼࣌ա͗ɿ ࣍ͷ1࣌ؒͷΞΫηεස౓༧ଌ͔Βαʔόʔ୆਺Λ૿ݮ͢ΔΑ

Slide 26

Slide 26 text

• ༧ଌΞΫηεස౓(ϦΫΤετ਺/࣌)Λϕʔεͱ͢Δ • αʔόʔ͕ৗʹҰఆͷεϧʔϓοτ(rpm)Λอͭ୆਺Λ໨ࢦ͢ • εϧʔϓοτظ଴஋(rpm)͸NewRelicͷϝτϦΫε͔Βࢉग़ !26 ඞཁαʔόʔ਺ͷܭࢉ ඞཁ୆਺༧ଌΞΫηεස౓εϧʔϓοτظ଴஋

Slide 27

Slide 27 text

!27 • ༧ଌΞΫηεස౓ɿ60,000 ϦΫΤετ/࣌ • εϧʔϓοτظ଴஋ɿ1,000 rpm αʔόʔ୆਺ܭࢉͷྫ ඞཁ୆਺༧ଌΞΫηεස౓εϧʔϓοτظ଴஋

Slide 28

Slide 28 text

• ʮΞΫηεස౓༧ଌʯͱʮϦιʔεྔܭࢉɾ૿ݮʯͷ2͕ͭඞཁ • ΞΫηεස౓༧ଌ͸1೔ʹ1ճ • Ϧιʔε૿ݮͷλΠϛϯά͸1࣌ؒʹ1ճ • Ϧιʔεྔܭࢉ͸༧ଌ஋ͱεϧʔϓοτظ଴஋Λݩʹܭࢉ !28 ܭըతεέʔϦϯάͷઃܭ·ͱΊ

Slide 29

Slide 29 text

ධՁɾ՝୊

Slide 30

Slide 30 text

!30 ΞϓϦέʔγϣϯαʔόʔͷCPU࢖༻཰ ܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ

Slide 31

Slide 31 text

!31 ΞϓϦέʔγϣϯαʔόʔ୆਺ͷભҠ ܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ

Slide 32

Slide 32 text

݁ߏ͍͍͔Μ͡ʹಈ͍͕ͨʜ

Slide 33

Slide 33 text

͍͔ͭ͘՝୊΋

Slide 34

Slide 34 text

!34 • ༧ଌͷਫ਼౓௿ԼʹΑΔϦιʔεෆ଍ • ༧ଌʹݱΕͳ͍ΞΫηε΁ͷରԠ • εέʔϧΞ΢τ͕ؒʹ߹Θͳ͍έʔε ՝୊

Slide 35

Slide 35 text

͜͜·Ͱ͸೥ͷ࿩

Slide 36

Slide 36 text

ผ࡞ۀͷͨΊɺ Ұ࣌తʹఀࢭ͍ͯͨ͠

Slide 37

Slide 37 text

݄ࠒ͔Βվળʹணख

Slide 38

Slide 38 text

εέʔϧΞ΢τ ͕ؒʹ߹Θͳ͍໰୊

Slide 39

Slide 39 text

!39 • αʔόʔىಈ࣌ʹΞϓϦέʔγϣϯͷίʔυΛऔಘɾ ల։͓ͯ͠ΓɺϘτϧωοΫͱͳ͍ͬͯΔ • ࠷৽Πϝʔδ ≠ ࠷৽ΞϓϦ • ΞϓϦͷϥΠϑαΠΫϧ ≠ αʔόʔͷϥΠϑαΠΫϧ ͳͥɺεέʔϧΞ΢τ͕ؒʹ߹Θͳ͍ͷ͔ʁ

Slide 40

Slide 40 text

!40 ϥΠϑαΠΫϧ CentOS minimal www www build minimal image build www image image lifecycle server lifecycle install puppet apply puppet deploy minne-app launch www server www deploy minne-app terminate www server deleted release minne-app

Slide 41

Slide 41 text

!41 • ࠷৽ΞϓϦ = ࠷৽ΠϝʔδΛ໨ࢦ͢ • ϦϦʔε࣌ʹΠϝʔδΛϏϧυ͠ɺ࠷৽ͷΞϓϦΛ ؚΉΑ͏ʹ͢Δ ϦϦʔε࣌ʹΠϝʔδΛϏϧυ͢Δ

Slide 42

Slide 42 text

!42 • baseΠϝʔδͷϏϧυ • wwwΠϝʔδͷϏϧυ • wwwΠϝʔδͷݕࠪ • αʔόʔͱͯ͠ىಈ͢Δͷ͔ʁ • ىಈͨ͠ޙɺͪΌΜͱ֤ϓϩηε͕ಈ͍ͯΞΫηεͰ͖Δ͔ʁ ΠϝʔδϏϧυʹඞཁͳ΋ͷ͸…ʁ

Slide 43

Slide 43 text

!43 ͍͍͔Μ͡ʹΠϝʔδΛϏϧυͯ͘͠ΕΔ΍ͭ hakata workflow - build - push - verify notify run खݩ͔Βssh࣮ͯ͠ߦ ΞϓϦͷϦϦʔε࣌ʹϏϧυ IaaCͷϦϦʔε࣌ʹϏϧυ

Slide 44

Slide 44 text

࣮૷ͯ͠ɺಈ࡞Λ֬ೝ ࠷৽ΞϓϦ࠷৽Πϝʔδ✨

Slide 45

Slide 45 text

ܭըతεέʔϦϯάΛ࠶Քಇͯ͠ɺ վળ͞Ε͔ͨݕূͨ͠

Slide 46

Slide 46 text

ܭըతεέʔϦϯάΛ࠶Քಇͯ͠ɺ վળ͞Ε͔ͨݕূͨ͠

Slide 47

Slide 47 text

!47 • ΠϝʔδͷࣗಈϏϧυʹࢥͬͨΑΓ͕͔͔࣌ؒͬͨ • ࠶Քಇ͠Α͏ͱͨ͠Β͍Ζ͍Ζಈ͔ͣbug fix ࠶Քಇ͸͜ͷMeetupʹؒʹ߹Θͣ…

Slide 48

Slide 48 text

ࠓޙʹ͝ظ଴͍ͩ͘͞ʂ

Slide 49

Slide 49 text

·ͱΊ

Slide 50

Slide 50 text

!50 • ΞΫηεස౓༧ଌΛ༻͍ɺΞΫηε͕૿͑ΔલʹΦʔ τεέʔϧ • ϖύݚͱ࿈ܞɾ෼୲͠ɺ࣮ݱ • ࢼݧӡ༻͠ɺ՝୊Λચ͍ग़ͨ͠ • ͕ɺվળ·Ͱ͸Ͱ͖ͣ… ·ͱΊ

Slide 51

Slide 51 text

Α͔ͬͨ͜ͱ

Slide 52

Slide 52 text

!52 • ϖύݚͱ࿈ܞ͠ɺ৽ٕज़Λ࣮ࡍͷαʔϏεʹಋೖ • Φʔτεέʔϧʹ͍ͭͯͷ஌ݟΛಘΔ͜ͱ͕Ͱ͖ͨ Α͔ͬͨ͜ͱ

Slide 53

Slide 53 text

!53 • ࢓૊Έͷ൚༻Խ • ࠓճ͸IaaS্Ͱ࡞͕ͬͨɺ࢓૊Έࣗମ͸ଞͰ΋࢖͑Δ • ྫɿKubernetesͷΑ͏ͳίϯςφج൫΁ͷల։ • ༧ଌʹݱΕͳ͍ΞΫηε΁ͷରԠ • ෛՙΛτϦΨʔͱͨ͠εέʔϧΞ΢τ ࠓޙ΍͍͖͍ͬͯͨ͜ͱ

Slide 54

Slide 54 text

We are hiring! ϗεςΟϯάαʔϏεͰ৽ٕज़Λ׆༻ ΢ΣϒαʔϏεͷ4JUF3FMJBCJMJUZ&OHJOFFSJOH શࣾతͳٕज़ج൫Λ͕ͬͭΓ ࣄۀΛࠩผԽͰ͖Δٕज़Λ࡞Γग़͍ͨ͠ FUDʜ