タグ付けされた質問 「multitenancy」

6
アプリケーションごとに1つのデータベースを使用するか、複数のアプリケーション間で単一のデータベースを共有する必要があります[終了]
同じソースからのデータを使用するアプリケーションが複数あります。ベストプラクティス(または賛否両論)は次のとおりです。 複数のアプリケーションで共有されるデータベースにデータを残す 必要なデータベースは1つだけなのでスペースを節約できます アプリケーションごとにクエリのニーズが異なるため、インデックス作成が複雑になります データをアプリごとのデータベースに毎日インポートする 重複データがアプリごとのデータベースに存在するため、より多くのスペースを使用します 各アプリが個々のニーズに集中できるため、インデックス作成が簡単 他の長所/短所を省いたかもしれませんが、もしあれば、あなたの職場でどのようにこれを行っていますか?

2
マルチテナントDBには複数のデータベースまたは共有テーブルがありますか?
マルチテナントデータベースです: 顧客/テナントごとに異なる(同一の)データベース/スキーマを持つDBサーバー。または 顧客/テナントが同じテーブル内でレコードを共有するデータベース/スキーマを持つDBサーバー? たとえば、上記のオプション#1では、たとえばにMySQLサーバーmydb01.example.comがあり、customer1その中にデータベースがあります。このcustomer1データベースには、たとえば、特定の顧客(顧客#1)のアプリケーションを駆動する10個のテーブルがあります。またcustomer2、まったく同じ10個のテーブルを持つデータベースがありますが、顧客#2のデータのみが含まれている場合があります。customer3データベース、データベースなどがある場合がありますcustomer4。 上記のオプション#2では、たとえば、myapp_db10個のテーブル(上記と同じもの)を持つ単一のデータベース/スキーマのみが存在します。しかし、ここでは、すべての顧客のデータがこれらの10個のテーブル内に存在するため、顧客はテーブルを「共有」します。また、アプリケーション層では、ロジックとセキュリティにより、どの顧客がこれらの10個のテーブルのどのレコードにアクセスできるかを制御し、顧客#1がアプリにログインして顧客#3のデータなどを表示しないように細心の注意を払っています。 これらのパラダイムのうち、従来の「マルチテナント」DBを構成するものはどれですか?どちらでもない場合、マルチテナントDBとは何かの例を(上記のシナリオを使用して)提供してくれますか?

5
マルチテナンシー-単一のデータベースと複数のデータベース
私たちには多くのクライアントがあり、そのシステムはいくつかの機能を共有していますが、かなりの多様性も持っています。クライアントの数は増え続けています-常に健全なことです!-また、事業間の多様性も増大しています。 現在、単一のASP.Net(Webフォーム)Webサイト(Webプロジェクトとは対照的)があり、各テナントのサブフォルダーとそのテナントの非標準ページがあります。データベースアクセスとビジネスロジックを扱う別のモデルプロジェクトがあります。 (a)クライアントごとに1つのデータベースを持ち、そのクライアントに関連付けられた機能のみを持つ場合、どちらが望ましいか(最も重要なのはなぜか)。または(b)すべてのクライアントが共有する単一のデータベース。1つのクライアントがテーブルのサブセットのみを使用します。 ビジネス内の主な懸念は以上です。 複数の資産のメンテナンス-バックアップ、バージョン管理など 可能な限り再利用を促進する これらの懸念にどのように対処し、どの解決策が望ましいか、そしてその理由をどのように確認しますか?(同様の質問への回答も編集しています)

2
マルチテナントアプリケーションとは正確には何ですか?
オンラインで利用可能な定義によると、「マルチテナンシーは、ソフトウェアアプリケーションの単一のインスタンスが複数の顧客にサービスを提供するアーキテクチャです」です。つまり、私はレストランまたは学校のWebサイトを所有しており、学校の管理製品を購入したときに提供する資格情報を使用して、自分のデータでアプリケーションを使用するために別のレストランまたは学校へのアクセスを提供します。私のウェブサイトと同様のようですschoolmanagement.comと私のような別の学校のクライアントに異なるサブドメインを提供school1.schoolmanagement.com&school2.schoolmanagement.comが、コードは、これらのサブドメインの両方の背後に同じです。両方の学校の機能やテーマは異なり、それぞれのデータベースに依存しています。だから私は提供する必要がありますschoolmanagement.comそれぞれのURLなどへのログイン資格情報Iリダイレクトに基づいてログインのために、私のクライアントのログイン一度school1.schoolmanagement.com。 これは、マルチテナントアプリケーションについての私の理解です。私の理解は正しいですか?私が通過できるオンラインマルチテナントアプリケーションはありますか?

2
マルチテナンシーまたはマルチインスタンス?
私はWebベースのSaaSソリューションを構築しようとしており、マルチテナンシーまたはマルチインスタンスを使用するかどうかわからないところに行きました。私が達成しようとしていることと、それぞれのアプローチの長所と短所(読んだことによると私の意見)について説明しようと思います。どちらか一方のアプローチで何かを見逃した場合に備えて、提案を含めてください。 私が構築しようとしているアプリケーションは、前述したように、企業がアカウントを作成できるSaaSソリューションであり、各アカウント/企業には独自のユーザー、顧客、製品、サービスなどがあります。各ユーザー; 会社の従業員は誰ですか。1つのアカウント/会社に関連するユーザーは、その会社の顧客、製品、およびサービスにのみアクセスできます。企業は無制限の数の顧客、製品、サービスを持つことができるため、各企業には独自のデータセンターが必要です。 そのため、共有データベース(ログインのためにすべてのユーザーの資格情報を保存する)と複数のデータベース共有スキーマ(アカウント/会社ごとのデータベース)を作成することにしました。基本的に、マルチテナント。 次に、誰かが代わりにマルチインスタンスを使用することを提案しました。そこでは、各会社が他の会社から完全に分離されたアプリケーションの独自のインスタンス(つまり、コード、ライブラリ、データベース、フレームワークなど)を持ちます。これは、各テナントのユーザーが会社のデータにのみアクセスできることを確認する必要がある追加のレイヤーを処理する必要がないため、より良いように聞こえます。私がこのアプローチを達成するためにDockerに依存していることを言及するのは良いことだと思います(私は以前にそれを使用したことがありません)が、機能が不足していると思います(詳細は後で説明します)将来必要になるでしょう(少なくとも私はしませんでした)少し検索しても見つかりません)。 ただし、どちらのアプローチにも長所と短所があるため、どちらのアプローチを選択するか決定できませんでした。ここにリストがありますが、両方の知識が不足しているので、私にはわかりません。私が知らないことや、Webで見つけられなかった問題の解決策がある可能性があります。[各アプローチには私が1つずつ比較した順序付けられたリスト] マルチテナンシー: 共有ホスト/ハードウェア、共有コード、およびマルチデータベース。 それはだ簡単にコードと修正のバグの機能(共有コード)を拡張します。 ハードウェアを拡張する(クラウドサービスを使用できる)か、コードに変更を加えずに個々のテナントのデータベースを別のシステムに移動するのは困難です。 最も重要なことは、前述したように、ユーザーが実際に自分の会社に属していて、他の会社の情報にアクセスしていないことを確認するために、システムに追加のレイヤーを追加する必要があります。 マルチインスタンス: 共有または非共有のホスト/ハードウェア、インスタンスごとのコード、インスタンスごとのデータベース。 それはだ難しく(あなたは1つのインスタンスまたはドッカーコンテナに機能/機能を追加し、他の人にそれを展開することができドッカーでそれを行う方法がある場合、私はわからない)機能や修正のバグを拡張します。 それはだ簡単に別のホスト/ハードウェアに全体のインスタンスを移動すること。 インスタンスとして、各インスタンスは独自のデータベースを持っているので、そのレイヤーを処理する必要はありません。 (各テナントのインスタンスを手動で作成するなどして)手動で何かを実行したい場合は、長所と短所のすべてが冗長であり、それがDockerソリューションを疑う理由です。質問の理由。解決策を参照して質問に答えていただければ幸いです。なぜこのアプローチが他のアプローチよりも優れていると思いますか。 それが役立つ場合(多分?)、バックエンド(すべてRESTful)のメインフレームワークとしてLaravelを使用しています。

3
マルチテナンシーのサポート
シングルテナントアプリをマルチテナントアプリに変換するときに発生する典型的な課題は何ですか?セキュリティとデータの分離が最も重要だと私は思います。他には何がありますか? 私はかなり重要な自動化作業のアーキテクトの1人であり、歴史的にそれは私たちの会社がそれを使用しているだけでした。他の人にも利用してもらいたい。「マルチテナント化」について話すときは常に、あるテナントを持つユーザーを別のテナントが所有するデータから遠ざけることと、あるテナントを持つユーザーが(意図的または意図せずに)別のテナントに影響を与えないようにすることを話し合いますテナントの環境。私が疑問に思っているのは、セキュリティ/データ分離が本当にここでの唯一の主要な懸念であるのか、それとも私たちが考えていない他のいくつかの主要な懸念があるのか​​です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.