Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

LINE Developers

May 22, 2020
Tweet

More Decks by LINE Developers

Other Decks in Programming

Transcript

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

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

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

    ͷ෱Ԭ։ൃνʔϜ • اըɾϚʔέςΟϯά͸౦ژ • ։ൃΤϯδχΞ͸ਓલޙ • ͦͷଞ • ։ൃࢧԉνʔϜ ౦ژ ɾ ୲౰%#" ౦ژ ͷαϙʔτ • %BUB-BCT ౦ژ ͱͷ࿈ܞ ෱Ԭ αʔόαΠυΤϯδχΞ ϑϩϯτΤϯυΤϯδχΞ 2" ౦ژ اը ϚʔέςΟϯά αʔόαΠυΤϯδχΞ
  4. ϦχϡʔΞϧҎલͷγεςϜߏ੒ ʙ • αʔϏε։࢝࣌ ೥ʙ ͷΞʔΩςΫνϟΛܧঝ • +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
  5. γεςϜϦχϡʔΞϧΛߦ͏ ϝϦοτɾσϝϦοτ ॴײ • ϝϦοτ • ࠷৽ͷΞʔΩςΫνϟʹΑΔػೳ΍։ൃੜ࢈ੑΛಘΒΕΔ • طଘͷ࣮૷Λ࠶ઃܭɾϦϑΝΫλͰ͖Δ •

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

    • 41"Λ΍ΊΔ 5IZNFMFBG ͰϨϯμϦϯά • %#ఆٛ΍ "1*ΤϯυϙΠϯτ͸ͦͷ··ܧଓ • چγεςϜͱಉ࣌ʹӡ༻͠ɺΤϯυϙΠϯτ͝ͱʹঃʑʹҠߦ͢Δ • ίʔυωʔϜ (BOEIBSB Ψϯμʔϥ
  7. ։ൃํ਑ • αʔόαΠυ • +BWB ਖ਼ࣜϦϦʔεࡁ • 4QSJOH#PPUʢʣ • .Z42-&MBTUJDTFBSDI3FEJT

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

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

    4QSJOH#BUDIͰΧʔιϧϑΣονΛߦ͍ɺ$IVOL͝ͱʹॱ࣍ྲྀ͠ࠐΉ ࠷େສ݅ Y چ%# ৽%# .JHSBUJPO"QQMJDBUJPO • %BUBDPOWFSTJPO • &ODSZQUJPO *UFN8SJUFS ৽γεςϜ TRM4FTTJPO'BDUPSZ TRM4FTTJPO'BDUPSZ *UFN1SPDFTTPS .Z#BUJT$VSTPS*UFN3FBEFS
  11. .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Λ࢖༻ ޙड़
  12. େن໛ϦχϡʔΞϧͷઌʹ • ։ൃ໘ • ੜ࢈ੑ͕޲্͠ɺେ͖ͳ৽ػೳܭը΋ෳ਺૸ΔΑ͏ʹ • ։ൃ࣌τϥϒϧ࣌ͷצॴ͕ɺଟ͘ͷ։ൃऀʹڞ༗͞ΕΔΑ͏ʹͳͬͨ • ӡ༻໘ ؂ࢹ

    • MPHCBDL *NPO"QQFOEFS JNPO *O)PVTF 4MBDL JNPO CPU • ϦχϡʔΞϧલ͸େখଟ਺ͷΞϥʔτΛ৬ਓ͕ݟ෼͚ͯରԠ͍ͯͨ͠ • ϦχϡʔΞϧޙ͸ϩάͷཁෆཁΛ੔ཧ͠ɺ ඞཁ࠷খݶʹू໿ • 8"3/Ҏ্ͷΤϥʔ͸͢΂ͯରԠ • 4MBDL্ͰରԠεςʔλε͕Θ͔Δ • ଐਓੑͷഉআ
  13. +BWB • +BWBͷ࣍ͷ -54 -POH5FSN4VQQPSU • ֤͕ࣾσΟετϦϏϡʔγϣϯΛ഑෍ • ৄࡉ͸ΈΜͳͷ +BWBୈষΛಡ΋͏

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

    3FMFBTFɻϦχϡʔΞϧϦϦʔεޙʹΞοϓάϨʔυࡁ • 'SFFNBSLFS ςϯϓϨʔτͷσϑΥϧτ֦ுࢠ͕ GUM ͔Β GUMI ʹมߋ • -*/&όΠτͰ͸-*/&ެࣜΞΧ΢ϯτ͔Βͷϝοηʔδߏங౳ʹ࢖༻͓ͯ͠Γɺ)5.-Τεέʔϓ ͕ෆཁͩͬͨͨΊ GUM ͷ··ʹ͍ͯ͠Δ • TQSJOHCPPUTUBSUFSUFTU͕σϑΥϧτͰ +6OJU ʹ • 4QSJOH#PPU σϑΥϧτͷόʔδϣϯΛ্ॻ͖͠ͳ͍։ൃํ਑ͷͨΊɺ͜ͷϦϦʔεҎ͔߱Β +6OJUԽΛਐΊ͍ͯΔ +6OJUͱڞଘ͢ΔͨΊ KVOJUWJOUBHFFOHJOFΛґଘʹ௥Ճ • 4QSJOH#PPU͕ ʹϦϦʔε͞ΕͨͷͰۙ͘௥ै༧ఆ
  15. 4QSJOH#BUDI • 4QSJOHͷόονϑϨʔϜϫʔΫ • δϣϒͷ࣮ߦॱং੍ޚɾ࣮ߦঢ়گ؅ཧ • $IVOLʹΑΔେྔσʔλͷޮ཰ྑ͍ॲཧ • 3FBEFS1SPDFTTPS8SJUFSʹΑΔॲཧͷ෼ׂ •

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

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

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