私は紺碧およびクラウドプラットフォーム開発への新たなんだ - 私は、Webアプリケーションを持っていると私はAzureのWebアプリケーションインスタンス
会社テーブルと 外部キーを使用して別々の company_productsを使用して複数の企業を作成します。 企業ID
それぞれに独自のSQLデータベースがある複数のインスタンスを実行することはできますか?私はすべての顧客がユニークで、カスタマイズされたモジュールが必要な場合があるため、これを実行したいと思います。
私は紺碧およびクラウドプラットフォーム開発への新たなんだ - 私は、Webアプリケーションを持っていると私はAzureのWebアプリケーションインスタンス
会社テーブルと 外部キーを使用して別々の company_productsを使用して複数の企業を作成します。 企業ID
それぞれに独自のSQLデータベースがある複数のインスタンスを実行することはできますか?私はすべての顧客がユニークで、カスタマイズされたモジュールが必要な場合があるため、これを実行したいと思います。
アプリの作り方に制限はありません。あなたは望むだけ多くのデータベースを作成することができますし、複数のWebアプリケーションを持っていても構いません(同じアプリサービスプランでも複数のアプリサービスプランでも)。あなたはこれをどうやって行うのですか?厳密にはあなた次第ですが、何もするために単一のデータベースを使用する必要はありません。
Davidが言っているように、あなたはあなたが好きなようにこれを行うことができます。私の提案は、アプリケーションのweb.config内の接続文字列を使用して、通信したいデータベースインスタンスを制御することです。次に、Azureポータル(またはARMテンプレート)のAzure Webアプリケーションデプロイメントの「スロット設定」をその配備のWeb設定を上書きします。
インフラストラクチャを記述するARMテンプレートを作成し、アプリケーションサービスプラン、Webアプリケーション、Web設定、SQLデータベースを特定の名前のリソースグループ(つまり、顧客の1つをターゲットとする)に展開することができます。これにより、そのリソースグループ内のデータベースインスタンスを指し示す構成と、顧客固有の機能をオン/オフにするその他の構成があります。できるだけコードと配備を共通に保つようにしてください。さもなければ、将来的にメンテナンスの悪夢に終わるでしょう。
azureウェブアプリケーションの設定の詳細については、https://azure.microsoft.com/en-gb/documentation/articles/web-sites-configure/を参照してください。
質問を正しく理解している場合は、各顧客がそれぞれのインスタンスとデータベースを分離したいと思っていますか?
は、この記事を見てください:https://msdn.microsoft.com/en-us/library/ff966499.aspx
私はAzureのアプリケーションサービスを利用して、自分のアプリで、あなたの顧客のそれぞれを実行することをお勧めしたいです。すべてのアプリが同じApp Service Planで実行されるので、お金を節約できます。ただし、あるインスタンスでの使用は他のインスタンスでのパフォーマンスには影響しません。 App Serviceにはかなりのメリットがあります。
出始めて、私は顧客ごとに個別のAzure SQLデータベースを使用してお勧めしたいです。これはS0/S1データベースを比較的安価に利用できるため、コストを節約するためです。次に、App Service Planの下にある各アプリのAzureポータルから接続文字列を設定することができます。
スケーリングがすぐに終了する場合は、「弾性データベース」を参照してください。あなたはデータベースサーバーを購入し、サーバーあたり200データベースのようなものを手に入れます。あなたがかなりの数の顧客を持っていてコストを正当化できれば、本当に経済的です。しかし、エラスティックデータベースプールの管理を容易にする有用なAzureツールがいくつかあります。詳細については、Azureのドキュメントを参照してください。
このアーキテクチャを設定したら、ポータルからインスタンス/データベースを管理するか、別のロジックアプリケーションを設定してすべてのインスタンスを管理できます。しかし、これがSaaS製品であり、非常に迅速に拡張する予定の場合は、事前にいくつかのプロセスを自動化することで、新しいインスタンスを手動で行う必要はありません。
個々のカスタムアプリケーションで異なるサブドメインを指すことができるため、このアプローチも好きです。 (つまり、customer1.yourdomain.com、customer2.yourdomain.com)。各アプリにはすでにazurewebsites.netの下に独自のドメインがあります。そのドメインを使用しても構わないのであれば、それに固執することができます。あなた自身のDNSを管理する必要はなく、SSL証明書について心配する必要はありません。それは既に管理されているためです。独自のカスタムドメインが必要な場合は、これに関する多くのドキュメントがあります。 Azureには、CNAMEレコードの自動作成中に自動的に新しいアプリケーションを起動し、DBをプールにデプロイしてDBなどを初期化するDNSサービスもあります。
1つのWebアプリケーションで異なるスロットを使用し、作成するさまざまなデータベースを指していますか?私はAzureと一緒に仕事をしています。私は、生産に約4つのスロットを持つ単一のWebアプリケーションを持っています。確かにパフォーマンスの低下がありますが、それでも仕事は終わります。 –