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

マルチテナント設計色々考えて、結局何もしなかった話

 マルチテナント設計色々考えて、結局何もしなかった話

「マルチテナント設計色々考えて、結局何もしなかった話」

4/20(水) 18:00~20:00に開催された SaaS.tech 第2回イベントにVPoE青木が登壇した際の資料を公開します。
https://saas-tech.connpass.com/event/243204/
イベントハッシュタグ:#SaaSTech

https://www.estie.jp/corp/

estie | エスティ

April 20, 2022
Tweet

More Decks by estie | エスティ

Other Decks in Programming

Transcript

  1. Ծ
    Ϛϧνςφϯτઃܭ৭ʑߟ͑ͯɺ݁ہ
    Կ΋͠ͳ͔ͬͨ࿩
    4BB4UFDI
    גࣜձࣾFTUJF
    71P& ੨໦৴

    View full-size slide


  2. ࣗݾ঺հ
    ੨໦ ৴ʢ͓͖͋͠Μʣ
    גࣜձࣾFTUJF71PG&OHJOFFSJOH
    • dਓ໨ͷ։ൃ෦໳ࣾһͱ
    ͯ͠ೖࣾ
    • ࠷ۙ͸ɺ࠾༻ٕज़޿ใ੍౓ӡ༻
    43&σʔλ෼ੳج൫ ͋ͨΓ
    • ೖࣾલ਺ֶՊˠΞΫηϯνϡΞ
    • 🦔ͷFSJ[Pͱ฻Β͍ͯ͠·͢

    View full-size slide

  3. ࠓ೔ͷ͓࿩

    View full-size slide


  4. ˙࿩͢͜ͱ
    • ϚϧνςφϯτઃܭͰ࠷ॳʹߟ͑Δ͜ͱ
    • Ϛϧνςφϯτઃܭͷݟ௚͠ͷ͖͔͚ͬͱݕ౼ͨ͜͠ͱ
    • Ͳ͏ͯ͠ݕ౼ͨ͠ϚϧνςφϯτઃܭΛద༻͠ͳ͔ͬͨͷ͔
    ˙࿩͞ͳ͍͜ͱ
    • ֤ιϦϡʔγϣϯͷٕज़తͳৄ͍͠આ໌
    ࠓ೔࿩͢͜ͱɺ࿩͞ͳ͍͜ͱ

    View full-size slide


  5. αʔϏεͷલఏ
    ౰ॳͷϚϧνςφϯτઃܭ
    มߋͷ͖͔͚ͬͱબ୒ࢶ
    ʮ΍ͬͺΓͳʹ΋͠ͳ͍͜ͱʹͨ͠ʯཧ༝
    ·ͱΊ
    ΞδΣϯμ

    View full-size slide

  6. αʔϏεͷલఏ

    View full-size slide


  7. ର৅ͷαʔϏε

    View full-size slide


  8. ʢલఏʣݕ౼ର৅ͷγεςϜߏ੒
    • 7VFKT3VCZ PO3BJMTͷ8FCΞϓϦέʔγϣϯ
    • %#͸"VSPSB .Z42-
    Λ࠾༻
    • ෆಈ࢈σʔλΛऩू͠αʔϏεʹૹΓಧ͚ΔEBUBQJQFMJOF͕ଘࡏ

    View full-size slide

  9. ౰ॳͷϚϧνςφϯτઃܭ

    View full-size slide


  10. Ϛϧνςφϯτͱ͸
    Πϯϑϥඅ༻ͱ؅ཧɾӡ༻޻਺ͷ࡟ݮ
    4BB4ͳͲෳ਺اۀʹఏڙ͢ΔαʔϏεʹ͓͍ͯ
    • ෳ਺ͷςφϯτʢاۀʣͰܭࢉࢿݯʢ8FCαʔό %#ʣΛڞ༗
    • ςφϯτؒͰσʔλͷίϯςΫετ͕෼཭͞Ε͍ͯΔঢ়ଶΛఏڙ

    View full-size slide


  11. Ϛϧνςφϯτઃܭͷબ୒ࢶ
    େ·͔ʹछྨʹ෼ྨ͞ΕΔ
    ᶃ αʔό%#ͱ΋෼཭
    ᶄ %#ͷΈ෼཭
    ᶅ αʔό%#ͱ΋ڞ༗
    出典: Web アプリケーションをマルチテナント型 SaaS ソリューションに変換する
    https://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/

    View full-size slide


  12. FTUJFQSPͰ͸
    • ᶅʮσʔλϕʔεͷΠϯελϯε΍εΩʔϚ͸Ϛϧνςφϯτͱͯ͠ɺ
    ςʔϒϧ಺ͷςφϯτ*%Ͱ෼཭͢ΔʯܗࣜΛ࠾༻
    • ΞϓϦέʔγϣϯ͔ΒΞΫηε͢Δࡍ8)&3&۟Ͱ੍ݶ͢Δzૉ๿ͳzઃܭ

    View full-size slide


  13. FTUJFQSPͷஔ͔Εͨ؀ڥ
    ར༻ऀ
    • 7FSUJDBM4BB4ͳͷͰɺςφϯτ਺͸͋Δఔ౓ݶΒΕ͍ͯΔ
    σʔλ
    • Ϣʔβ͕ࢀর͢Δσʔλͷେ෦෼͸FTUJF͕༻ҙͨ͠ෆಈ࢈σʔλ
    • ςφϯτຖʹอ͍࣋ͨ͠σʔλʢϝϞͳͲʣ΋͋Δ͕ػີੑ͸ͦ͜·Ͱ
    ߴ͘ͳ͍
    • ʮ࿙ΕͨΒҰൃୀ৔ʯͷσʔλ͸ͳ͍
    • શςφϯτͰڞ௨ͷσʔλߏ଄Λఏڙ͍ͯ͠Δ

    View full-size slide


  14. FTUJFQSPͷஔ͔Εͨ؀ڥ
    ར༻ऀ
    • 7FSUJDBM4BB4ͳͷͰɺςφϯτ਺͸͋Δఔ౓ݶΒΕ͍ͯΔ
    σʔλ
    • Ϣʔβ͕ࢀর͢Δσʔλͷେ෦෼͸FTUJF͕༻ҙͨ͠ෆಈ࢈σʔλ
    • ςφϯτຖʹอ͍࣋ͨ͠σʔλʢϝϞͳͲʣ΋͋Δ͕ػີੑ͸ͦ͜·Ͱ
    ߴ͘ͳ͍
    • ʮ࿙ΕͨΒҰൃୀ৔ʯͷσʔλ͸ͳ͍
    • શςφϯτͰڞ௨ͷσʔλߏ଄Λఏڙ͍ͯ͠Δ
    ૣ͘ఏڙͰ͖Δૉ๿ͳܗͰ࣮૷

    View full-size slide

  15. มߋͷ͖͔͚ͬͱબ୒ࢶ

    View full-size slide


  16. 1IBTF
    ۭࣨɾاۀ৘ใͷ
    σʔλج൫ߏங
    1IBTF
    1IBTF
    τϥϯβΫγϣϯ
    ϓϥοτϑΥʔϜ

    View full-size slide


  17. มߋͷ͖͔͚ͬ
    • ϩʔυϚοϓͷதͰʮ௞ିܖ໿؅ཧͷσδλϧԽʯΛݕ౼
    • ͭ·Γʮ࿙ΕͨΒҰൃୀ৔ʯͷσʔλΛѻ͏͜ͱΛߟ͑ͨ
    ։ൃऀͷʮ͏͔ͬΓʯ͕Ϩου
    ΧʔυʹͳΒͳ͍࢓૊ΈΛߟ͑ͨ

    View full-size slide


  18. ݕ౼ͨ͠ιϦϡʔγϣϯ
    "QBSUNFOU
    1PTUHSF42- 3-4 3PX-FWFM4FDVSJUZ

    ϢʔβຖʹαʔόΛ෼཭

    View full-size slide

  19. ιϦϡʔγϣϯͷҐஔ͚ͮ
    Ґஔ͚ͮ
    ֓ཁ
    "QBSUNFOU
    3-4 3PX-FWFM
    4FDVSJUZ

    ϢʔβຖʹαʔόΛ
    ෼཭
    ᶄ%#ͷΈ෼཭
    • 3VCZPO3BJMTͷHFN
    • UFOBOU*%ຖʹ৽نొ
    ࿥࣌ʹ$SFBUF
    %BUBCBTF
    • σʔλͷࠞ୙Λ༧๷
    ग़དྷΔ
    • 4NBSU)3ͳͲͰաڈ
    ར༻࣮੷͋Γ
    ᶅαʔό%#ͱ΋ڞ༗
    • 1PTUHSF42-ͷߦϨ
    ϕϧͰͷΞΫηε੍
    ޚΛՄೳͱ͢Δػೳ
    • ςφϯτຖʹΞΫη
    εՄೳͳϨίʔυΛ
    ઃఆ͢Δ͜ͱͰࠞ୙
    Λ༧๷Մೳ
    • ෳ਺ͷར༻࣮੷͋Γ
    ᶃαʔό%#ͱ΋෼཭
    • ςφϯτຖʹαʔό
    Λ෼཭
    • ڞ༗ςφϯτຖͷ
    %#ʹ઀ଓ
    • ؀ڥม਺Ͱ઀ଓઌͷ
    %#Λ੾Γସ͑Δ
    • ࣮੷ͳ͠

    View full-size slide


  20. 1SPT$POTൺֱ
    • ͜͜ʹڍ͛ͨҎ֎ͷબ୒ࢶ΋ؚΊιϦϡʔγϣϯબఆΛਐΊΑ͏ͱͯ͠
    ͍ͨ
    • ࠓճ͸ʮͲ͏ͤ΍Βͳ͍͜ͱʹͳͬͨʯͷͰࡉ͔͍߲໨͸লུ
    • ͜ΕΒͷબ୒ࢶΛϕʔεʹৄࡉݕ౼ΛਐΊ͍ͯͨ
    ͦΜͳ͋Δ೔ʜ

    View full-size slide

  21. ʮ΍ͬͺΓͳʹ΋͠ͳ͍͜ͱʹͨ͠ʯ

    View full-size slide


  22. ͦΜͳ͋Δ೔ŋŋŋ
    • 4MBDL$POOFDU͕ొ৔ͨ͠
    • ΊͪΌͪ͘ΌศརͰ͢ΑͶ😀
    • ଞͷεϖʔεͷϢʔβͱࣗεϖʔε಺Ͱϝοηʔδ͕Մೳ
    • ʮզʑͷαʔϏεͰ΋ࣅͨΑ͏ͳػೳ͕͋Δ͔΋ʯ🤔
    • ෳ਺ͷάϧʔϓձࣾͰ෼ੳͨ݁͠ՌΛڞ༗
    • ෆಈ࢈σϕϩούʔ͕؅ཧ͍ͯ͠Δ৘ใΛ஥հձࣾʹ࿈ܞ
    • FUD
    • ࣾ಺ͷυϝΠϯΤΩεύʔτ΋ʮ͔֬ʹ͋Δ͔΋ʯͱ͍͏ײ৮
    %#෼ׂ͍ͯ͠Δͱେมͦ͏

    View full-size slide


  23. ࣮ࡍ4MBDLͰ΋ʜ
    • αʔϏε։࢝౰ॳʮᶄ%#ͷΈ෼཭ʯΛϕʔεʹͨ͠ߏ੒
    • 4MBDL$POOFDUͷΑ͏ͳػೳͷෳࡶ౓্͕͕ΔͳͲͷෳ਺ͷ՝୊͕ग़
    ͖ͯͨ
    • ೥͔Β7JUFTTϕʔεʹҠߦ
    • 7JUFTT౰ॳ:PVUVCF։ൃνʔϜͰ։ൃ͞Εɺޙʹ044Խ͞Εͨ෼ࢄ
    σʔλϕʔειϦϡʔγϣϯ
    出典: Scaling Datastores at Slack with Vitess
    https://slack.engineering/scaling-datastores-at-slack-with-vitess/

    View full-size slide


  24. զʑͷࣦഊ
    • վΊͯͭͷཁ݅Λݟ௚͠
    • ʮ࿙ΕͨΒҰൃୀ৔ʯΛࠞ୙ͷϦεΫগͳ͘อ࣋͢Δ
    • ςφϯτؒͰ৘ใͷ΍ΓͱΓΛՄೳͱ͢Δ
    • কདྷߟ͑͏ΔϓϩμΫτͷํ޲ੑ΍ɺͦͷ৔߹ͷίετͷมԽΛߟྀ͠
    ͖Βͣʹ໨ͷલͷٕज़తͳঢ়گ͚ͩͰҙࢥܾఆΛ͠Α͏ͱ͍ͯͨ͠
    • ຊ౰ʹඞཁͳͷ͔͍ͭඞཁͳͷ͔Λਫ਼͔ࠪͯ͠ΒऔΓ૊Ή͜ͱʹͨ͠
    ʢҰ୴ʣ൑அΛ஗Ԇͯ͠
    ʮԿ΋͠ͳ͍ʯ͜ͱʹͨ͠

    View full-size slide


  25. ·ͱΊʢڭ܇ʣ
    • ϕετͳϚϧνςφϯτઃܭ͸ϓϩμΫτͷੑ࣭ɾϑΣʔζͰҟͳΔ
    • ໨ͷલͷ՝୊Λղ͘͜ͱʹूத͢Δ͚ͩͰͳ͘ɺকདྷͷࣄۀɾϓϩμΫ
    τ·Ͱݟӽͯ͠ιϦϡʔγϣϯͷݕ౼Λ͢Δͷ͕େࣄ
    • ΤϯδχΞ͸Ͳ͏ͯ͠΋IPXΛߟ͑Δͷָ͕͘͠ͳΓ͕ͪ
    • ͋ΔιϦϡʔγϣϯΛಋೖ͢ΔͱকདྷผͷػೳΛఏڙͮ͠Β͘ͳΔ
    ͜ͱ΋͋Δ

    View full-size slide