問題タブ [multi-tenant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Google App Engine でマルチテナント Django Proj を開発するためのアプローチの提案
Google AppEngine でマルチテナント Django プロジェクトを開発するための最良のアプローチについて、いくつかの提案を得たいと思っていました。
考慮すべきいくつかの考え。
djnago.contrib.sites の使用は必須だと思います。
django-profiles や django-registration などの既存のアプリケーションを使用したいのですが、それらのモデルを移植する必要があることはわかっています。
複数のドメインを GAE アプリに向けて、サイトをリクエスト ヘッダーから自動的に選択することはできますか?
複数のドメインではない場合、リクエストを www.example.com/tenantA/login および www.example.com/tenantB/login に送信し、それらを 1 つのビューにプッシュしますが、すべてのビューを変更せずにナレッジ テナントを使用する方法はありますか? 、おそらくカスタムマネージャーを使用して、ビューから複雑さを隠します。
一般的に、これがあなたが過去に取った、または取る予定のアプローチについての議論になることを願っています.
コメント/回答をお待ちしております。
よろしく
マーク
asp.net-mvc - 共通のテンプレート アプリから ASP.NET MVC サイトを "継承" しますか? (マルチテナンシー)
共通の機能セット (および対応する URL、ルート、コントローラー、アクション、およびビュー) を持つ約 10 の ASP.NET MVC サイトを構築しています。また、これらのサイトはすべて、ドメイン オブジェクト (ユーザー、会社など) の基本セットと、それらのオブジェクトの基本属性 (名前、住所など) を共有します。
しかし、各サイトも高度にカスタマイズされ、ベースから拡張されます。たとえば、大規模な上場企業向けのサイトには、Company ドメイン オブジェクトに「子会社」および「株式シンボル」フィールドがあり、新興企業向けのサイトには「ベンチャー企業」および「資金調達」属性があります。ルック アンド フィールも大幅に異なりますが、HTML は可能な限り一貫性を保つように努めています (追加のドメイン オブジェクト属性用に追加のフォーム フィールドをモジュロ化するなど)。また、画像を控えめにオーバーライドすることで、たとえば、サイト間で同じボタン グラフィックを再利用できるようにします。
とにかく、アプリごとの属性を追加したり、アプリ間で UI を変更したりする自由を制限することなく、できるだけ多くのコードとできるだけ多くのテストを再利用できるように、要素を分解して設計する最善の方法を見つけようとしています。
私は、UI が少し異なり、データ モデルが多かれ少なかれ、StackOverflow/SuperUser/ServerFault (または MSDN/TechNet) に見られるような、カスタマイズが制限されたマルチテナンシーを処理する方法に精通しています。同一。しかし、モデルと UI が大きく異なる (ただし、共通のベースから継承している) 場合、どのように進めればよいかわかりません。
おそらく、各サイトを別々のアプリドメインで実行し、別々のデータベースでホストすることになるため、運用上の問題についてはあまり心配していません. 長期的なコード メンテナンス コストの削減、アジリティの向上 (派生アプリを壊すことなく新しい機能をベースに簡単に追加できるなど)、そして 2 番目のコードを構築する際の短期的な開発/テスト コスト削減の実現について心配しています。 3 番目、4 番目などのサイト。
高レベルのガイダンスと提案の両方を探していますが、最新の ASP.NET MVC プラクティスを使用してそのガイダンスを実現する方法についての具体的な提案も求めています。
これは非常に一般的な質問であることは承知していますが、まず、高レベルのガイダンスと、ASP.NET MVC でそのガイダンスを適用する方法に関する具体的なヒントとコツの両方を探しています。たとえば、次のようなものがあります。
- Visual Studio プロジェクト間でベース/派生を分割する推奨事項
- フォークを回避するためのソース管理のヒント
- データベース スキーマのヒント (FWIW、私たちのデータベースはすべて小さいです。テーブルごとに 10,000 行未満なので、DB のパフォーマンスよりも開発/テストのコストの方が問題です)
- コントローラー/ビュー/などの再利用に関するヒント。「基本」モデル属性に対応します。特に、基本属性と派生属性が混在する「新規顧客」フォームなどの UI を再利用します。
このようなマルチテナント アプリを設計する方法について、誰か良いアドバイスはありますか?
asp.net-mvc - NHibernate アプリをマルチテナントとして変換するためのベスト プラクティスは?
シンプルな ASP.NET MVC + OpenID + NHibernateアプリ (MSSQL Server DB 上) があります。アプリは厳密にシングル テナントであり、2 つのロール ( AdminとUser ) のみで複数のユーザーをサポートします。
このアプリをマルチテナント アプリに変換したいと考えています。私の要件は限られています: Accountの概念を導入する必要があるだけです。各アカウントには独自のユーザー セットがあり、元の非マルチテナント アプリとまったく同じように動作します。アカウント間のやり取りはありません。
この移行を最も簡単な方法で行うためのベスト プラクティスは何ですか? 特に、 Account_idフィールドを使用してすべてのエンティティとリポジトリを手動で更新し、ロジックもアップロードできます。しかし、この側面を何らかの形で抽象化するよりスマートなアプローチがないかどうか疑問に思っています。
Ps: アプリは非常に軽いので、アカウントごとに新しい DB インスタンスを導入したくありません。
asp.net-mvc - ASP.NET MVC でルート {tenant}/{controller}/{action}/{id} をセットアップしますか?
マルチテナント ASP.NET MVC アプリをセットアップしたいと考えています。理想的には、このアプリには を含むルートがあり{tenant}/{controller}/{action}/{id}
、それぞれtenant
がアプリの論理インスタンス (単純に独立したマルチユーザー アカウント) を表します。
それがどのように行われるかの細かい詳細は、私にはまだはっきりしていません。ASP.NET MVC でこのようなマルチテナント スキームをセットアップするためのガイドはありますか?
asp.net-mvc - ASP.NET MVC サブスクリプション ベースのスターター キットまたはサンプルはありますか?
基本的には、サブスクリプション ベースのサービスの低レベルの「配管」コードを処理するものです。基本的なメンバーシップを扱うものはたくさんありますが、サブスクリプションの側面 (定期的な請求、請求を設定するための自動化されたジョブ、請求の通知など) を処理するものはありません。これが、自分の SaaS のアイデアに ASP.NET MVC を使用しない理由の 1 つかもしれません。もう 1 つのオプションである Ruby on Rails を使用する場合、これらすべてを行うキットを 250 ドルで購入できます。. .NET でこれに近いものはまったく見つかりませんでした。私が見たすべての SaaS サンプル アプリは、StackOverflow などに似ていて、複数の人が 1 つのサイトにログオンする Web アプリケーション モデルではありません。毎月請求されるサブスクライバーがあり、それぞれが独自のサイトのユーザーと他のエンティティ (顧客、タスクなど) を持っています。
ASP.NET に似たようなものはありますか? または、必要に応じて自分で作成するためのガイドラインがあるので、時間を無駄にしませんか? つまり、すべてのコーディングを自分で行っているということです。
私はこれを見つけましたが、それは請求専用のようで、正確な設定方法に関する多くの (何か?) ドキュメントがないようです。
database-design - マルチテナント DB: すべてのテーブルに TenantID 列を配置する理由
マルチテナント データベース モデルについて私が見たすべてのチュートリアルでは、すべてのテーブルに TenantID を配置するように指示されています。
しかし、これは私には冗長に思えます。tenant_id
テーブルだけに列を追加して、 と の間の外部キー関係を活用してみませんzoos
か?zoos
animals
tenant_id
結合が狂ってしまわないようにするためだけに、すべてのテーブルに追加しますか? バグに対するセーフガードですか?パフォーマンスの考慮事項ですか?
php - 同じデータベース上の複数のアプリケーションインスタンス
サービスとして、またスタンドアロンアプリケーションとして提供するアプリケーションを作成しています。Zend Frameworkで記述されており、MySQLを使用しています。
サービスとして提供する場合、ユーザーが自分のサイトに登録し、customer1.mysite.com、customer2.mysite.comなどのサブドメインを持つようにします。
ユーザーごとに新しいデータベースを作成するのではなく、すべてを1つのデータベースにまとめたいと考えています。
しかし今、私はそれをより良くする方法を考えています。私は2つの解決策を思いつきました:1。各テーブルにユーザーIDを持ち、それを各データベース要求のWHERE句に追加するだけです。2.「customer1_tablename」、「customer2_tablename」などの一意のプレフィックスを使用してテーブルを再作成します。
どちらのアプローチが良いですか?長所と短所?同じデータベース上のユーザーを分離する別の方法はありますか?
レオンティ
php - Zend Framework - すべてのコントローラーに変数を渡す
サブドメイン名からテナント ID を取得する Zend Framework のマルチテナント アプリケーションに取り組んでいます (mod_rewrite -> index.php -> データベースと照合します)。
私の質問は、この変数 (テナント ID) をすべてのコントローラーで使用できるように設定するにはどうすればよいですか?
レオンティ
asp.net-mvc - ASP.Net MVC を使用してマルチテナント アプリケーションを作成するにはどうすればよいですか?
これまでに見た質問はすべてデータベースに関するものであるため、この質問は他の質問とは異なります。マルチテナシーのデータベース側については理解していますが、フロントエンドを行う方法については 100% 確信が持てません。
基本的に顧客向けのホステッド サービスとなる製品の設計に取り組んでいます。マルチテナシーに関する限り、ホストされた FogBugz アカウントを考えることができます。顧客はサインアップし、独自のサブドメインを取得してから、customersubdomain.thenormalurl.com にアクセスして、アプリケーションの小さな部分にログインします。
顧客がサインアップするとき、サブドメインの DNS レコードをセットアップする必要がありますが、アプリケーション側から、アプリケーションをその顧客に「スコープ」するにはどうすればよいでしょうか? リクエストが行われたURLを見るだけですか、それとも他の方法がありますか? それは私には単純すぎるように思えますが、単純であるべきことを複雑にしようとしているだけかもしれません。
これは通常、ASP.Net の世界ではどのように行われますか?
grails - カスタマイズされたルック アンド フィールを備えた単一の grails アプリケーションで複数の顧客を処理するにはどうすればよいですか?
私のアプリは、実行時に複数の顧客をサポートする必要があります。それらはすべて、同じコントローラー、サービスを使用して同じデータを表示しますが、レイアウト、CSS、および画像が異なります。
私の基本的な考え方は次のとおりです。
1) セッションで構成値を認証および設定するためのフィルターを用意する 2) 私のコントローラー コードは次の行に沿って何かを呼び出します: render(view:"/${session.userContext}/test/test")
したがって、customer1 については、views/customer1/test/test.gsp をレンダリングします。
理想的には、すべてのカスタム ビューとレイアウトを /views/customer1/ ディレクトリに置きたいのですが、サイト メッシュは /views/layouts ディレクトリでレイアウトを探しますが、これを回避する方法が見つかりません。この意味で、必要なレベルの分離が得られないため、ソリューションは少し不格好です。
理想的なのは、実行時に grails render メソッドのルートを設定できる場合です。たとえば、ビューから開始する代わりに、views/customer1 を見てください。これを行う方法はわかりませんが、彼は最も賢いソリューションのようです。
どんな助けでも大歓迎です。
乾杯、
ガブ