Slide 1

Slide 1 text

HOW TO MANAGE THE COMPLEX WEBSERVICE ೔ຊ࠷େڃͷϑΝογϣϯ%#Λࢧ͑Δཪଆ VASILY,Inc. @kyuns dots. CONFERENCE SPRING 2016

Slide 2

Slide 2 text

ࠓଜխ޾ @kyuns / Ωϡϯ VASILY,Inc औక໾CTO / Co-Founder 2006೥Yahoo!JAPANʹೖࣾɺYahoo!FASHION΍ XBRANDͳͲͷαʔϏεͷ্ཱͪ͛ͷ։ൃΛ୲౰ɻ ϦίϝϯσʔγϣϯͷಛڐͳͲΛऔಘޙɺ 2009೥ʹಠཱɺVASILYΛ૑ۀɻऔక໾CTOʹब೚

Slide 3

Slide 3 text

ઃཱ: 2008೥11݄ ॴࡏ஍:౦ژ౎ौ୩۠ܙൺण1-18-14 ܙൺणϑΝʔετεΫΤΞ 9F ैۀһ: 50ਓ (ΤϯδχΞ20໊/ΠϯλʔϯؚΉ) ࢿຊۚ: 1ԯ
 ୅දऔక໾: ۚࢁ ༟थ
 औక໾:ࠓଜ խ޾ / ઍ༿ େี
 גओ: ҏ౻஧ςΫϊϩδʔϕϯνϟʔζ / KDDIגࣜձࣾ άϩʔϏεɾΩϟϐλϧɾύʔτφʔζ / GMOϕϯνϟʔύʔτφʔζ /גࣜձࣾߨஊࣾ

Slide 4

Slide 4 text

.BU[͞Μ͸ٕज़ސ໰

Slide 5

Slide 5 text

άϩʔεϋοΫຊͰ·ͨ͠

Slide 6

Slide 6 text

೔ຊதͷϑΝογϣϯ ECαΠτͷ঎඼σʔλΛܝࡌ ೔ຊ࠷େڃͷঁͷࢠͷͨΊͷ ϑΝογϣϯΞϓϦʮΞΠίϯʯ ձһ਺ 250ສਓ Google Play ϕετɾΦϒ 2015

Slide 7

Slide 7 text

ࣄۀΛࢧ͑Δຊப J20/ 1$41J04"OESPJE &$αΠτΫϩʔϥʔ
 ঎඼"1* ޿ࠂ഑৴ࣄۀ

Slide 8

Slide 8 text

"HFOEB ೔ຊ࠷େڃͷϑΝογϣϯ%#Λࢧ͑Δཪଆ ෳࡶͳ8FCαʔϏεΛ։ൃ͢Δ࣌ʹ
 ໾ཱͭઃܭ΍ख๏Λ஌ͬͯ΋Β͏

Slide 9

Slide 9 text

w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλ෼ੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ

Slide 10

Slide 10 text

ͭͷࣄྫ͔ΒֶͿϙΠϯτ w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλ෼ੳΛࢧ͑Δٕज़

Slide 11

Slide 11 text

"1*Λࢧ͑Δٕज़

Slide 12

Slide 12 text

J20/ͷ"1* ΞΠςϜ ίʔσΟωʔτ γϣοϓ Ϣʔβʔ ϒϥϯυ ͋ΒΏΔϑΝογϣϯ৘ใΛ֨ೲͨ͠"1* 8FCJ04"OESPJE"1*ఏڙઌ͔Βར༻͞Ε͍ͯΔ શͯͷϩδοΫ͕٧·ͬͨ.POPMJUIJDͳ"1* Ҏ্ͷ"1*ΤϯυϙΠϯτ͕͋ΔͨΊɺ ී௨ʹ࡞ΔͱΧΦεʹͳΔ

Slide 13

Slide 13 text

ڊେ8FCΞϓϦέʔγϣϯΛࢧ͑ΔϙΠϯτ w ΞϓϦέʔγϣϯͷઃܭ w .JDSP4FSWJDFT w %PDLFS

Slide 14

Slide 14 text

ΞϓϦέʔγϣϯͷઃܭ

Slide 15

Slide 15 text

3BJMTΞϓϦέʔγϣϯઃܭͷίπ w 3BJMTΛӡ༻͍ͯ͠Δͱ.PEFM͕ංେԽ͕ͪ͠ʹͳΔ w ղܾࡦͱͯ͠$POUSPMMFSͱ.PEFMͷؒʹ4FSWJDF૚Λಋೖ
 ˠ%PNBJO%SJWFO%FTJHO 3BJMT w .PEFMͷத͔Βผͷ.PEFMΛݺͼग़͍ͯ͠Δ΋ͷͳͲΛ ආ͚Δ IUUQRJJUBDPNKPPPFFJUFNTGEDEEGCGFC

Slide 16

Slide 16 text

4FSWJDF૚ͷҐஔ͚ͮ

Slide 17

Slide 17 text

MicroServices

Slide 18

Slide 18 text

MicroServices w ڊେͳ"1*͔ΒαʔϏεͱͯ͠੾Γग़ͤΔ෦෼Λ3&45 "1*ͱͯ͠੾Γ཭͢ w ͦΕͧΕͷػೳʹ͋ͬͨ04΍ݴޠΛબͿ͜ͱ͕Ͱ͖Δ w શͯΛ.JDSP4FSWJDFԽ͢Ε͹͍͍ͱ͍͏Θ͚Ͱ͸ͳ͍
 ύϑΥʔϚϯεͱͷτϨʔυΦϑ
 ద੾ͳίϯϙʔωϯτͷΈ੾Γ཭͢΂͖

Slide 19

Slide 19 text

ྫ: ը૾͔ΒͷΞΠςϜ൑ఆAPI w Ϋϩʔϥʔ͔Βར༻͍ͯ͠Δ(PPHMFͷ$MPVE 7JTJPO"1*ϥΠΫͳࣗ࡞"1* w ϕʔεͱͯ͠1ZUIPOΛ༻͍͍ͯΔͷͰ6CVOUV 1ZUIPO'MBTLͰ3&45"1*ͱͯ͠ߏங

Slide 20

Slide 20 text

%PDLFSͷ׆༻

Slide 21

Slide 21 text

޿ࠂ഑৴αʔόʔͰͷ%PDLFSࣄྫ EC2 SVCZ OHJOY NBDLFSFM qVFOUE AWS ElasticBeanstalk + Docker Auto Scaling ΠϯελϯεͷதͰ֤%PDLFSίϯςφΛMJOL

Slide 22

Slide 22 text

&MBTUJD#FBOTUBML%PDLFS ϦΫΤετ਺΍࣌ؒଳʹԠͯ͡Πϯελϯε਺Λ૿ݮͰ͖Δ
 Φʔτεέʔϧ 
 ֤ϛυϧ΢ΤΞ͕%PDLFSίϯςφʹͳ͍ͬͯΔͨΊ
 ϛυϧ΢ΣΞͷݸผΞοϓσʔτָ͕ SVCZ OHJOY NBDLFSFM qVFOUE SVCZ OHJOY NBDLFSFM qVFOUE SVCZͷίϯςφͷΈߋ৽ %PDLFSͷಛੑΛ׆͔͢

Slide 23

Slide 23 text

w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλ෼ੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ

Slide 24

Slide 24 text

ΫϩʔϥʔΛࢧ͑Δٕज़

Slide 25

Slide 25 text

঎඼Ϋϩʔϥʔ αΠτҎ্ɺສҎ্ͷΞΠςϜΛ ຖ೔Ϋϩʔϧ Ձ֨ɺࡏݿ৘ใͳͲΛऔಘ

Slide 26

Slide 26 text

ΫϩʔϥʔΛࢧ͑ΔϙΠϯτ w పఈతͳࣗಈԽ
 ΧςΰϦ൑ఆɺϒϥϯυ൑ఆɺը૾൑ఆɺը૾੾Γൈ͖ɺλ ά෇͚ɺ஋ஈมߋݕ஌ɺ͋ΒΏΔ෦෼Λࣗಈతʹ൑ఆॲཧ͢ Δ࢓૊ΈɺࣗಈԽΛపఈ w పఈతͳޮ཰Խ
 ΤϯδχΞͰͳͯ͘΋ΫϩʔϥʔΛ࡞ΕΔ(6*πʔϧΛ಺੡

Slide 27

Slide 27 text

ࣗಈԽେྔͷϑΝογϣϯΞΠςϜ෼ྨ w ΧςΰϦͷ൑ఆ΍λά෇͚ΛࣗಈԽ
 ਺ສޠͷϑΝογϣϯࣙॻػցֶश w ࠷ۙͰ͸$IBJOFSΛ༻͍ͯਂ૚ֶश ʢσΟʔϓϥʔχϯάʣΛߦ͍ը૾͔ ΒΧςΰϦ൑ఆ΋ߦ͍ͬͯΔ IUUQXXXTMJEFTIBSFOFU5BLFIJSP4IJP[BLJJRPO ϫϯϐʔε Ֆฑ τοϓε

Slide 28

Slide 28 text

σΟʔϓϥʔχϯάͰΧςΰϦ෼ྨ IUUQUFDIWBTJMZKQFOUSZGBTIJPOEFFQMFBSOJOH

Slide 29

Slide 29 text

Ϋϩʔϥʔ࡞੒πʔϧ w Ϋϩʔϥʔ࡞੒Λޮ཰Խ͢Δࣾ಺πʔϧ w ߲໨நग़ͷͨΊͷ91"5) จࣈྻૢ࡞ ਖ਼نදݱ౳ΛೖྗՄೳ w ೖྗσʔλͷϓϨϏϡʔػೳ΋౥ࡌ w ೉͍͠αΠτ͸SVCZͷίʔυ΋ϚʔδՄೳ

Slide 30

Slide 30 text

w "1*Λࢧ͑Δٕज़ w ΫϩʔϥʔΛࢧ͑Δٕज़ w σʔλ෼ੳΛࢧ͑Δٕज़ ͭͷࣄྫ͔ΒֶͿϙΠϯτ

Slide 31

Slide 31 text

σʔλ෼ੳΛࢧ͑Δٕज़

Slide 32

Slide 32 text

ϋΠϒϦουΫϥ΢υ ϝΠϯͷαʔϏεఏڙΠϯϑϥ σʔλ෼ੳج൫ͱͯ͠ͷΠϯϑϥ

Slide 33

Slide 33 text

BigQuery RDS Log Aggregater GoogleDataProc MongoDB GoogleDrive (SpreadSheet) API Server Web Server fluentd fluentd fluentd J20/ͷσʔλղੳج൫ iOS/Android Puree 1VSFF౳Λར༻ͯ͠ड͚औͬͨϩά͸શͯqVFOEܦ༝Ͱ#JH2VFSZ΁ 1VSFFIUUQUFDIMJGFDPPLQBEDPNFOUSZ

Slide 34

Slide 34 text

ϩάσʔλετϨʔδ w શͯͷσʔλ΍ϩά͸#JH2VFSZʹอଘ IUUQUFDIWBTJMZKQFOUSZCJHRVFSZ@EBUB@QMBUGPSN

Slide 35

Slide 35 text

BigQuery (PPHMF͕ఏڙ͢ΔϑϧϚωʔδυσʔλ෼ੳαʔϏε
 ѹ౗తʹ؆୯଎͍͍҆ w ΞϓϦ1$εϚϗͷߦಈϩά w Ϛελʔ%#σʔλ GSPN3%4 w Ϋϩʔϥʔͷશϩά w ϦίϝϯυΤϯδϯͷܭࢉ݁Ռ ͋ΒΏΔϩάΛͱʹ͔͘อଘ

Slide 36

Slide 36 text

ؾʹͳΔྉۚ w ετϨʔδ(# w ετϦʔϛϯάΠϯαʔτ. w ΫΤϦྔ5# 
 J20/ͷ݄ؒར༻ঢ়گ w ෼ੳΫΤϦྔ5# w ࢖༻ετϨʔδྔ5# ࣌఺

Slide 37

Slide 37 text

ෳࡶͳσʔλ෼ੳ͸5BCMFBVͰ #JH2VFSZ΍3%4΋ϦΞϧλΠϜʹ௚઀ѻ͑Δ ࡉ͔͍σʔλ෼ੳ͸5BCMFBV%FTLUPQ ࣾ಺Ͱͷσʔλڞ༗ʹ͸5BCMFBV4FSWFS

Slide 38

Slide 38 text

ෳࡶͳσʔλܭࢉ͸%BUBQSPDͰ (PPHMF͕ఏڙ͢Δ)BEPPQ΍4QBSLͷϚωʔδυαʔϏε J20/Ͱ͸4QBSL :"3/ Λ༻͍ͨϦίϝϯσʔγϣϯͷ ܭࢉʹར༻ ࣗલͰ)BEPPQΫϥελΛ૊·ͳ͍͍ͯ͘ͷͰศར σʔλιʔεͱͯ͠#JH2VFSZΛར༻Մೳ

Slide 39

Slide 39 text

ࣗಈԽෳࡶͳόονॲཧ͸"JS'MPXͰ "JSCOC͕ࣾ։ൃͨ͠όονॲཧ࣮ߦϑϨʔϜϫʔΫ ෳ਺ͷδϣϒͷґଘؔ܎ͷղܾ΍ ϦτϥΠॲཧͳͲΛ͏·͘΍ͬͯ͘ΕΔ IUUQTHJUIVCDPNBJSCOCBJSqPX

Slide 40

Slide 40 text

·ͱΊ w "1*Λࢧ͑Δٕज़
 %%%.JDSP4FSWJDFT%PDLFS w ΫϩʔϥʔΛࢧ͑Δٕज़
 ࣗಈԽޮ཰Խ w σʔλ෼ੳΛࢧ͑Δٕज़
 ($1#JH2VFSZ5BCMFBV%BUBQSPD

Slide 41

Slide 41 text

8F`SF)JSJOH 7"4*-:͸ςΫϊϩδʔͰ ϑΝογϣϯͷੈքΛม͑Α͏ͱ͍ͯ͠ΔձࣾͰ͢ νϟϨϯδͯ͠Έ͍ͨਓΛ ͓଴͓ͪͯ͠Γ·͢ IUUQWBTJMZKQ ઈࢍ৽نࣄۀ։ൃதʂ