LINEバイトのリニューアル開発について / Development for the LINE Baito renewal

LINEバイトのリニューアル開発について / Development for the LINE Baito renewal

2020/5/22に行われたLINE Developer Meetup #63 での登壇資料です
https://line.connpass.com/event/174730/

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers

May 22, 2020
Tweet

Transcript

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

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

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

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

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

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

  7. -*/&όΠτͱ͸ • -*/&ΞϓϦ্͔ΒखܰʹӾཡɾԠืՄೳͳΞϧόΠτٻਓ৘ใαʔϏε • -*/&ΞϓϦ  -*/&ެࣜΞΧ΢ϯτܦ༝ • ϒϥ΢β൛ IUUQTCBJUPMJOFNF

    • ೥αʔϏε։࢝ • ొ࿥ձһສਓҎ্ ˞ • ٻਓ৘ใສ݅Ҏ্ ˞ ˞ ೥݄࣌఺ • ೥݄ʹϦχϡʔΞϧ
  8. -*/&όΠτͷ։ൃମ੍ • ϦχϡʔΞϧ։ൃલ ʙ • -*/&'VLVPLBͰαʔόαΠυ։ൃΛ୲౰ • ϑϩϯτΤϯυ։ൃ͸෱Ԭ౦ژ • اըɾϚʔέςΟϯά͸౦ژ

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

    ͷ෱Ԭ։ൃνʔϜ • اըɾϚʔέςΟϯά͸౦ژ • ։ൃΤϯδχΞ͸ਓલޙ • ͦͷଞ • ։ൃࢧԉνʔϜ ౦ژ ɾ ୲౰%#" ౦ژ ͷαϙʔτ • %BUB-BCT ౦ژ ͱͷ࿈ܞ ෱Ԭ αʔόαΠυΤϯδχΞ ϑϩϯτΤϯυΤϯδχΞ 2" ౦ژ اը ϚʔέςΟϯά αʔόαΠυΤϯδχΞ
  10. େن໛γεςϜϦχϡʔΞϧΛߦ͏·Ͱͷ࿩

  11. ϦχϡʔΞϧҎલͷγεςϜߏ੒ ʙ • αʔϏε։࢝࣌ ೥ʙ ͷΞʔΩςΫνϟΛܧঝ • +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
  12. چγεςϜͷ՝୊ • ϞμϯͳϑϨʔϜϫʔΫ͕ਐԽ͢ΔԸܙʹ͔͋ͣΕͳ͍ • ྺ࢙తͳੵΈ্͕͛ଟ͘ػೳ࢓༷Λ೺Ѳ͢Δͷ͕େม • اըଆɾ։ൃଆͱ΋ʹ΄΅ϝϯόʔ͕ೖΕସΘ͍ͬͯΔ • ϦϑΝΫλ͕๬·ΕΔίʔυ͕ଟ਺

  13. γεςϜϦχϡʔΞϧΛߦ͏ ϝϦοτɾσϝϦοτ ॴײ • ϝϦοτ • ࠷৽ͷΞʔΩςΫνϟʹΑΔػೳ΍։ൃੜ࢈ੑΛಘΒΕΔ • طଘͷ࣮૷Λ࠶ઃܭɾϦϑΝΫλͰ͖Δ •

    σϝϦοτ • ৽ػೳ։ൃʹ޲͚ΒΕͨ͸ͣͷϦιʔεΛׂ͘ඞཁ͕͋Δ • ։ൃੜ࢈ੑ޲্ʹΑΔརӹ͕ॳظ౤ࢿΛ্ճΔ·Ͱ͸੺ࣈ • Ͳ͜·Ͱ͕ڐ༰ൣғͳͷ͔Λࣄલʹ͢Γ߹Θ͓͔ͤͯͳ͍ͱ൵͍͜͠ͱʹ U ˞Πϝʔδਤ
  14. ೥ʹҰ౓γεςϜϦχϡʔΞϧʹ௅ઓ • "WBOT Λ 4QSJOH#PPUʹҠߦ͢Δ • 5JOZ03. Λ .Z#BUJT ʹҠߦ͢Δ

    • 41"Λ΍ΊΔ 5IZNFMFBG ͰϨϯμϦϯά • %#ఆٛ΍ "1*ΤϯυϙΠϯτ͸ͦͷ··ܧଓ • چγεςϜͱಉ࣌ʹӡ༻͠ɺΤϯυϙΠϯτ͝ͱʹঃʑʹҠߦ͢Δ • ίʔυωʔϜ (BOEIBSB Ψϯμʔϥ
  15. ͔͠͠ɺ్தͰҠߦ։ൃఀࢭ • ։ൃϦιʔεͷ౎߹্ɺ్தͰҠߦ։ൃ͸ετοϓ • ݁ՌɺچγεςϜ ৽γεςϜ͕ฒߦՔಈͨ͠ঢ়گͰ αʔϏεΛଓ͚Δ͜ͱʹ ۀ຿ཁ݅Λ൐Θͳ͍γεςϜϦχϡʔΞϧΛ਱ߦ͢Δͷ͸೉͍͠ʜ

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

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

  18. ཁ݅ • ٻਓσʔλ࿈ܞॲཧͷશ໘࡞Γ௚͠ • Ԡื࿈ܞॲཧͷશ໘࡞Γ௚͠ • %#ఆٛ͸͢΂ͯ࠶ઃܭͭͭ͠ɺສͷطଘձһσʔλ͸Ҿ͖ܧ͙ • ϑϩϯτΤϯυଆ͸طଘͷσβΠϯΛ౿ऻͯ͠࡞Γ௚͠ •

    ϦϦʔε͸೥݄຤ʢඞୡʣ • ίʔυωʔϜ 5JHFS λΠΨʔ
  19. ։ൃํ਑ • αʔόαΠυ • +BWB ਖ਼ࣜϦϦʔεࡁ • 4QSJOH#PPUʢʣ • .Z42-&MBTUJDTFBSDI3FEJT

     ,BGLB • -*/& ΞϓϦܦ༝΋֎෦ϒϥ΢βܦ༝΋ಉ͡γεςϜͰ࣮ߦ • ϑϩϯτΤϯυ • 3FBDU 3FEVYCZ5ZQF4DSJQU • TUZMFEDPNQPOFOUT • /PEFKTαʔόΛฒ΂ͯϦΫΤετΛड͚Δ
  20. ৽γεςϜߏ੒ਤ 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 ˞ ˞ޙ೔ϦϦʔε
  21. ৽γεςϜ΁ͷϦϓϨʔεͷྲྀΕ  ϦϦʔεલ  چ%#ͷσʔλΛ৽%#ʹϚΠάϨʔγϣϯ ޙड़  ৽αʔό؂ࢹઃఆʢ౰೔·Ͱ 4JMFODF 

    ϦϦʔε౰೔  ؂ࢹఀࢭ  OHJOYଆͰϝϯςϞʔυʹҠߦ  $IBOOFMͷ &OUSZ63-Λมߋ  #PU8FCIPPLఀࢭɺ8FCIPPL63-มߋ  ϒϥ΢β޲͚ 63-ͷ %/4มߋ  %#ϚΠάϨʔγϣϯޙͷࠩ෼Λ࠶౓ಉظ  ಈ࡞֬ೝɺ2"  OHJOYଆͰϝϯςϞʔυղআ  ؂ࢹ࠶։  #PU8FCIPPL࠶։  #PU2"
  22. %#ϚΠάϨʔγϣϯܭը • σʔλܗࣜͷมߋ΍҉߸ԽॲཧͷͨΊɺ42-Ͱ͸ͳ͘ΞϓϦଆͰσʔλΛҠߦ • ݩʑ͸౰೔ͷϝϯςೖΓޙʹશσʔλΛҠߦ͢Δܭը I΄Ͳͷ༛༧ • ࣮ࡍʹࣄલݕূͨ݁͠Ռ࣌ؒ΄Ͳ͔͔Δ͜ͱ͕Θ͔ͬͨͨΊɺલ೔ʹσʔλҠߦ͓͖ͯ͠ɺ౰೔ ϝϯς࣌ؒதʹࠩ෼Λߋ৽͢Δܭըʹมߋͨ͠ •

    4QSJOH#BUDIͰΧʔιϧϑΣονΛߦ͍ɺ$IVOL͝ͱʹॱ࣍ྲྀ͠ࠐΉ ࠷େສ݅ Y چ%# ৽%# .JHSBUJPO"QQMJDBUJPO • %BUBDPOWFSTJPO • &ODSZQUJPO *UFN8SJUFS ৽γεςϜ TRM4FTTJPO'BDUPSZ TRM4FTTJPO'BDUPSZ *UFN1SPDFTTPS .Z#BUJT$VSTPS*UFN3FBEFS
  23. .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Λ࢖༻ ޙड़
  24. ຊ൪ϦϦʔεγεςϜҠߦ • ౰೔͔ΒϝϯςೖΓ͠ɺʹϝϯςղআͨ͠ • େ͖ͳτϥϒϧ΋ͳ͘ແࣄҠߦ׬ྃ ! • -*/&όΠτެࣜΞΧ΢ϯτ͔ΒɺϦχϡʔΞϧ·Ͱ͋ͱ˓೔ʂͱ͍͏Χ΢ϯτμ΢ϯͷϝοηʔ δ͕ຖ೔ྲྀΕ͖͍ͯͯͯɺαʔϏεاըଆͷઈରʹ੒ޭͤ͞Δͧͱ͍͏మͷҙࢤΛײͨ͡

  25. େن໛ϦχϡʔΞϧͷઌʹ • ։ൃ໘ • ੜ࢈ੑ͕޲্͠ɺେ͖ͳ৽ػೳܭը΋ෳ਺૸ΔΑ͏ʹ • ։ൃ࣌τϥϒϧ࣌ͷצॴ͕ɺଟ͘ͷ։ൃऀʹڞ༗͞ΕΔΑ͏ʹͳͬͨ • ӡ༻໘ ؂ࢹ

    • MPHCBDL *NPO"QQFOEFS JNPO *O)PVTF 4MBDL JNPO CPU • ϦχϡʔΞϧલ͸େখଟ਺ͷΞϥʔτΛ৬ਓ͕ݟ෼͚ͯରԠ͍ͯͨ͠ • ϦχϡʔΞϧޙ͸ϩάͷཁෆཁΛ੔ཧ͠ɺ ඞཁ࠷খݶʹू໿ • 8"3/Ҏ্ͷΤϥʔ͸͢΂ͯରԠ • 4MBDL্ͰରԠεςʔλε͕Θ͔Δ • ଐਓੑͷഉআ
  26. ৽γεςϜߏ੒ʹ͓͚Δ͋Ε͜Ε

  27. +BWB • +BWBͷ࣍ͷ -54 -POH5FSN4VQQPSU • ֤͕ࣾσΟετϦϏϡʔγϣϯΛ഑෍ • ৄࡉ͸ΈΜͳͷ +BWBୈষΛಡ΋͏

    IUUQTHJIZPKQCPPL • -*/&όΠτͰ͸ݱࡏ "EPQU0QFO+%,Λ࠾༻ • (($͕σϑΥϧτʹͳ͍ͬͯΔͷͰ +7.Φϓγϣϯ͸ཁݟ௚͠
  28. 4QSJOH#PPU • 4QSJOH#PPUҎ߱Ͱ +BWBʹରԠ • ϦχϡʔΞϧϦϦʔε࣌ͷόʔδϣϯ͸  • 4QSJOH#PPU 

    3FMFBTFɻϦχϡʔΞϧϦϦʔεޙʹΞοϓάϨʔυࡁ • 'SFFNBSLFS ςϯϓϨʔτͷσϑΥϧτ֦ுࢠ͕ GUM ͔Β GUMI ʹมߋ • -*/&όΠτͰ͸-*/&ެࣜΞΧ΢ϯτ͔Βͷϝοηʔδߏங౳ʹ࢖༻͓ͯ͠Γɺ)5.-Τεέʔϓ ͕ෆཁͩͬͨͨΊ GUM ͷ··ʹ͍ͯ͠Δ • TQSJOHCPPUTUBSUFSUFTU͕σϑΥϧτͰ +6OJU ʹ • 4QSJOH#PPU σϑΥϧτͷόʔδϣϯΛ্ॻ͖͠ͳ͍։ൃํ਑ͷͨΊɺ͜ͷϦϦʔεҎ͔߱Β +6OJUԽΛਐΊ͍ͯΔ +6OJUͱڞଘ͢ΔͨΊ KVOJUWJOUBHFFOHJOFΛґଘʹ௥Ճ • 4QSJOH#PPU͕ ʹϦϦʔε͞ΕͨͷͰۙ͘௥ै༧ఆ
  29. αʔόαΠυ ,PUMJO • .Z#BUJTͷ .BQQFSͰෳ਺ߦจࣈྻʹΑΔ "OOPUBUJPOΛ෇͚͍͕ͨͨΊʹ ,PUMJOΛಋೖ • ݱࡏɺͦͷଞͷϞδϡʔϧ΋Ұ෦ ,PUMJOͰॻ͍͍ͯΔ

    • (SBEMF΋ (SBEMF,PUMJO%4-ʹ͍ͯ͠Δ CVJMEHSBEMFLUT ͜Ε͸ಛʹͲͪΒͰ΋ྑ͔͔ͬͨ΋
  30. 4QSJOH#BUDI • 4QSJOHͷόονϑϨʔϜϫʔΫ • δϣϒͷ࣮ߦॱং੍ޚɾ࣮ߦঢ়گ؅ཧ • $IVOLʹΑΔେྔσʔλͷޮ཰ྑ͍ॲཧ • 3FBEFS1SPDFTTPS8SJUFSʹΑΔॲཧͷ෼ׂ •

    +BWB&&+BLBSUB&&ʹ΋ +43 K#BUDI ͱͯ͠ػೳͷҰ෦͕ඪ४Խ͞Ε͍ͯΔ • ൚༻తͳ 3FBEFS8SJUFS͕࢖͑Δ • ֤ॲཧͷϩδοΫ͕෼཭͞ΕΔ • -*/&όΠτͰ͸ࠓͷͱ͜Ζ͸ಛʹδϣϒ؅ཧ'8͸࢖Θͣ !4DIFEVMFE Ͱόον࣮ߦ • ϦϦʔε࣌ʹ͸ $FOUSBM%PHNBʹΑΓόον࣮ߦͷ 0O0GG੍ޚ
  31. %SPOFJP • $*πʔϧͷҰͭ • (JUϦϙδτϦͷΠϕϯτΛϑοΫͯ͠ىಈ • %PDLFSίϯςφ಺ͰδϣϒΛ࣮ߦ͢Δ • ઃఆίʔυΛ ZNM΍

    KTPOOFUͰॻ͚Δ • 044൛ͰΦϯϓϨߏஙՄೳ • WͰ 044൛ͷػೳ͕࡟ݮ͞Ε͍ͯΔͨΊόʔδϣϯؒͷࠩҟʹ஫ҙ • ࣾ಺Ͱ͸ +FOLJOTͰͷ $*͕ඪ४͕ͩɺ-*/&όΠτ͸ %SPOFJPͷΈͰ׬݁ • 4MBDLCPUܦ༝Ͱ։ൃ؀ڥຊ൪؀ڥ΁ͷσϓϩΠ΋ߦ͍ͬͯΔ @drone_bot promote foo-proj/bar-repo 12345 release
  32. %FDBUPO • -*/&੡ ,BGLBDPOTVNFSϑϨʔϜϫʔΫ • ୯ҰͷύʔςΟγϣϯΛฒߦॲཧ • ಛʹ *0ॲཧͷଟ͍ϫʔΫϩʔυͰߴ͍εϧʔϓοτΛ࣮ݱ •

    -*/&όΠτͰ͸೥݄ͷϦϦʔεΑΓ࢖༻ • ࣾ಺Ͱͷӡ༻࣮੷Λܦͯɺ೥݄ʹ 044Խ ! • -*/&&OHJOFFSJOH#MPHʹ঺հهࣄ্͕͕͍ͬͯ·͢ l,BGLBΛར༻ͨ͠δϣϒΩϡʔϥΠϒϥϦʮ%FDBUPOʯͷ׆༻ࣄྫ  -*/&&/(*/&&3*/(z IUUQTFOHJOFFSJOHMJOFDPSQDPNKBCMPHEFDBUPODBTFTUVEJFT
  33. ·ͱΊ

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

  35. END