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/

5d9c07f0c2044b1407a84d88362bc84d?s=128

estie | エスティ

April 20, 2022
Tweet

More Decks by estie | エスティ

Other Decks in Programming

Transcript

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

  2.  ࣗݾ঺հ ੨໦ ৴ʢ͓͖͋͠Μʣ גࣜձࣾFTUJF71PG&OHJOFFSJOH • dਓ໨ͷ։ൃ෦໳ࣾһͱ ͯ͠ೖࣾ • ࠷ۙ͸ɺ࠾༻ٕज़޿ใ੍౓ӡ༻

    43&σʔλ෼ੳج൫ ͋ͨΓ • ೖࣾલ਺ֶՊˠΞΫηϯνϡΞ • 🦔ͷFSJ[Pͱ฻Β͍ͯ͠·͢
  3. ࠓ೔ͷ͓࿩

  4.  ˙࿩͢͜ͱ • ϚϧνςφϯτઃܭͰ࠷ॳʹߟ͑Δ͜ͱ • Ϛϧνςφϯτઃܭͷݟ௚͠ͷ͖͔͚ͬͱݕ౼ͨ͜͠ͱ • Ͳ͏ͯ͠ݕ౼ͨ͠ϚϧνςφϯτઃܭΛద༻͠ͳ͔ͬͨͷ͔ ˙࿩͞ͳ͍͜ͱ •

    ֤ιϦϡʔγϣϯͷٕज़తͳৄ͍͠આ໌ ࠓ೔࿩͢͜ͱɺ࿩͞ͳ͍͜ͱ
  5.   αʔϏεͷલఏ  ౰ॳͷϚϧνςφϯτઃܭ  มߋͷ͖͔͚ͬͱબ୒ࢶ  ʮ΍ͬͺΓͳʹ΋͠ͳ͍͜ͱʹͨ͠ʯཧ༝ 

    ·ͱΊ ΞδΣϯμ
  6. αʔϏεͷલఏ

  7.  ର৅ͷαʔϏε

  8.  ʢલఏʣݕ౼ର৅ͷγεςϜߏ੒ • 7VFKT 3VCZ PO3BJMTͷ8FCΞϓϦέʔγϣϯ • %#͸"VSPSB .Z42- Λ࠾༻

    • ෆಈ࢈σʔλΛऩू͠αʔϏεʹૹΓಧ͚ΔEBUBQJQFMJOF͕ଘࡏ
  9. ౰ॳͷϚϧνςφϯτઃܭ

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

  11.  Ϛϧνςφϯτઃܭͷબ୒ࢶ େ·͔ʹछྨʹ෼ྨ͞ΕΔ ᶃ αʔό%#ͱ΋෼཭ ᶄ %#ͷΈ෼཭ ᶅ αʔό%#ͱ΋ڞ༗ 出典:

    Web アプリケーションをマルチテナント型 SaaS ソリューションに変換する https://www.ibm.com/developerworks/jp/cloud/library/cl-multitenantsaas/
  12.  FTUJFQSPͰ͸ • ᶅʮσʔλϕʔεͷΠϯελϯε΍εΩʔϚ͸Ϛϧνςφϯτͱͯ͠ɺ ςʔϒϧ಺ͷςφϯτ*%Ͱ෼཭͢ΔʯܗࣜΛ࠾༻ • ΞϓϦέʔγϣϯ͔ΒΞΫηε͢Δࡍ8)&3&۟Ͱ੍ݶ͢Δzૉ๿ͳzઃܭ

  13.  FTUJFQSPͷஔ͔Εͨ؀ڥ ར༻ऀ • 7FSUJDBM4BB4ͳͷͰɺςφϯτ਺͸͋Δఔ౓ݶΒΕ͍ͯΔ σʔλ • Ϣʔβ͕ࢀর͢Δσʔλͷେ෦෼͸FTUJF͕༻ҙͨ͠ෆಈ࢈σʔλ • ςφϯτຖʹอ͍࣋ͨ͠σʔλʢϝϞͳͲʣ΋͋Δ͕ػີੑ͸ͦ͜·Ͱ

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

    ߴ͘ͳ͍ • ʮ࿙ΕͨΒҰൃୀ৔ʯͷσʔλ͸ͳ͍ • શςφϯτͰڞ௨ͷσʔλߏ଄Λఏڙ͍ͯ͠Δ ૣ͘ఏڙͰ͖Δૉ๿ͳܗͰ࣮૷
  15. มߋͷ͖͔͚ͬͱબ୒ࢶ

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

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

  18.  ݕ౼ͨ͠ιϦϡʔγϣϯ  "QBSUNFOU  1PTUHSF42- 3-4 3PX-FWFM4FDVSJUZ  ϢʔβຖʹαʔόΛ෼཭

  19. ιϦϡʔγϣϯͷҐஔ͚ͮ Ґஔ͚ͮ ֓ཁ "QBSUNFOU 3-4 3PX-FWFM 4FDVSJUZ ϢʔβຖʹαʔόΛ ෼཭ ᶄ%#ͷΈ෼཭

    • 3VCZPO3BJMTͷHFN • UFOBOU*%ຖʹ৽نొ ࿥࣌ʹ$SFBUF %BUBCBTF • σʔλͷࠞ୙Λ༧๷ ग़དྷΔ • 4NBSU)3ͳͲͰաڈ ར༻࣮੷͋Γ ᶅαʔό%#ͱ΋ڞ༗ • 1PTUHSF42-ͷߦϨ ϕϧͰͷΞΫηε੍ ޚΛՄೳͱ͢Δػೳ • ςφϯτຖʹΞΫη εՄೳͳϨίʔυΛ ઃఆ͢Δ͜ͱͰࠞ୙ Λ༧๷Մೳ • ෳ਺ͷར༻࣮੷͋Γ ᶃαʔό%#ͱ΋෼཭ • ςφϯτຖʹαʔό Λ෼཭ • ڞ༗ςφϯτຖͷ %#ʹ઀ଓ • ؀ڥม਺Ͱ઀ଓઌͷ %#Λ੾Γସ͑Δ • ࣮੷ͳ͠
  20.  1SPT$POTൺֱ • ͜͜ʹڍ͛ͨҎ֎ͷબ୒ࢶ΋ؚΊιϦϡʔγϣϯબఆΛਐΊΑ͏ͱͯ͠ ͍ͨ • ࠓճ͸ʮͲ͏ͤ΍Βͳ͍͜ͱʹͳͬͨʯͷͰࡉ͔͍߲໨͸লུ • ͜ΕΒͷબ୒ࢶΛϕʔεʹৄࡉݕ౼ΛਐΊ͍ͯͨ ͦΜͳ͋Δ೔ʜ

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

  22.  ͦΜͳ͋Δ೔ŋŋŋ • 4MBDL$POOFDU͕ొ৔ͨ͠ • ΊͪΌͪ͘ΌศརͰ͢ΑͶ😀 • ଞͷεϖʔεͷϢʔβͱࣗεϖʔε಺Ͱϝοηʔδ͕Մೳ • ʮզʑͷαʔϏεͰ΋ࣅͨΑ͏ͳػೳ͕͋Δ͔΋ʯ🤔

    • ෳ਺ͷάϧʔϓձࣾͰ෼ੳͨ݁͠ՌΛڞ༗ • ෆಈ࢈σϕϩούʔ͕؅ཧ͍ͯ͠Δ৘ใΛ஥հձࣾʹ࿈ܞ • FUD • ࣾ಺ͷυϝΠϯΤΩεύʔτ΋ʮ͔֬ʹ͋Δ͔΋ʯͱ͍͏ײ৮ %#෼ׂ͍ͯ͠Δͱେมͦ͏
  23.  ࣮ࡍ4MBDLͰ΋ʜ • αʔϏε։࢝౰ॳʮᶄ%#ͷΈ෼཭ʯΛϕʔεʹͨ͠ߏ੒ • 4MBDL$POOFDUͷΑ͏ͳػೳͷෳࡶ౓্͕͕ΔͳͲͷෳ਺ͷ՝୊͕ग़ ͖ͯͨ • ೥͔Β7JUFTTϕʔεʹҠߦ •

    7JUFTT౰ॳ:PVUVCF։ൃνʔϜͰ։ൃ͞Εɺޙʹ044Խ͞Εͨ෼ࢄ σʔλϕʔειϦϡʔγϣϯ 出典: Scaling Datastores at Slack with Vitess https://slack.engineering/scaling-datastores-at-slack-with-vitess/
  24.  զʑͷࣦഊ • վΊͯͭͷཁ݅Λݟ௚͠ • ʮ࿙ΕͨΒҰൃୀ৔ʯΛࠞ୙ͷϦεΫগͳ͘อ࣋͢Δ • ςφϯτؒͰ৘ใͷ΍ΓͱΓΛՄೳͱ͢Δ • কདྷߟ͑͏ΔϓϩμΫτͷํ޲ੑ΍ɺͦͷ৔߹ͷίετͷมԽΛߟྀ͠

    ͖Βͣʹ໨ͷલͷٕज़తͳঢ়گ͚ͩͰҙࢥܾఆΛ͠Α͏ͱ͍ͯͨ͠ • ຊ౰ʹඞཁͳͷ͔͍ͭඞཁͳͷ͔Λਫ਼͔ࠪͯ͠ΒऔΓ૊Ή͜ͱʹͨ͠ ʢҰ୴ʣ൑அΛ஗Ԇͯ͠ ʮԿ΋͠ͳ͍ʯ͜ͱʹͨ͠
  25. ·ͱΊ

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

    ͋ΔιϦϡʔγϣϯΛಋೖ͢ΔͱকདྷผͷػೳΛఏڙͮ͠Β͘ͳΔ ͜ͱ΋͋Δ
  27. 2"