マルチテナント アーキテクチャを検討する場合は、いくつかの決定を行う必要があり、考慮する必要がある要素があります。
マルチテナント アーキテクチャでは、テナント間でリソースの一部またはすべてを共有します。 このプロセスは、マルチテナント アーキテクチャによってコストと運用効率を実現できることを意味します。 ただし、マルチテナントでは複雑さが発生します。 次の質問を自問する必要があります。
- 特定のソリューションに対して テナント とは何かを定義するにはどうすればよいですか? テナントは、顧客、ユーザー、またはチームや家族のようなユーザーのグループに対応していますか?
- マルチテナントをサポートするためにインフラストラクチャをデプロイする方法と、テナント間の分離の量はどのくらいですか?
- ソリューションはどのような商用価格モデルを提供し、価格モデルはマルチテナント要件にどのように影響しますか?
- パフォーマンス、回復性、セキュリティ、データ所在地などのコンプライアンス要件を超えて、テナントに提供する必要があるサービスレベルは何ですか?
- ビジネスやソリューションをどのように成長させる予定ですか? 予想されるテナントの数にスケーリングされますか?
- テナントに異常な要件や特別な要件がありますか? たとえば、最大の顧客には、他の顧客よりも高いパフォーマンスや強力な保証が必要ですか?
- Azure 環境を監視、管理、自動化、スケーリング、管理する方法と、マルチテナントが管理戦略にどのように影響するか。
- ソリューションのどのコンポーネントがテナントのオンボードと管理を処理し、これらのコンポーネントをどのように設計する必要がありますか?
アーキテクチャが何であれ、顧客またはテナントの要件を明確に理解することが不可欠です。 顧客に販売コミットメントを行った場合、または契約上の義務またはコンプライアンス要件を満たす場合は、ソリューションを設計するときにそれらの要件を把握する必要があります。 しかし、同様に、顧客は、物事がどのように機能 するか 、どのように行動 すべきか について暗黙的な期待を抱いている可能性があり、マルチテナント ソリューションの設計方法に影響を与える可能性があります。
たとえば、金融サービス業界の企業に販売するマルチテナント ソリューションを構築しているとします。 お客様には非常に厳密なセキュリティ要件があり、ソリューションが使用するすべてのドメイン名の包括的な一覧を提供して、ファイアウォールの許可リストに追加できるようにする必要があります。 この要件は、使用する Azure サービスと、テナント間で提供する必要がある分離レベルに影響します。 また、ソリューションに最小レベルの回復性が必要です。 ソリューション全体で考慮する必要がある、明示的と暗黙的の両方で、多くの同様の期待がある場合があります。
このセクションでは、マルチテナント アーキテクチャを計画する際に、指定する必要がある考慮事項、引き出す必要がある要件、および行う必要があるトレードオフの一部について説明します。
対象ユーザー
このセクションの記事は、最高技術責任者 (CTO) やアーキテクト、製品マネージャーなど、技術的な意思決定者に特に関連しています。 対象ユーザーには、独立系ソフトウェア ベンダー (ISV) や SaaS ソリューションを開発するスタートアップ企業も含まれます。 さらに、マルチテナント アーキテクチャを使用するユーザーは、これらの原則とトレードオフについて理解している必要があります。
次のステップ
ソリューションに異なる テナント モデル を検討してください。