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

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

adorechic
August 30, 2018
18k

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

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

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

adorechic

August 30, 2018
Tweet

Transcript

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

    0SBDMF .Z42- "VSPSB w 1$൛ͱεϚϗ൛ɺόονͳͲશ෦ผʑͷγεςϜ w਺ʑͷผܥ౷ͷόον͕υϛϊ౗͠Ͱॲཧ͍ͯ͘͠ wϦϙδτϦ؅ཧ͕ෆ׬શ w ຊ൪ͱϦϙδτϦͷιʔε͕ҧ͏ɺιʔε͕࢒ͬͯͳ͍όΠφϦFUD w୭΋શ༰Λ೺ѲͰ͖͍ͯͳ͍ ݴޠ΋%#΋όϥόϥ
  2. αʔϏεಛੑʹԠͯ͡ελοΫͷߏ੒Λม͑Δ wϕʔε͸3FBDU 3BJMT w 41" 3FBDU3FEVYTBHBSFBDUSPVUFS   "1* 3BJMT

     443 IZQFSOPWB  w 3BJMT)BNM ෦෼తʹ3FBDU 3FEVY PSૉͷ 3FBDU  w 3BJMT)BNM K2VFSZ
  3. /BNFTQBDF෼཭ΛҰݩ؅ཧ XXXPVDDJOPKQBSUJDMF XXXPVDDJOPKQDPOTPMF NBSLFUPVDDJOPDPNNBSLFU DPOTPMFPVDDJOPKQDPOTPMF { 'www.o-uccino.jp' => %i(front article),

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

    *EFOUJpFSͱ$SFEFOUJBM͸෼཭ 4UB⒎ೝূ͍ͨ͠৔߹ ผOBNFTQBDFʹϦμΠϨΫτͯ͠ҕৡ ௚઀(4VJUFೝূͨ͠Γ%#ࢀর͠ͳ͍
  5. αʔϏε্੹຿͕ಉ͡΋ͷΛ·ͱΊΔ FTUBUF /FX&TUBUF&TUBUF 6TFE&TUBUF&TUBUF /FX&TUBUF#VLLFO 6TFE&TUBUF#VLLFO &TUBUF'PSNBU ڞ௨ΠϯλʔϑΣΠε ৽ஙɾதݹͱ΋ Ծ૝ϞσϧΛ௨ͯ͡

    ಉ͡ΠϯλʔϑΣΠεͰࢀর ಉ͡෺݅৘ใͰ΋ ผ%#ͳͷͰςʔϒϧߏ੒΍ ΧϥϜ໊ͳͲ͸શ͘ҟͳΔ ෳ਺ςʔϒϧࢀর͢Δ৔߹΋ Ξμϓλ૚͕ٵऩ͢Δ কདྷతʹετϨʔδ૚Λ͜͜ʹد͍ͤͯ͘
  6. /BNFTQBDFؒͷಉ࣌࡞ۀʹΑΔࣄނΛ๷͙ Ϛʔδ ςετ ηΩϡϦςΟνΣοΫ Ϗϧυ εςʔδϯά΁ࣗಈσϓϩΠ εςʔδϯά&&ςετ %PDLFSʹϦϦʔεϏϧυλά 34QFD +FTU

    #SBLFNBO OQNBVEJU BTTFUDPNQJMFEPDLFSCVJME &&Λύε͍ͯ͠ͳ͍ͱ QSPEVDUJPOσϓϩΠͰ͖ͳ͍ σϓϩΠ͸4MBDL͔ΒίϚϯυ࣮ߦ SJEHFQPMFͰεΩʔϚʹ ࠩ෼͕͋Ε͹σϓϩΠͰ͖ͳ͍