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