分かれたシステムをていねいにモノリスに集約する/Integrate decentralized systems to a monolith carefully

F356bb27a5329c131855abadfd309b7e?s=47 adorechic
August 30, 2018
15k

分かれたシステムをていねいにモノリスに集約する/Integrate decentralized systems to a monolith carefully

https://starttoday-tech.connpass.com/event/96477/

オウチーノではもともとサービスごとに異なる言語やFWを用いてシステムが分かれており、担当者もそれぞれ別々でした。そのため各サービスに精通した担当者が少なく、担当者は日々の運用で手一杯という状況下で、リプレイスもうまく進んではいませんでした。
そこでリプレイスよりも、分かれているシステムをひとつのモノリシックアプリケーションに集約することで、チームとしてよりワークすることをまずは目指しました。
一方で数多くのサービス機能を集約することは、そのモノリシックアプリケーションが急激に肥大化することも意味します。そこでモノリスにすることでの弊害をなるべく抑えつつ集約していく事例についてご紹介します。

F356bb27a5329c131855abadfd309b7e?s=128

adorechic

August 30, 2018
Tweet

Transcript

  1. ෼͔ΕͨγεςϜΛ ͍ͯͶ͍ʹ ϞϊϦεʹू໿͢Δ

  2. ࣗݾ঺հ w٢઒ਸྙ w Φ΢νʔϊऔక໾$50 w *%BEPSFDIJD w όοΫΤϯυ԰ w ࠃ಺େखϒϩάαʔϏε΍ϨγϐαʔϏεձࣾͷόοΫΤϯυ

    w .JDSPTFSWJDFT͓͡͞Μ΍ͬͯ·ͨ͠
  3. None
  4. ෆಈ࢈ϙʔλϧαΠτ ˞چσβΠϯ

  5. ϦϓϨΠεதͰ͢ʂ

  6. ࠓ೔͓࿩͢Δ͜ͱ wͳͥϦϓϨΠε͢Δͷ͔ wͲͷΑ͏ʹϦϓϨΠεΛ͍ͯ͠Δͷ͔ w ૊৫ͱͯ͠ͷ޻෉ w ΞʔΩςΫνϟͱͯ͠ͷ޻෉

  7. ࠓ೔͓࿩͠͠ͳ͍͜ͱ wར༻͍ͯ͠Δݸʑͷٕज़ͷৄࡉ wαʔϏε͝ͱͷৄࡉ wϦϓϨΠεʹؔ࿈͠ͳ͍෦෼ͷٕज़

  8. Φ΢νʔϊུྺ w೥גࣜձࣾϗʔϜΞυόΠβʔͱͯ͠ઃཱ w೥৽ஙϚϯγϣϯαΠτʮ)PNF1-";"ʯϦϦʔε w೥தݹαΠτʮ0VDDJOPʯϦϦʔε w೥௞ିαΠτʮ$BSJSVOPʯϦϦʔε w೥)PNF1-";"Λ0VDDJOPʹ౷߹ w೥גࣜձࣾΦ΢νʔϊ΁มߋ w೥$BSJSVOPΛ0VDDJOP΁౷߹ ΋ͱ΋ͱผʑͷαʔϏε ͋ͱ͔Β౷߹

  9. ೥ܦӦମ੍มߋ

  10. େ͖ͳํ਑มߋ w#FGPSF w ৽ن։ൃ΍େ͖Ίͷ։ൃ͸͢΂ͯ֎஫ w ࣾ಺ͷ։ൃऀ͸ӡ༻ɾอकΛ୲౰ w اըͱ։ൃऀ͕෼཭ͨ͠΢ΥʔλʔϑΥʔϧ

  11. େ͖ͳํ਑มߋ w"GUFS w ͢΂ͯ಺੡Խ w ৬छԣஅͷνʔϜʹΑΔϦʔϯ։ൃ w ϢʔβʔϑΝʔετ

  12. ͲΜͲΜαʔϏεΛ վળ͍ͯͧ͘͠ʂ

  13. ࠓͷγεςϜ͸ ͋Μ·ΓखΛೖΕΒΕͳ͍ Ͱ͢Αɾɾɾʁ 

  14. खΛೖΕΒΕͳ͍γεςϜJT w౷߹͞Ε͍ͯΔ͕࣮ଶ͸෼͔ΕͨผʑͷγεςϜ w +BWB 4USVUT $PME'VTJPO 1)1 $BLF1)1 FUD w

    0SBDMF .Z42- "VSPSB w 1$൛ͱεϚϗ൛ɺόονͳͲશ෦ผʑͷγεςϜ w਺ʑͷผܥ౷ͷόον͕υϛϊ౗͠Ͱॲཧ͍ͯ͘͠ wϦϙδτϦ؅ཧ͕ෆ׬શ w ຊ൪ͱϦϙδτϦͷιʔε͕ҧ͏ɺιʔε͕࢒ͬͯͳ͍όΠφϦFUD w୭΋શ༰Λ೺ѲͰ͖͍ͯͳ͍ ݴޠ΋%#΋όϥόϥ
  15. ͳΒ͹ϦϓϨΠεͩʂ

  16. ଴ͬͨ

  17. ҋӢͳϦϓϨΠε͸ةݥ wԿ͕ਖ਼͍͠࢓༷͔Θ͔Βͳ͍ wमਖ਼Օॴ͕ͲΜͲΜ૿͑Δ w͍ͭ·Ͱ΍ͬͯ΋ऴΘΒͳ͍

  18. ઴ਐతϦϓϨΠε wҰճͷมߋ͸খ͘͞ w มߋ͕େ͖͍ͱਓྨʹ͸ίϯτϩʔϧͰ͖ͳ͍ w ໨ࢦ͢ঢ়ଶʹ޲͔ͬͯ೔ʹ೔ʹྑ͍ͯ͘͘͠ w૊৫ͷมԽʹॊೈʹ௥ਵ͢Δ w ඞཁͳ͍ͱ͜ΖͷҠ২ʹ࿑ྗΛ͔͚ͳ͍ w

    ௕͔͚࣌ؒͯͨΒେํ਑͕มΘͬͯਫͷ๐Λආ͚Δ
  19. ໨ࢦ͢΂͖ঢ়ଶ wϢʔβʔʹՁ஋Λಧ͚ΒΕΔঢ়ଶ w ❌։ൃऀ͕γεςϜͷอक͹͔Γ͍ͯ͠Δ w ⭕։ൃऀ͕ػೳͷ௥ՃɾվળʹूதͰ͖͍ͯΔ

  20. ໰୊͸Ͳ͜ʹ͋Δʁ w❌ݴޠɾγεςϜ͕όϥόϥ w .JDSPTFSWJDFTͩͱී௨ͩ͠ɺ෼͔Ε͍ͯΔ͜ͱࣗମ͕໰୊Ͱ͸ͳͦ͞͏ w❌υϛϊ౗͠ͳόον܈ w όονҎ֎Ͱ΋վળͰ͖͍ͯͳ͍͔Β͜Ε΋ຊ࣭Ͱ͸ͳͦ͞͏ w❌શ༰Λ೺ѲͰ͖͍ͯͳ͍ w ଞͷձࣾͰ΋શମ೺Ѳͭͭ͠։ൃͯ͠Δਓ͹͔ΓͰ͸ͳ͍Ͱ͢ΑͶ

  21. ຊ౰ʹ෼அ͞Ε͍ͯͨ΋ͷ wγεςϜΑΓ΋։ൃऀͷ෼அ͕໰୊ w جຊ֤γεςϜ໊ɺଟ໊ͯ͘ͷ୲౰ऀ w ҰਓͰݟ͍ͯΔͱվળ·Ͱख͕·ΘΒͳ͍ w վળ͕Ͱ͖ͳ͍ͷͰ೺Ѳ΋ਐ·ͳ͍ w ଞͷ։ൃऀ͔ΒͷΞυόΠε͕΋Β͑ͳ͍

    w ૊৫ͱͯ͠εΩϧΞοϓ͕ਐ·ͳ͍
  22. ϦϓϨΠεͷํ਑ wϞϊϦεʹू໿͢Δ w ։ൃऀશһͰڞ௨ݴޠΛ࣋ͭ w ૬ޓʹϨϏϡʔ෼୲αϙʔτ͕͠΍͍͢ঢ়ଶʹ͢Δ wҠ২࡞ۀΑΓ΋৽ن։ൃΛॏࢹ w ϞϊϦε্ʹ࣮ݱ͍ͨ͠ػೳΛͲΜͲΜ։ൃ͢Δ w

    طଘػೳͰඞཁͳͱ͜Ζ͚ͩҠ২ աڈ࢓༷ʹͱΒΘΕΔ ඞཁ͸ͳ͍
  23. طଘγεςϜͷอक͸ Ͳ͏͢ΔΜͰ͔͢ɾɾɾʁ

  24. ౰൪੍ wτΠϥʔʢࣾ಺༻ޠʣ w τΠϧΛย෇͚ΔਓɻҰिؒަ୅ɻ w ڧ੍తʹଐਓੑΛݮΒ͢ɻ஌ݟΛڞ༗͢Δɻ wબ୒੍ w ։ൃऀ͸Φϯίʔϧ͔τΠϥʔΛબ୒Ͱ͖Δ

  25. Ұ೥ޙͲ͏ͳ͔ͬͨ

  26. None
  27. Ұ೥ޙ wϝΠϯαΠτ੾Γସ͑ w PVDDJOPKQʢطଘγεςϜʣ͔ΒPVDDJOPDPNʢ৽ϞϊϦεʣ΁ w΄΅શһͷϝΠϯλεΫ͕৽ϞϊϦεʹؔ͢Δ΋ͷ w ։ൃऀ͸ΈΜͳେମ3BJMT 3FBDUॻ͍ͯΔ wچγεςϜ͸ʢݮΓͭͭ͋Δ͕ʣ·ͩશવ࢒͍ͬͯΔ w

    τΠϥʔͰͳΜͱ͔·Θ͍ͤͯΔ w؅ཧը໘ؚΊͯαʔϏε͕ϞϊϦεʹಉډ
  28. αʔϏε͕ϞϊϦεʹಉډ

  29. ਏ͘ͳΒͳ͍Α͏ͳ޻෉

  30.  ॊೈʹελοΫΛ૊Έ߹ΘͤΔ

  31. αʔϏεಛੑʹԠͯ͡ελοΫͷߏ੒Λม͑Δ wϕʔε͸3FBDU 3BJMT w 41" 3FBDU3FEVYTBHBSFBDUSPVUFS   "1* 3BJMT

     443 IZQFSOPWB  w 3BJMT)BNM ෦෼తʹ3FBDU 3FEVY PSૉͷ 3FBDU  w 3BJMT)BNM K2VFSZ
  32.  αʔϏεؒͷಠཱੑΛҡ࣋͢Δ

  33. /BNFTQBDFͷ෼཭ wDPOTUSBJOUTTVCEPNBJO͸࢖͍ͬͯͳ͍ w OBNFTQBDF͕૿͑Δͱ3"*-4@&/7ͱυϝΠϯͷ૊Έ߹Θͤͷ؅ཧ͕ ൥ࡶʹͳΔ w αϒυϝΠϯͰͳ͍΋ͷ΋͋Δ w ಛఆͷυϝΠϯͰ͚ͩ༗ޮԽ͍ͨ͠΋ͷ͸ΧελϜDPOTUSBJOUTΛར༻ w.PVOUBCMF&OHJOFʹ΋͍ͯ͠ͳ͍

    w &OHJOFϕʔείʔυ΁ͷࢀর͕ൃੜ͢ΔͱΧΦεʹͳΔ
  34. /BNFTQBDF෼཭ΛҰݩ؅ཧ XXXPVDDJOPKQBSUJDMF XXXPVDDJOPKQDPOTPMF NBSLFUPVDDJOPDPNNBSLFU DPOTPMFPVDDJOPKQDPOTPMF { 'www.o-uccino.jp' => %i(front article),

    'market.o-uccino.com' => %i(market), ... } &$4Ϋϥελʔ͸ಛੑʹԠͯ͡छྨ w ෆಛఆଟ਺ͷެ։ΞΫηε w ࣾ֎Ϣʔβʔ͕࢖͏؅ཧը໘ܥ w ࣾ಺؅ཧը໘ܥ υϝΠϯ͝ͱʹ୲౰ͷ ΫϥελʹׂΓৼΔ υϝΠϯͱOBNFTQBDFͷ ϚοϐϯάΛ؅ཧ
  35. /BNFTQBDFؒΛૄ݁߹ʹ͢Δ &EJUPS &EJUPS$SFEFOUJBM 4UB⒎6TFS&EJUPS 4UB⒎6TFS (4VJUF "SUJDMFOBNFTQBDF 4UB⒎DPOTPMFOBNFTQBDF ֤OBNFTQBDFʹ*OEFOUJpFSΛ࣋ͭ ൚༻తͳ6TFS͸࡞Βͳ͍

    *EFOUJpFSͱ$SFEFOUJBM͸෼཭ 4UB⒎ೝূ͍ͨ͠৔߹ ผOBNFTQBDFʹϦμΠϨΫτͯ͠ҕৡ ௚઀(4VJUFೝূͨ͠Γ%#ࢀর͠ͳ͍
  36.  چγεςϜ΁ͷΞμϓλ

  37. αʔϏε্੹຿͕ಉ͡΋ͷΛ·ͱΊΔ FTUBUF /FX&TUBUF&TUBUF 6TFE&TUBUF&TUBUF /FX&TUBUF#VLLFO 6TFE&TUBUF#VLLFO &TUBUF'PSNBU ڞ௨ΠϯλʔϑΣΠε ৽ஙɾதݹͱ΋ Ծ૝ϞσϧΛ௨ͯ͡

    ಉ͡ΠϯλʔϑΣΠεͰࢀর ಉ͡෺݅৘ใͰ΋ ผ%#ͳͷͰςʔϒϧߏ੒΍ ΧϥϜ໊ͳͲ͸શ͘ҟͳΔ ෳ਺ςʔϒϧࢀর͢Δ৔߹΋ Ξμϓλ૚͕ٵऩ͢Δ কདྷతʹετϨʔδ૚Λ͜͜ʹد͍ͤͯ͘
  38.  ฒߦ࡞ۀͷࣄނ๷ࢭ

  39. /BNFTQBDFؒͷಉ࣌࡞ۀʹΑΔࣄނΛ๷͙ Ϛʔδ ςετ ηΩϡϦςΟνΣοΫ Ϗϧυ εςʔδϯά΁ࣗಈσϓϩΠ εςʔδϯά&&ςετ %PDLFSʹϦϦʔεϏϧυλά 34QFD +FTU

    #SBLFNBO OQNBVEJU BTTFUDPNQJMFEPDLFSCVJME &&Λύε͍ͯ͠ͳ͍ͱ QSPEVDUJPOσϓϩΠͰ͖ͳ͍ σϓϩΠ͸4MBDL͔ΒίϚϯυ࣮ߦ SJEHFQPMFͰεΩʔϚʹ ࠩ෼͕͋Ε͹σϓϩΠͰ͖ͳ͍
  40. ·ͱΊ wϦϓϨΠε͸ܭըతʹ w ղܾ͢΂͖՝୊Λ໌֬ʹ͢Δ w͋͑ͯϞϊϦεʹ͢Δͱ͍͏બ୒ࢶ w γεςϜ͕໨ࢦ͢΂͖࢟ͱ՝୊ΛνʔϜͷڞ௨ೝࣝʹ͢Δ wϞϊϦεͷσϝϦοτΛܰݮ͢Δ޻෉

  41. 8FSFIJSJOH ࣍ͷΦ΢νʔϊΛ͍ͬ͠ΐʹ࡞Γ·ͤΜ͔ SFDSVJU!PVDDJOPKQ IUUQTDPSQPSBUFPVDDJOPKQSFDSVJU