あなたは、経費を削減し、拡張性を高め、クラウドベースのアプリケーションを保護するソリューションをお探しの開発者、システム アーキテクト、または IT マネージャーですか?
この場合、マルチテナンシーが解決策になる可能性があります。
この記事では、マルチテナントの基本、それを実装するための代替手法、および考慮すべき重要な要素について説明します。 このガイドには、始めるために必要なものがすべて記載されています。
マルチテナンシーとは何ですか?
マルチテナント ソフトウェア アーキテクチャの概念に基づいて、単一のソフトウェアが多数のクライアント (テナント) にサービスを提供できます。 各テナントには独自のデータ、構成、 ユーザーインターフェース 論理的に他のものから分離されています。
これは、各テナントのデータが他の借主のデータとは異なり、他のテナントがアクセスできないことを意味します。 多数のクライアントが同じインフラストラクチャを共有するクラウドベースのソフトウェアでは、マルチテナンシーが頻繁に使用されます。
マルチテナンシーはしばらくの間概念として存在していましたが、 クラウドコンピューティング、最近よく知られるようになりました。 クラウドベースのソフトウェアでは、マルチテナントは経費を節約し、拡張性を高め、柔軟性を高めるための強力な技術です。
どうしてそれが重要ですか?
マルチテナントの起源は、複数のプログラムとユーザーが単一の処理ハードウェア プラットフォームを共有していた従来のメインフレーム設計にあります。 最新のハードウェア支援仮想化の導入により、マルチテナントの人気が急上昇しています。
仮想マシンとそのアプリケーションなど、多数のソフトウェア インスタンス間でハードウェアを共有する機能は、クラウドベースのソフトウェアの重要な機能として浮上しています。
マルチテナンシーは、ローカル データ センターや、コロケーションや共有 IT サービスなどのホスト型インフラストラクチャで一般的に利用されており、複数のユーザーが制限されたハードウェア インフラストラクチャまたは共有ハードウェア インフラストラクチャを共有できるようになります。
マルチテナンシーは、コストを削減し、拡張性を強化し、クラウドベースのソフトウェアのセキュリティを向上させる能力があるため、ソフトウェア設計パラダイムとして不可欠なものとなっています。
それはどのように達成されるのでしょうか?
仮想化、コンテナ化、および クラウドコンピューティング は、マルチテナントを実現するために使用されるアプローチとテクノロジーの一部です。
仮想化により、多数の仮想コンピュータまたはオペレーティング システムが XNUMX 台の物理マシン上で動作できるようになり、さまざまな分離環境を作成できるようになります。
一方、コンテナ化では、同じオペレーティング システム カーネルを共有する、軽量で分離されたポータブルな環境の開発が可能になります。
クラウド コンピューティングは、多数のユーザーがコンピュータ リソースのオンデマンド プールを共有できる、拡張性と適応性に優れたアーキテクチャです。
これらのテクノロジーをさまざまな管理およびセキュリティ技術と組み合わせると、各テナントの分離、セキュリティ、パフォーマンスを保証するマルチテナント環境の開発が可能になります。
シングルテナントとマルチテナントの違い
シングルテナント環境とマルチテナント環境の主な違いは、シングルテナント環境の顧客はアプリケーションとサポートするインフラストラクチャの専用インスタンスを所有するのに対し、マルチテナント環境では複数の顧客が同じアプリケーションとインフラストラクチャを共有することです。
各顧客のデータはマルチテナント環境で他の顧客のデータから分離されていますが、同じコードベースとインフラストラクチャを共有しています。 これにより、ベンダーはプログラムの単一インスタンスで複数のクライアントにサービスを提供できるため、マルチテナント状況におけるベンダーのコストが削減されます。
一方、シングルテナント設定では、各クライアントに専用のリソースがあり、ある顧客の行為が他の顧客の行為に影響を与えないため、より多くの制御、カスタマイズ、セキュリティが提供されます。
マルチテナンシーの利点
- コスト削減: マルチテナンシーにより、多数の顧客が同じインフラストラクチャを共有できるため、ソフトウェア販売者と顧客の両方がコストを節約できます。
- スケーラビリティの向上: マルチテナンシーにより、ソフトウェア プロバイダーは、顧客ごとに新しいハードウェアやソフトウェアを導入することなく、顧客の要求に合わせてインフラストラクチャを簡単に拡張できます。
- 柔軟性の向上: マルチテナンシーにより、ソフトウェア ベンダーと消費者の両方にさらなる自由が与えられます。 顧客は必要に応じて使用量を変更できますが、ソフトウェア サプライヤーはさまざまなサービス レベルと価格体系を提供できます。
- セキュリティの向上: マルチテナントは各テナントのデータを分離し、他のテナントがデータにアクセスできないようにするため、セキュリティが強化されます。
- リソース使用率の向上: マルチテナンシーにより、ソフトウェア サプライヤーはハードウェア リソースを最大限に活用できるようになり、パフォーマンスと効率が向上します。
マルチテナンシーへのアプローチ
個別のデータベース
このアプローチでは、各テナントに独自のデータベースがあります。 これは最も単純なソリューションであり、テナント間で完全なデータ分離を実現します。 各テナントはデータベースを完全に制御でき、好みに合わせて構成できます。
ただし、この戦略は各テナントにデータベース インスタンスが必要なため、コストがかかる可能性があります。 さらに、複数のデータベースの管理は複雑で時間がかかる場合があります。
共有データベース、個別のスキーマ
この手法ではすべてのテナントが単一のデータベースを共有しますが、各テナントはそのデータベース内に独自のスキーマを持ちます。 すべてのテナントが単一のデータベース インスタンスを共有するため、この手法ではリソースが効率的に利用されます。
また、処理するデータベースが XNUMX つだけなので、管理とメンテナンスが容易になります。
ただし、十分なデータ分離を確保するために各テナントのスキーマを慎重に構築および維持する必要があるため、展開はより困難になる可能性があります。 この方法は、テナントが同等のサービスを持っているシナリオに最適です。 データ構造 ただし、データの分離が必要です。
共有データベース、共有スキーマ
このモデルのすべてのテナントは、単一のデータベースとそのデータベース内の単一のスキーマを共有します。 これは、管理に必要なデータベース インスタンスとスキーマが XNUMX つだけなので、最もリソース効率の高いオプションです。
ただし、テナント間で十分なデータ分離を維持するのは難しい場合があります。 この方法は、テナントが同一のデータ構造を持ち、完全なデータ分離を必要としないシナリオに適しています。
マルチテナンシーに関するさまざまな考慮事項
データ分離
データの分離は、マルチテナンシーの最も重要な側面の XNUMX つです。
不要なアクセスを回避するには、各テナントのデータを分離して安全に保管する必要があります。 これは、多くの場合、異なるデータベース、スキーマ、またはテーブルなどの論理的または物理的な分離手法を使用して実現されます。
各テナントのデータのプライバシーとセキュリティを保護するために、データを確実に分離することが重要です。
テナントのオンボーディング
新しいテナントをマルチテナント システムに導入するプロセスは、テナント オンボーディングと呼ばれます。 現在のテナントへの中断を最小限に抑えながら、新しいレンタル者が適切にオンボーディングされるように、この手順は慎重に管理する必要があります。
これには、新しいリソースの提供、新しいアカウントの作成、テナントの環境の構成が含まれます。
簡素化されたオンボーディング手順により、経費が削減され、テナント管理の効率が向上します。
性能
マルチテナンシーは、特にテナントが処理能力、メモリ、ストレージなどのリソースを共有する場合、システムのパフォーマンスを低下させる可能性があります。 騒音近隣効果のため、あるテナントのアクティビティが他の賃貸人のパフォーマンスに影響を与える可能性があります。
リソースの割り当てと監視を慎重に行うことで、この問題を軽減し、各テナントのパフォーマンスが損なわれないようにすることができます。
セミオーダーサービス
各テナントが自分の要求に合わせて環境をパーソナライズできる機能は、カスタマイズとして知られています。 カスタマイズにより各テナントのマルチテナント システムの価値が高まる一方で、管理の複雑さとコストも増加する可能性があります。
カスタマイズと標準化のバランスをとることは、各テナントの特定の要求を満たしながら、システムの拡張性と保守性を確保するのに役立ちます。
マルチテナントの例
パブリック クラウド マルチテナンシー
パブリック クラウド マルチテナンシーの顧客は、リソースとサービスのインスタンスを使用して、ビジネス アプリケーションのホスティングに適したアーキテクチャを構築します。
すべてのクラウド リソースまたはサービスは、基盤となるハードウェアとネットワークの容量を共有するため、この戦略は消費者に専用のリソースを提供する可能性がありますが、これはルールではなく例外です。
マルチテナントを実現するために、パブリック クラウド プロバイダーは、VM ベースやコンテナベースのアプローチなど、さまざまな方法論を採用しています。
ハードウェア - VM とコンテナ
ハードウェア仮想化を使用して複数の仮想マシンと仮想コンテナを生成し、単一のサーバー上でホストできます。各 VM は、異なる関係者、部門、またはクライアントによって管理される個別のアプリケーションまたはサービスを実行します。
ハードウェアのマルチテナントは一般的です 現代のデータ これは、すべてのクラウド コンピューティングを実現する重要な要素です。
SaaS マルチテナンシー
Software as a Service (SaaS) プロバイダーはクラウド プロバイダーとして分類されることが多いため、これはパブリック クラウド マルチテナンシーのバージョンです。
たとえば、SaaS プロバイダーは、データベースの XNUMX つのインスタンス上でプログラムの XNUMX つのインスタンスを操作し、複数のクライアントにオンライン アクセスを提供できます。 この場合、各テナントのデータは分離され、他の借主には見えなくなります。
マルチテナンシーは、SAP のような多層システムにも導入される場合があります。
プライベート クラウド マルチテナント
プライベート クラウドのマルチテナント。 プライベート クラウドは、マルチテナントという点ではパブリック クラウドに似ていますが、プライベート クラウドは単一の企業またはグループ専用であるのに対し、パブリック クラウドは多数のクライアントまたは組織のニーズに応えます。
サーバーレスマルチテナンシー
サーバーレス コンピューティングは、コードの実行時にインフラストラクチャを終了する前に、イベントを利用して顧客のコードをロードして実行するクラウド サービスです。
多くのプログラムが同じ機能を共有でき、その機能は利用可能な共有ハードウェア インフラストラクチャにロードされて動作します。
考えられる欠点は何ですか?
大きな欠点の XNUMX つは、データ漏洩の可能性です。 複数のテナントが同じインフラストラクチャを共有しているため、XNUMX つのテナントのアプリケーションにセキュリティ上の欠陥があると、他のすべてのテナントのデータが危険にさらされる可能性があります。
もう XNUMX つの欠点は、あるテナントの使用習慣によって他の借主のアプリケーションのパフォーマンスが低下する可能性がある、近隣騒音効果の可能性です。
また、変更や統合の展開が困難な場合があり、特定のテナントでは、他のテナントとは互換性のない個別の設定やプログラム バージョンが必要になる場合があります。
最後に、マルチテナンシーは、多くのアプリケーション、特に高レベルの速度や厳格なデータ分離を必要とするアプリケーションには適切ではない可能性があります。
クラウドベースのソフトウェアにおけるマルチテナントの今後の方向性
クラウドベースのソフトウェアが拡大し、適応し続けるにつれて、マルチテナンシーの将来は明るいように見えます。 よりきめ細かいリソースの割り当てと消費を可能にするサーバーレス コンピューティングの人気が高まっています。
これにより、分離性とリソース使用率が向上し、マルチテナント性が向上する可能性があります。 柔軟性とモジュール性を向上させるマイクロサービスとコンテナは、マルチテナントのもう XNUMX つの手段です。
さらに、機械学習および人工知能テクノロジーには、マルチテナント システムにおけるリソースの割り当てとパフォーマンスを最適化する可能性があります。
最後に、クラウドベースのソフトウェアにおけるマルチテナンシーの将来は、技術の向上とビジネス需要の変化の結果として変化するでしょう。
コメントを残す