クラウドコンピューティングでマルチテナントを実装する方法

クラウドコンピューティングでマルチテナントを実装する方法

翻訳者 |朱剛

校正:孫淑娟

クラウドベースの SaaS ソリューションでは、他のほとんどのソリューションと同様に、マルチテナントが必要です。マルチテナンシーとは何か、それによって何が得られるのか、そして 2 つのシンプルなレイヤーで簡単に実装するにはどうすればよいのかを簡単に確認してみましょう。

1. マルチテナントとは?

基本的に、マルチテナンシーにより、サービス (つまり、個々のマイクロサービス) の個々の部分が、顧客ごとに個別のインスタンスを展開することなく、複数の顧客にサービスを提供できるようになります。 SaaS ソリューションを低コストで拡張し、顧客の需要を満たし、弾力性(つまり、クラウド リソースのコスト効率)を確保するには、マルチテナントをサポートする必要があります。

マルチテナント アーキテクチャは、多くの優れた重要な機能を提供します。

  • 基盤となるインフラストラクチャとサービスを共有しながら、アプリケーションが複数の顧客に同時にサービスを提供できるようにします。
  • 安全で準拠したアクセス分離。
  • 負荷分散とスケーリング。

2. 2つのレベルのマルチテナント

マルチテナントを理解すれば簡単です。基本的に必要なのは、「アプリケーション レベルのアクセス制御」と「データ アーキテクチャの管理」の 2 つだけです。

これを 2 つのレベルに分解してみましょう。

  • データ層は、分離されたデータをどのように送信、保存、管理するか (つまり、基盤となるインフラストラクチャが異なるテナントのデータの混在を回避する方法) に関するものです。データ レベルでのマルチテナンシーは通常、データ ストレージ アーキテクチャ (データベースへのデータの格納方法)、トピック (Kafka トピックなど)、タグ、ドメイン、ソケット、転送中のデータのポートなど、データ レイヤーでのパーティション分割として実装されます。

単純な列ベースのテナント分離を備えたデータベース テーブルの例

  • アプリケーション レベルでは、ロジック層で異なるテナントのコンテキストとアクセスを実装する方法、つまり、同じコードを異なるテナントに適用できるようにする方法が重要です。承認は、アプリケーション レベルでマルチテナントを実装するために必要なコンポーネントです。

Permit.io の SDK を使用してマルチテナントを強制するアプリケーション ルーティングの例

3. マルチテナントを実装する

シングルテナント アプリケーションからマルチテナント アプリケーションに安全にアップグレードするための最も高速かつ信頼性の高い方法である承認レイヤー。さらに、サービス自体を変更せずに、関連するすべてのサービスにポリシーを適用することで、承認レイヤーを分離できます。

適切な戦略モデルを選択すると、この移行プロセスがさらに簡素化されます。 RBAC + テナンシー、ReBAC + 階層 (テナントがルートレベルの関係になる)、または単純な ABAC (テナンシーが属性になる) などの従来のモデルを使用します。

マルチテナント認証を独自に実装する必要はなく、既存のオープンソース ツールとサービスを使用して実現できます。

4. OPA + OPAL(オープンソース)を使用したマルチテナントの実装

オープンソース ツールを使用することは、マルチテナント認証レイヤーの実装を開始するのに最適な選択肢です。複数のオプションがありますが、最も一般的に使用されるのは Open Policy Agent (OPA) です。 OPA は、アプリケーションに追加して、独自の Rego 言語で記述されたルールを使用してアクセスを強制できる認証マイクロサービスとして機能します。

OPA と OPAL (Open Policy Management Layer) を組み合わせることで、Pub/Sub トピックを使用してエージェントにポリシー (Rego コード) とデータ (JSON ドキュメント) を通知しながら、認証レイヤーを大規模に管理できるようになります。たとえば、トピックはテナント名またはテナント ID にすることができ、これによりブローカーを各テナントの変更と同期できるようになります。

5. Permit.io を使用したマルチテナント (サービス) の実装

Permit.io のような認証ソリューションを適用します。 Permit は OPA と OPAL 上に構築され、テナント リスト、テナント リソース管理、各テナントのユーザー管理などの管理インターフェイスが追加されます。

Permit.ioダッシュボードでテナントを切り替える

6. まとめ

マルチテナントにより、顧客ごとに個別のインスタンスを展開することなく、アプリケーションで複数の顧客のニーズに対応できるようになります。 Gist のマルチテナント ソリューションは、データとアプリケーションの 2 つのレイヤーで構成されます。マルチテナントを実装する最良の方法の 1 つは、サービス自体を変更せずに分離を可能にする承認レイヤーを作成することです。独自の認証レイヤーを構築することもできますが、アプリケーションに月単位のマルチテナント認証レイヤーを実装できるオープンソース プロジェクト (OPA + OPAL など) やサービス (Permit.io など) もあります。

元のリンク: https://dev.to/permit_io/how-to-implement-multitenancy-in-cloud-computing-4pif

翻訳者について

朱剛、51CTOコミュニティ編集者、2021年IT影響力のある専門家ブロガー、アリババクラウド専門家ブロガー、2019年CSDNブログスタートップ20、2020年テンセントクラウド+コミュニティ優秀著者、11年間の最前線開発経験を持ち、ヘッドハンティングサービスのウェブサイトアーキテクチャ、エンタープライズインテリジェントカスタマーサービス、大規模電子政府システム開発の設計に参加し、大手国有企業の内部漏洩防止および電子文書セキュリティ監視システムの構築を主導しました。彼は現在、北京途家健康で医療ソフトウェアの研究開発に従事しています。

<<:  Linkerd が新しいバージョン 2.12 にアップグレードされました

>>:  コンテナ、コンテナ クラウド、コンテナ化された PaaS プラットフォームの関係は何ですか?

推薦する

#オランダ VPS# lunarvps-$3.5/KVM/1G メモリ/75g SSD/3T トラフィック/オランダ

LunarVPS は大きなプレッシャーにさらされていると推定されており、プレッシャーを軽減するために...

ピンガオクラウド開発

[51CTO.com からのオリジナル記事] クラウド コンピューティングは、部外者を混乱させる用語...

Pacificrack: 労働者の日、(中国向けに最適化されたライン) 米国 VPS - 30% 割引、最低 $10/年、中国語版 Windows をサポート

Pacificrack は毎年恒例のレイバー デー プロモーションを開始し、30% 割引で、年間 1...

クラウドインスタンスの最適化を妨げる5つの一般的な問題

[[205059]]現在のパブリッククラウド環境 (AWS、Microsoft Azure、Goog...

AIOps ツールがクラウド コンピューティングに新たな命を吹き込む理由

[[331103]] AIOps ツールは IT 分野で幅広い応用が期待されていますが、クラウド テ...

クラウドコンピューティングは教育分野においてどのような利点をもたらすでしょうか?

教育分野は長年にわたって大きな進歩を遂げてきました。教育と学習はもはや教科書や教室に限定されず、コン...

Weiboソフト記事のマーケティングのヒント

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスご存知のとおり、Weib...

Kaola.com の完全なクラウドネイティブ移行への道

今年8月末、1年間「アリ動物園」にいたKoala.comが初めて戦略的なアップグレードを発表した。同...

ウェブサイトのコンテンツ構築と制作について考える

ユーザーのニーズは変化し続けます。検索エンジンは常に適応しています。今日のユーザーは、Web サイト...

itldcはどうですか?ラトビアデータセンターVPSの評価データを簡単に共有します

itldcはどうですか? itldc ラトビア VPS はどうですか?バルト海の東側に位置するラトビ...

訪問者を幸せにしましょう!ユーモラスなウェブデザインの例 20 選

「人生は孤独すぎる。一緒に暮らすのに面白い人を見つける必要がある。」 - 王暁波誰もがユーモラスなデ...

原子爆弾は売れるのでしょうか? WeChatオフライン「トレーニング」大混乱

急成長期には、WeChat を応援し、市場への浸透を加速させる第三者が本当に必要でした。現在、混乱し...

ウェブサイトの SEO 最適化に不可欠な 8 つのステップ

最初のステップ:検索エンジンに適したウェブサイトのサイトマップを作成します。ステップ2: Baidu...