マルチテナント・アーキテクチャーは、単一のアプリケーション・インスタンスが複数のテナント(企業、グループ、個々のユーザーなど)をサポートするソフトウェア・アーキテクチャー・アプローチです。各テナントのデータは、同じインフラストラクチャーとコード・ベースを共有しながらも、分離されてカスタマイズされています。マルチテナント・アプリケーションの簡単な例として、共同住宅があり、各テナントが自分のロックされた部屋(データ)と共通の設備(インフラストラクチャー)を共有しています。Slack や Jira のようなクラウド・サービスでは、各企業が同じシステムを使用しているが、自分のデータとカスタマイズのみを表示しています。マルチテナント・アーキテクチャーは、ユーザー・アカウントとは異なり、各テナントが自分の分離されたスペースを持つ一方、ユーザー・アカウントでは同じデータと一般的な設定を共有しています。マルチテナント・アプリケーションでは、各テナントが異なる設定、ブランド、または機能を持つことができます。マルチテナント・アプリケーションのデータベース・マネジメントでは、データベースの設計方法を決定する必要があり、例えば、すべてのテナントに一つのデータベースとスキーマを使用する、各テナントにデータベースを使用する、または一つのデータベースに各テナントの異なるスキーマを使用するなどのアプローチがあります。各アプローチには、分離、カスタマイズ、リソース・コストなどの利点と欠点があります。マルチテナント・アーキテクチャーは、SaaS(ソフトウェア・アズ・ア・サービス)アプリケーション、例えばプロジェクト・マネジメント・ツールやクラウド・サービスで一般的に使用されています。マルチテナント・パターンの理解は、開発者がより効率的でスケーラブルなアプリケーションを設計および実装することを助けます。
dev.to
Multi Tenant Architecture in Software: What Is It and Its Databases Patterns
