2

Azure に移行するかどうかを決定するために、Windows Azure に関する調査を行っています。

基本情報
質問に答えるには、私のアプリの基本的な理解が必要なので、ここで説明します。

このアプリは、SQL Server データベースに接続する ASP.NET MVC 3 アプリケーションです。

これは単一インスタンスのアプリケーションです。つまり、すべての顧客は最終的に、当社のサーバー上で実行されるアプリの独自のインスタンスを持ち、Web サイトとして IIS 7 に展開されます。

各インスタンスに独自のデータベースがある 1 つの SQL Server があります。

バックグラウンド処理を行うための Windows サービスのセットもあります。Windows Azure でワーカー ロールを使用するように書き直すだけなので、これは簡単なはずです。サービスのロジックのほとんどはいずれにせよ独自のクラス (ライブラリ) に配置されているため、サービス自体が 1 つ以上を呼び出すだけです。クラスのメソッド。

質問
ですが、誰かが無料試用版にサインアップするたびに、私は所有している管理者データベースにレコードを追加します。

次に、ASP.NET MVC 3 アプリの新しいインスタンスを IIS に展開し、いくつかのフォルダーにアクセス許可を付与し、データベース展開スクリプトを実行し、レコードを更新して展開済みであることを反映し、最後に送信する Windows サービスを用意します。無料試用版が作成されたことを示す見込み客への電子メール - アクセス方法は次のとおりです。

では、Worker ロールから Windows Azure に新しいインスタンスを展開するにはどうすればよいでしょうか? できれば、新しい Web サイトを既存の Azure インスタンスに追加し、その特定のサイトで使用する新しい SQL Azure データベースを作成するだけです。

これを設定するには多くの作業が必要ですか? それは可能ですか?

4

2 に答える 2

3

2つの引用に基づいて、これをマルチテナントアプリケーションと呼ぶことをお勧めします。

これはシングルインスタンスアプリケーションです。つまり、すべての顧客は最終的に、サーバー上で実行されているアプリの独自のインスタンスを持ちます。

と...

ASP.NET MVC 3アプリの新しいインスタンスをIISに展開するWindowsサービスは、いくつかのフォルダーにアクセス許可を付与します

私が正しく理解していれば、「1つの」IISサーバーがあり(Windows Azureでは1つのWebロールであり、複数のインスタンスにスケーラブルです)、新しい「テナント」ごとに、そのテナントをサポートするための新しいものをセットアップします。

それが実際に当てはまる場合は、ワーカーの役割から間違いなくこれを行うことができます。NateTottenのマルチテナントWeb役割のブログ投稿と関連コードをご覧ください。IISを実際に操作するwebdeployコードを見てください。

さらに:私のチームメートの何人かがFullscale180と一緒に公開したプロジェクトであるCloudNinjaを見てくださいこれは、単一のデプロイメントで複数の顧客を管理する方法、および監視とスケーリングを示すマルチテナントアプリです。

最後に、実際に新しいサービスホストとストレージアカウントを作成する必要がある場合は、Windows AzureManagementAPIの最新の更新でこれがサポートされます。それが少し役立つことを願っています...

于 2011-06-17T15:54:28.207 に答える
3

あなたが達成したいことのほとんどは可能だと思います。

セットアップには間違いなくいくつかの作業が必要です!

探しているものを実現する方法に関するいくつかのアイデアについては、MS SaaS の例 ( http://www.fabrikamshipping.com/ ) を参照してください。これは特に、既存のアプリを Azure 上の SaaS に移植するために設計されています。このアプリ内には「オンボーディング プロセス」があり、そのプロセスには新しい SQL 接続と新しいポータルの設定が含まれます。

http://blogs.msdn.com/b/vbertocci/archive/2010/10/07/new-online-demo-introducing-fabrikamshipping-saas.aspxには、これに関する良いブログ (ビデオを見る) がたくさんあります。

于 2011-06-17T15:46:28.597 に答える