Slide 1

Slide 1 text

-*/&όΠτͷϦχϡʔΞϧ ։ൃʹ͍ͭͯ 4IJOKJ'VTBOPCV!-*/&'VLVPLB -*/&%FWFMPQFS.FFUVQ

Slide 2

Slide 2 text

γεςϜͷϦχϡʔΞϧ ͯ͠·͔͢ʁ

Slide 3

Slide 3 text

γεςϜϦχϡʔΞϧ ͱ͜͜ͰݺͿ΋ͷ ͷྫ • ։ൃݴޠϑϨʔϜϫʔΫͷϝδϟʔόʔδϣϯΞοϓ • ϑϨʔϜϫʔΫͷೖΕସ͑ • γεςϜͷϚΠΫϩαʔϏεԽ • ։ൃݴޠͷมߋ • FUDʜ

Slide 4

Slide 4 text

ࣜ೥ભٶ 4IJLJ/FO4FO(V • ೥ଓ͍͍ͯΔɺҏ੎ਆٶͷ఼ࣾΛ೥͓͖ʹ଄Γସ͑Δ఻౷ͷߦࣄɻ • ಉٕ͡ज़Λ༻͍ͯ࠶ݐ͢Δ͜ͱͰɺ఻౷ݐஙٕज़͕఻ঝ͞Ε͍ͯΔɻ ʢ৽͍͠ΞʔΩςΫνϟΛಋೖ͢Δͱ͍͏఺Ͱ͸ຊηογϣϯͱগ͠ҙຯ߹͍͸ҟͳΓ·͕͢ʣ ত࿨࢛೥౓ޚભٶֆר ਆٶͷത෺ؗ IUUQNVTFVNJTFKJOHVPSKQNVTFVNDPMMFDUJPOIUNM

Slide 5

Slide 5 text

-*/&όΠτͱͦͷ։ൃʹ͍ͭͯ େن໛γεςϜϦχϡʔΞϧΛߦ͏·Ͱͷ࿩ େن໛γεςϜϦχϡʔΞϧΛߦͬͨ࿩ ৽γεςϜߏ੒ʹ͓͚Δ͋Ε͜Ε ·ͱΊ 1. 2. 3. 4. 5. Agenda

Slide 6

Slide 6 text

-*/&όΠτͱͦͷ։ൃʹ͍ͭͯ

Slide 7

Slide 7 text

-*/&όΠτͱ͸ • -*/&ΞϓϦ্͔ΒखܰʹӾཡɾԠืՄೳͳΞϧόΠτٻਓ৘ใαʔϏε • -*/&ΞϓϦ  -*/&ެࣜΞΧ΢ϯτܦ༝ • ϒϥ΢β൛ IUUQTCBJUPMJOFNF • ೥αʔϏε։࢝ • ొ࿥ձһສਓҎ্ ˞ • ٻਓ৘ใສ݅Ҏ্ ˞ ˞ ೥݄࣌఺ • ೥݄ʹϦχϡʔΞϧ

Slide 8

Slide 8 text

-*/&όΠτͷ։ൃମ੍ • ϦχϡʔΞϧ։ൃલ ʙ • -*/&'VLVPLBͰαʔόαΠυ։ൃΛ୲౰ • ϑϩϯτΤϯυ։ൃ͸෱Ԭ౦ژ • اըɾϚʔέςΟϯά͸౦ژ • ։ൃΤϯδχΞ͸ d ਓن໛ • ͦͷଞ • ։ൃࢧԉνʔϜ ෱Ԭ ɾ ୲౰%#" ౦ژ ͷαϙʔτ • %BUB-BCT ౦ژ ͱͷ࿈ܞ ෱Ԭ αʔόαΠυΤϯδχΞ ϑϩϯτΤϯυΤϯδχΞ 2" ౦ژ اը ϚʔέςΟϯά ϑϩϯτΤϯυΤϯδχΞ

Slide 9

Slide 9 text

-*/&όΠτͷ։ൃମ੍  • ϦχϡʔΞϧ։ൃҎ߱ ʙ • ౦ژͱ෱ԬͰαʔόαΠυ։ൃΛ୲౰ • ϑϩϯτΤϯυ։ൃ͸ -*/&(SPXUI5FDIOPMPHZ ͷ෱Ԭ։ൃνʔϜ • اըɾϚʔέςΟϯά͸౦ژ • ։ൃΤϯδχΞ͸ਓલޙ • ͦͷଞ • ։ൃࢧԉνʔϜ ౦ژ ɾ ୲౰%#" ౦ژ ͷαϙʔτ • %BUB-BCT ౦ژ ͱͷ࿈ܞ ෱Ԭ αʔόαΠυΤϯδχΞ ϑϩϯτΤϯυΤϯδχΞ 2" ౦ژ اը ϚʔέςΟϯά αʔόαΠυΤϯδχΞ

Slide 10

Slide 10 text

େن໛γεςϜϦχϡʔΞϧΛߦ͏·Ͱͷ࿩

Slide 11

Slide 11 text

ϦχϡʔΞϧҎલͷγεςϜߏ੒ ʙ • αʔϏε։࢝࣌ ೥ʙ ͷΞʔΩςΫνϟΛܧঝ • +BWB • αʔόαΠυ͸γϯϓϧɾܰྔͳ 8FCϑϨʔϜ ϫʔΫ "WBOT • ϑϩϯτΤϯυ͸ #BDLCPOFKT ,OPDLPVUKT Tomcat / Jetty Apache / nginx Guice Lombok Jackson Backbone.js TinyORM Avans MySQL Elastic search Redis • $IBOOFM8FC"QQαʔό Y -*/&ΞϓϦܦ༝ • #SPXTFS"QQαʔό Y • #PUαʔό Y • όοναʔό Y • ࣾ಺$.4αʔό Y • ࣾ֎࿈ܞαʔό Y LINE CDN LB

Slide 12

Slide 12 text

چγεςϜͷ՝୊ • ϞμϯͳϑϨʔϜϫʔΫ͕ਐԽ͢ΔԸܙʹ͔͋ͣΕͳ͍ • ྺ࢙తͳੵΈ্͕͛ଟ͘ػೳ࢓༷Λ೺Ѳ͢Δͷ͕େม • اըଆɾ։ൃଆͱ΋ʹ΄΅ϝϯόʔ͕ೖΕସΘ͍ͬͯΔ • ϦϑΝΫλ͕๬·ΕΔίʔυ͕ଟ਺

Slide 13

Slide 13 text

γεςϜϦχϡʔΞϧΛߦ͏ ϝϦοτɾσϝϦοτ ॴײ • ϝϦοτ • ࠷৽ͷΞʔΩςΫνϟʹΑΔػೳ΍։ൃੜ࢈ੑΛಘΒΕΔ • طଘͷ࣮૷Λ࠶ઃܭɾϦϑΝΫλͰ͖Δ • σϝϦοτ • ৽ػೳ։ൃʹ޲͚ΒΕͨ͸ͣͷϦιʔεΛׂ͘ඞཁ͕͋Δ • ։ൃੜ࢈ੑ޲্ʹΑΔརӹ͕ॳظ౤ࢿΛ্ճΔ·Ͱ͸੺ࣈ • Ͳ͜·Ͱ͕ڐ༰ൣғͳͷ͔Λࣄલʹ͢Γ߹Θ͓͔ͤͯͳ͍ͱ൵͍͜͠ͱʹ U ˞Πϝʔδਤ

Slide 14

Slide 14 text

೥ʹҰ౓γεςϜϦχϡʔΞϧʹ௅ઓ • "WBOT Λ 4QSJOH#PPUʹҠߦ͢Δ • 5JOZ03. Λ .Z#BUJT ʹҠߦ͢Δ • 41"Λ΍ΊΔ 5IZNFMFBG ͰϨϯμϦϯά • %#ఆٛ΍ "1*ΤϯυϙΠϯτ͸ͦͷ··ܧଓ • چγεςϜͱಉ࣌ʹӡ༻͠ɺΤϯυϙΠϯτ͝ͱʹঃʑʹҠߦ͢Δ • ίʔυωʔϜ (BOEIBSB Ψϯμʔϥ

Slide 15

Slide 15 text

͔͠͠ɺ్தͰҠߦ։ൃఀࢭ • ։ൃϦιʔεͷ౎߹্ɺ్தͰҠߦ։ൃ͸ετοϓ • ݁ՌɺچγεςϜ ৽γεςϜ͕ฒߦՔಈͨ͠ঢ়گͰ αʔϏεΛଓ͚Δ͜ͱʹ ۀ຿ཁ݅Λ൐Θͳ͍γεςϜϦχϡʔΞϧΛ਱ߦ͢Δͷ͸೉͍͠ʜ

Slide 16

Slide 16 text

େن໛γεςϜϦχϡʔΞϧΛߦͬͨ࿩

Slide 17

Slide 17 text

ೋ౓໨ͷϦχϡʔΞϧܭը ʙ • ఏܞύʔτφʔͷมߋʹ൐͍ɺ೥݄຤·Ͱ ʹେ෯ͳվमΛࢪͨ͠ϦϦʔε͕ඞཁʹͳͬͨ • Өڹൣғ͕େ͖͗͢ΔͨΊɺطଘίʔυͷվमͰ͸ ͳ͘ϑϧεΫϥονͰશ໘վमΛߦ͏͜ͱʹ

Slide 18

Slide 18 text

ཁ݅ • ٻਓσʔλ࿈ܞॲཧͷશ໘࡞Γ௚͠ • Ԡื࿈ܞॲཧͷશ໘࡞Γ௚͠ • %#ఆٛ͸͢΂ͯ࠶ઃܭͭͭ͠ɺສͷطଘձһσʔλ͸Ҿ͖ܧ͙ • ϑϩϯτΤϯυଆ͸طଘͷσβΠϯΛ౿ऻͯ͠࡞Γ௚͠ • ϦϦʔε͸೥݄຤ʢඞୡʣ • ίʔυωʔϜ 5JHFS λΠΨʔ

Slide 19

Slide 19 text

։ൃํ਑ • αʔόαΠυ • +BWB ਖ਼ࣜϦϦʔεࡁ • 4QSJOH#PPUʢʣ • .Z42-&MBTUJDTFBSDI3FEJT  ,BGLB • -*/& ΞϓϦܦ༝΋֎෦ϒϥ΢βܦ༝΋ಉ͡γεςϜͰ࣮ߦ • ϑϩϯτΤϯυ • 3FBDU 3FEVYCZ5ZQF4DSJQU • TUZMFEDPNQPOFOUT • /PEFKTαʔόΛฒ΂ͯϦΫΤετΛड͚Δ

Slide 20

Slide 20 text

৽γεςϜߏ੒ਤ LINE Internal Services Spring Boot 2 w/ Tomcat nginx Lombok Jackson React MyBatis Spring MVC MySQL Elastic search Redis LB nginx Node.js LB AspectJ Common API Personal API (Kafka) • -*/&-PHJO • ֤छ "1* .FTTBHJOH 5JNFMJOF FUD • ࣾ಺Ϋϥ΢υετϨʔδαʔϏε • $FOUSBM%PHNB  • ϑϩϯταʔό Y • 8FC"QQαʔό Y • #PUαʔό Y • όοναʔό Y • ࣾ಺$.4αʔό Y • ࣾ֎࿈ܞαʔό Y ˞ • ,BGLBXPSLFSY ˞ ˞ޙ೔ϦϦʔε

Slide 21

Slide 21 text

৽γεςϜ΁ͷϦϓϨʔεͷྲྀΕ  ϦϦʔεલ  چ%#ͷσʔλΛ৽%#ʹϚΠάϨʔγϣϯ ޙड़  ৽αʔό؂ࢹઃఆʢ౰೔·Ͱ 4JMFODF  ϦϦʔε౰೔  ؂ࢹఀࢭ  OHJOYଆͰϝϯςϞʔυʹҠߦ  $IBOOFMͷ &OUSZ63-Λมߋ  #PU8FCIPPLఀࢭɺ8FCIPPL63-มߋ  ϒϥ΢β޲͚ 63-ͷ %/4มߋ  %#ϚΠάϨʔγϣϯޙͷࠩ෼Λ࠶౓ಉظ  ಈ࡞֬ೝɺ2"  OHJOYଆͰϝϯςϞʔυղআ  ؂ࢹ࠶։  #PU8FCIPPL࠶։  #PU2"

Slide 22

Slide 22 text

%#ϚΠάϨʔγϣϯܭը • σʔλܗࣜͷมߋ΍҉߸ԽॲཧͷͨΊɺ42-Ͱ͸ͳ͘ΞϓϦଆͰσʔλΛҠߦ • ݩʑ͸౰೔ͷϝϯςೖΓޙʹશσʔλΛҠߦ͢Δܭը I΄Ͳͷ༛༧ • ࣮ࡍʹࣄલݕূͨ݁͠Ռ࣌ؒ΄Ͳ͔͔Δ͜ͱ͕Θ͔ͬͨͨΊɺલ೔ʹσʔλҠߦ͓͖ͯ͠ɺ౰೔ ϝϯς࣌ؒதʹࠩ෼Λߋ৽͢Δܭըʹมߋͨ͠ • 4QSJOH#BUDIͰΧʔιϧϑΣονΛߦ͍ɺ$IVOL͝ͱʹॱ࣍ྲྀ͠ࠐΉ ࠷େສ݅ Y چ%# ৽%# .JHSBUJPO"QQMJDBUJPO • %BUBDPOWFSTJPO • &ODSZQUJPO *UFN8SJUFS ৽γεςϜ TRM4FTTJPO'BDUPSZ TRM4FTTJPO'BDUPSZ *UFN1SPDFTTPS .Z#BUJT$VSTPS*UFN3FBEFS

Slide 23

Slide 23 text

.Z#BUJT$VSTPS*UFN3FBEFS • .Z#BUJT4QSJOHͰ༻ҙ͞Ε͍ͯΔ 4QSJOH#BUDI༻ͷ $VSTPS*UFN3FBEFS • )PX5P6TF • ΫΤϦͷฦΓ஋ͷܕΛ $VSTPS'PP ͱఆٛ • .Z42-ͷ৔߹ɺ+%#$઀ଓύϥϝʔλʹ VTF$VSTPS'FUDIUSVF Λ௥Ճ • GFUDI4J[F PSEFGBVMU'FUDI4J[F Λࢦఆ KECDNZTRMGPPCBS VTF$VSTPS'FUDIUSVF ˞ ෳ਺ߦจࣈྻΛ࢖༻͢ΔͨΊ ,PUMJOΛ࢖༻ ޙड़

Slide 24

Slide 24 text

ຊ൪ϦϦʔεγεςϜҠߦ • ౰೔͔ΒϝϯςೖΓ͠ɺʹϝϯςղআͨ͠ • େ͖ͳτϥϒϧ΋ͳ͘ແࣄҠߦ׬ྃ ! • -*/&όΠτެࣜΞΧ΢ϯτ͔ΒɺϦχϡʔΞϧ·Ͱ͋ͱ˓೔ʂͱ͍͏Χ΢ϯτμ΢ϯͷϝοηʔ δ͕ຖ೔ྲྀΕ͖͍ͯͯͯɺαʔϏεاըଆͷઈରʹ੒ޭͤ͞Δͧͱ͍͏మͷҙࢤΛײͨ͡

Slide 25

Slide 25 text

େن໛ϦχϡʔΞϧͷઌʹ • ։ൃ໘ • ੜ࢈ੑ͕޲্͠ɺେ͖ͳ৽ػೳܭը΋ෳ਺૸ΔΑ͏ʹ • ։ൃ࣌τϥϒϧ࣌ͷצॴ͕ɺଟ͘ͷ։ൃऀʹڞ༗͞ΕΔΑ͏ʹͳͬͨ • ӡ༻໘ ؂ࢹ • MPHCBDL *NPO"QQFOEFS JNPO *O)PVTF 4MBDL JNPO CPU • ϦχϡʔΞϧલ͸େখଟ਺ͷΞϥʔτΛ৬ਓ͕ݟ෼͚ͯରԠ͍ͯͨ͠ • ϦχϡʔΞϧޙ͸ϩάͷཁෆཁΛ੔ཧ͠ɺ ඞཁ࠷খݶʹू໿ • 8"3/Ҏ্ͷΤϥʔ͸͢΂ͯରԠ • 4MBDL্ͰରԠεςʔλε͕Θ͔Δ • ଐਓੑͷഉআ

Slide 26

Slide 26 text

৽γεςϜߏ੒ʹ͓͚Δ͋Ε͜Ε

Slide 27

Slide 27 text

+BWB • +BWBͷ࣍ͷ -54 -POH5FSN4VQQPSU • ֤͕ࣾσΟετϦϏϡʔγϣϯΛ഑෍ • ৄࡉ͸ΈΜͳͷ +BWBୈষΛಡ΋͏ IUUQTHJIZPKQCPPL • -*/&όΠτͰ͸ݱࡏ "EPQU0QFO+%,Λ࠾༻ • (($͕σϑΥϧτʹͳ͍ͬͯΔͷͰ +7.Φϓγϣϯ͸ཁݟ௚͠

Slide 28

Slide 28 text

4QSJOH#PPU • 4QSJOH#PPUҎ߱Ͱ +BWBʹରԠ • ϦχϡʔΞϧϦϦʔε࣌ͷόʔδϣϯ͸  • 4QSJOH#PPU  3FMFBTFɻϦχϡʔΞϧϦϦʔεޙʹΞοϓάϨʔυࡁ • 'SFFNBSLFS ςϯϓϨʔτͷσϑΥϧτ֦ுࢠ͕ GUM ͔Β GUMI ʹมߋ • -*/&όΠτͰ͸-*/&ެࣜΞΧ΢ϯτ͔Βͷϝοηʔδߏங౳ʹ࢖༻͓ͯ͠Γɺ)5.-Τεέʔϓ ͕ෆཁͩͬͨͨΊ GUM ͷ··ʹ͍ͯ͠Δ • TQSJOHCPPUTUBSUFSUFTU͕σϑΥϧτͰ +6OJU ʹ • 4QSJOH#PPU σϑΥϧτͷόʔδϣϯΛ্ॻ͖͠ͳ͍։ൃํ਑ͷͨΊɺ͜ͷϦϦʔεҎ͔߱Β +6OJUԽΛਐΊ͍ͯΔ +6OJUͱڞଘ͢ΔͨΊ KVOJUWJOUBHFFOHJOFΛґଘʹ௥Ճ • 4QSJOH#PPU͕ ʹϦϦʔε͞ΕͨͷͰۙ͘௥ै༧ఆ

Slide 29

Slide 29 text

αʔόαΠυ ,PUMJO • .Z#BUJTͷ .BQQFSͰෳ਺ߦจࣈྻʹΑΔ "OOPUBUJPOΛ෇͚͍͕ͨͨΊʹ ,PUMJOΛಋೖ • ݱࡏɺͦͷଞͷϞδϡʔϧ΋Ұ෦ ,PUMJOͰॻ͍͍ͯΔ • (SBEMF΋ (SBEMF,PUMJO%4-ʹ͍ͯ͠Δ CVJMEHSBEMFLUT ͜Ε͸ಛʹͲͪΒͰ΋ྑ͔͔ͬͨ΋

Slide 30

Slide 30 text

4QSJOH#BUDI • 4QSJOHͷόονϑϨʔϜϫʔΫ • δϣϒͷ࣮ߦॱং੍ޚɾ࣮ߦঢ়گ؅ཧ • $IVOLʹΑΔେྔσʔλͷޮ཰ྑ͍ॲཧ • 3FBEFS1SPDFTTPS8SJUFSʹΑΔॲཧͷ෼ׂ • +BWB&&+BLBSUB&&ʹ΋ +43 K#BUDI ͱͯ͠ػೳͷҰ෦͕ඪ४Խ͞Ε͍ͯΔ • ൚༻తͳ 3FBEFS8SJUFS͕࢖͑Δ • ֤ॲཧͷϩδοΫ͕෼཭͞ΕΔ • -*/&όΠτͰ͸ࠓͷͱ͜Ζ͸ಛʹδϣϒ؅ཧ'8͸࢖Θͣ !4DIFEVMFE Ͱόον࣮ߦ • ϦϦʔε࣌ʹ͸ $FOUSBM%PHNBʹΑΓόον࣮ߦͷ 0O0GG੍ޚ

Slide 31

Slide 31 text

%SPOFJP • $*πʔϧͷҰͭ • (JUϦϙδτϦͷΠϕϯτΛϑοΫͯ͠ىಈ • %PDLFSίϯςφ಺ͰδϣϒΛ࣮ߦ͢Δ • ઃఆίʔυΛ ZNM΍ KTPOOFUͰॻ͚Δ • 044൛ͰΦϯϓϨߏஙՄೳ • WͰ 044൛ͷػೳ͕࡟ݮ͞Ε͍ͯΔͨΊόʔδϣϯؒͷࠩҟʹ஫ҙ • ࣾ಺Ͱ͸ +FOLJOTͰͷ $*͕ඪ४͕ͩɺ-*/&όΠτ͸ %SPOFJPͷΈͰ׬݁ • 4MBDLCPUܦ༝Ͱ։ൃ؀ڥຊ൪؀ڥ΁ͷσϓϩΠ΋ߦ͍ͬͯΔ @drone_bot promote foo-proj/bar-repo 12345 release

Slide 32

Slide 32 text

%FDBUPO • -*/&੡ ,BGLBDPOTVNFSϑϨʔϜϫʔΫ • ୯ҰͷύʔςΟγϣϯΛฒߦॲཧ • ಛʹ *0ॲཧͷଟ͍ϫʔΫϩʔυͰߴ͍εϧʔϓοτΛ࣮ݱ • -*/&όΠτͰ͸೥݄ͷϦϦʔεΑΓ࢖༻ • ࣾ಺Ͱͷӡ༻࣮੷Λܦͯɺ೥݄ʹ 044Խ ! • -*/&&OHJOFFSJOH#MPHʹ঺հهࣄ্͕͕͍ͬͯ·͢ l,BGLBΛར༻ͨ͠δϣϒΩϡʔϥΠϒϥϦʮ%FDBUPOʯͷ׆༻ࣄྫ  -*/&&/(*/&&3*/(z IUUQTFOHJOFFSJOHMJOFDPSQDPNKBCMPHEFDBUPODBTFTUVEJFT

Slide 33

Slide 33 text

·ͱΊ

Slide 34

Slide 34 text

·ͱΊ • -*/&όΠτ͸౦ژɾ෱ԬͰӶҙ։ൃ͍ͯ͠·͢ • ྺ࢙ͷ௕͍αʔϏεͰ͕͢ɺγεςϜϦχϡʔΞϧΛܦͯൺֱతϞμϯͳ ؀ڥͰ։ൃɾӡ༻தͰ͢ • -*/&ͷଞͷαʔϏεͱಉ༷ɺ֤ΤϯδχΞ͕ࡋྔΛ࣋ͬͯ׆༂͍ͯ͠·͢ • ࠓޙ΋৽ػೳΛಋೖ༧ఆͳͷͰ͝ظ଴͍ͩ͘͞

Slide 35

Slide 35 text

END