4

私の現在の会社では、古いシステムの一部をクラウドに移行することを目的として、Azure に関する調査を行っています。以下のシステムがあり、すべてお客様の場所に設置されています。

データベース (SqlServer) 処理サーバー (Winform アプリ) 各種クライアント (Winform アプリ)

私たちがやりたいことは、処理サーバーを ASP.NET Web API に変換し、データベースをポーリングして処理サーバーに要求を送信するある種の長期実行プロセスとして新しいジョブ スケジューラを作成することです。

これで問題ありませんが、これを行うための最善の方法がわかりません。

ジョブ スケジューラにサービスを使用し、サーバーに ASP.NET Web API を使用することに満足していますが、インストールを管理する最適な方法がわかりません。

私たちがやりたいことは、大規模な顧客ごとにスケジューラとサーバーを備えた 1 つの WebRole と、同時に実行される複数のスケジューラとサーバーを備えた 1 つの WebRole を持つことです。

では、質問に対して、

これは実際に可能ですか?Web ロールで多くのアイテムを実行できますか?

4

2 に答える 2

3

Web ロールは、本質的には、いくつかのコード スキャフォールディングを備えた Windows Server 仮想マシンです。インタラクションのない MSI/xcopy/etc 経由でインストールできるものは何でも実行できます。起動スクリプトと、コードからインストールする機能があります (OnStart()イベント処理で)。

Web ロールと Worker ロールの主な違いは、IIS のアクティブ化です。それ以外の場合は、同等のものとして扱うことができます。

個別のロール (Web かワーカーかに関係なく) を定義する利点: それぞれに独自のサイズと数量があります。これにより、たとえば、フロント エンド用に多数の小規模な Web ロール インスタンスをセットアップし、計算負荷の高いタスクを実行するために 1 つまたは 2 つの大規模なインスタンスをセットアップできます。しかし実際には、すべてを 1 つのロールにロードすることを妨げるものは何もありません。すべてがロックステップでスケーリングされるようになっただけです。

インストールを完全に自動化できないため、SQL Server は web/worker ロール モデルにうまく適合しません。これは、仮想マシンに適しています (VM を構築して保存し、いつでも実行できるように、完全に構築することができます)。仮想マシンの詳細については、こちらをご覧ください。このルートに進む場合は、Web ロールからデータベースへの直接アクセスを提供する必要があります。これには仮想ネットワークを使用できます。

SQL について最後にもう 1 つ: Windows Azure SQL データベースはサービスとしてのデータベースであり、何も構築する必要はありません。有効にし、最大サイズを設定するだけで、使い始めることができます。SQL Server のすべての機能を備えているわけではありませんが、その大部分をカバーし、データベースあたり 150 GB まで拡張できます (さらに、それを超える拡張用のシャードを提供します)。Windows Azure SQL では、ストレージ容量に対してのみ料金が発生します。それを実行するサーバーのコストはかからず、データベース サーバーを維持する必要もありません。

于 2013-01-07T20:52:42.273 に答える
0

API に WebRole を使用し、スケジューラーとして WorkerRole を使用できます。必要に応じて、両方に異なるサイズとインスタンス数を使用し、それらを同じ VisualStudio ソリューションに保持できます。

スケジューラに WebRole を使用することは避けたいと思います。

于 2013-01-07T16:16:51.003 に答える