プラットフォーム設計

マルチテナントSaaSアーキテクチャ

マルチテナントSaaSプラットフォームをエンドツーエンドで設計します——テナント分離、権限管理、インテグレーション、リリース計画まで——実際に構築・稼働しているプラットフォームに基づいています。

他のすべての機能が依存する決定

他のすべての機能が依存する決定

マルチテナントSaaSプラットフォームは、単一のコードベース、単一のスキーマ、単一のリリースサイクルを共有しながら、各テナントのデータと権限を分離しておく必要があります。分離、権限、テナントごとの挙動をどのように強制するかというこのテナンシーモデルこそ、他のすべての機能が依存するアーキテクチャ上の決定であり、本サービスの核心です。スキーマとテナンシーモデルからAPI設計、リリース戦略に至るまで、マルチテナントSaaSプラットフォームをエンドツーエンドで設計します。

01

詳細

テナント分離の実践

テナント分離はさまざまな層で強制できますが、適切な層はプラットフォームのリスクプロファイルによって決まります。Omnitech CRMでは、キューイングされたバックグラウンド処理を含め、モデル層およびクエリ層でフェイルクローズ方式により分離を強制しており、テナントスコープが欠落している場合はテナント間でデータが漏えいするのではなく、リクエスト自体を失敗させます。IMFlow360では、行単位のマルチテナンシーモデルによりすべてのレコードがビジネスと支店単位でスコープされ、業種ごとに別々のコードベースへ分岐させるのではなく、business_typeフィールドによってカタログ、注文、ワークフローの挙動を切り替えることで、小売、飲食、サロン/スパ、予約制ビジネスが約146テーブルからなる一つの共有スキーマ上で稼働できるようになっています。

02

詳細

権限とレコードスコープを分離して管理

分離は「そもそもテナントのデータを誰が閲覧できるか」に答えるものであり、権限は「そのテナント内で認証されたユーザーが何を行えるか」に答えるものです。Omnitech CRMでは、22のビジネスモジュールにまたがる126の権限からなる中央権限レジストリによって、この2つを意図的に分離しています。許可されるアクションをレコードスコープとは切り離して管理することで、その下にある分離層に触れることなく、ロールの権限範囲を広げたり狭めたりできます。

03

詳細

インテグレーションとリリース計画

SaaSプラットフォームのインテグレーションとリリース計画は、後から取り付けるものではなく、テナンシーモデルによって形づくられるものです。Pulse / MyOmniHubでは、公開機能、採用、フォーム、コマースといった各プロダクト領域を自己完結型のモジュールとして分離する一方、Facebook、Instagram、TikTok、YouTube、LinkedIn、Xをそれぞれ独立したチャネルアダプターが担当しており、一つのインテグレーションを変更しても、プラットフォームの他の部分を再デプロイ・再テストする必要がありません。IMFlow360のオフラインファーストなPOS(店頭販売)層はこれをさらに一歩進めています。各デバイスは自身のトランザクションをアウトボックスにキューイングし、クライアント側で生成された識別子をキーとする単一のバッチエンドポイントを通じて同期するため、複数の端末や不安定な接続があっても、注文の重複や欠落にはつながりません。

適合性

こんな方に

  • マルチテナントSaaSプラットフォームをゼロから設計しようとしている創業者。
  • 顧客が増えるにつれ、既存のテナンシーモデルからデータ、権限、複雑さが漏れ出してしまっているチーム。
  • テナントごとに挙動を分ける設計になっていないプラットフォームに、第二のプロダクトラインや業種を追加しようとしている企業。
  • POSアプリケーションや現場向けアプリケーションを、オフラインファーストなマルチデバイスモデルへ移行しようとしている事業者。

範囲

対応範囲

  • テナンシーモデルの選定:プラットフォームの分離要件・スケール要件に応じた、行単位方式、スキーマ単位方式、テナントごとのデータベース方式の選択
  • テナント分離とは切り離した、権限およびレコードスコープの設計
  • 管理者、テナント、デバイス/モバイル向けのAPI設計
  • 不安定な接続環境で稼働するプラットフォームのための、オフラインファースト・マルチデバイス同期戦略
  • すでに稼働中のマルチテナントプラットフォームに対するリリースおよび移行計画

成果物

提供内容

  1. テナンシーおよびデータ分離モデル
  2. 権限およびレコードスコープの設計
  3. APIおよびインテグレーションアーキテクチャ
  4. リリースおよび移行計画

根拠

関連事例

オムニテック CRM プロジェクトのイラスト

オムニテック CRM

フェイルクローズ方式のテナント分離、スコープ設定可能な権限、構成可能なパイプライン、リードのコンバージョン、レガシーデータ移行を備えたマルチテナントCRM兼収益管理プラットフォーム。

IMFlow360 プロジェクトのイラスト

IMFlow360

Laravelクラウドとオフラインファーストで動作するFlutter製POS、そして連動する顧客向けディスプレイを組み合わせたマルチテナントSaaS型POSプラットフォームで、小売、レストラン、サロン/スパ、予約制ビジネスを1つの連携システムから提供します。

パルス / MyOmniHub プロジェクトのイラスト

パルス / MyOmniHub

マルチチャネル配信、AI支援コンテンツ、公開フォーム、採用ワークフロー、Webサイト、テナント向けストアフロントを統合したモジュール型Laravelプラットフォーム。

参考資料

関連する技術記事

マルチテナント分離:二つの有効な答え → レガシーデータの照合はインポートスクリプトではない → ビジネス用 AI アーギエントのアプライケーション → データと話す:それをwellにするために必要なこと →

明確な出発点

まずは、内容を明確にしたご依頼から始めましょう。

目的に合った支援の形をお選びください。すべてのオファーには明確なプロセスと定義されたスコープがあり、商業条件は着手前に合意します。

  • 専門性の集中シニアの技術的判断
  • 明確なプロセス着手前にスコープを合意
  • 想定外をなくす透明な条件

表示中: 01 / 01

すべてのオファーを表示しています。

質問と回答

SaaSアーキテクチャに関するよくある質問

More questions? Feel free to reach out.

すべてのサービスを見る →
テナンシーモデルとは何か、そしてなぜ最初に決めるべきなのか?

テナンシーモデルとは、単一のコードベースとスキーマを共有しながら、あるテナントのデータと権限を他のテナントから分離しておく方法についての決定です。権限、API、インテグレーション、リリース計画といった他のすべての機能は、テナンシーモデルが提供する分離保証の上に構築せざるを得ないため、これが最初に決まるべき事項となります。

マルチテナントSaaSプラットフォームでは、テナントデータはどのように分離されているのか?

分離はリスク許容度に応じて異なる層で強制できます。Omnitech CRMでは、キューイングされたバックグラウンド処理を含め、モデル層およびクエリ層でフェイルクローズ方式により強制されており、テナントスコープが欠落している場合はテナント間漏えいのリスクを冒すのではなく、リクエストを失敗させます。IMFlow360では、行単位のマルチテナンシーによって強制されており、すべてのレコードがビジネスと支店単位でスコープされます。

権限とテナント分離はどう違うのか?

テナント分離は、そもそもリクエストが他のテナントのデータに到達できるかどうかを制御します。権限は、認証されたユーザーが自分自身のテナント内で何を行えるかを制御します。Omnitech CRMでは、22のモジュールにまたがる126の権限からなる中央権限レジストリによってこの2つを分離しており、その下にある分離層に触れることなくロールの権限を変更できます。

一つの共有プラットフォームで、本当に異なる業種に対応できるのか?

はい、挙動をコードの分岐ではなくデータによって差別化する場合には可能です。IMFlow360は、業種ごとに別々のコードベースを維持するのではなく、business_typeフィールドによってカタログ、注文、ワークフローの挙動を切り替えることで、小売、飲食、美容/サロン/スパ、予約制ビジネスに一つの共有スキーマから対応しています。

Let's build what's next

Have a complex system that needs to be built right?

Whether you are starting from an idea, replacing an existing platform, or scaling a system, let's talk.

Better Technology.
Brighter Possibilities.