1

私が働いている会社は、クラウドに対していくつかのアプリを開発しようとしています。

  • Azure Web ロールでホストされる ASP.NET Web Api アプリケーション。
  • Azure ワーカー ロールでホストされる Windows Server タイプのアプリケーション。

私たちは Web またはクラウド開発にまったく慣れていないため、次のことを知りたいと考えています。

コンシューマーに提供される場合、アプリケーションの同じインスタンスがすべてに提供されますか?それはリクエストごとに 1 つですか?それとも複数のロールが作成されてコンシューマーに提供されますか?

4

3 に答える 3

2

コンシューマに提供される場合、アプリケーションの同じインスタンスがすべてに提供されますか?

これは、Azure にアプリケーションを実行するように要求したインスタンスの数によって異なります。1 つのインスタンスにのみデプロイした場合は、もちろん、すべてのリクエストに応答するのは同じインスタンスになります。ただし、複数のインスタンスにデプロイする場合、リクエストは負荷分散されます。つまり、同じユーザーからの複数のリクエストが同じインスタンスによって処理されるという保証はありません。

この質問をしている場合、インスタンスを実行しているマシンにローカル データを保存したくなるかもしれません。ただし、これは良い考えではありません。Windows Azure はいつでもインスタンスを破棄し、まったく別のマシンでアプリケーションを起動できます。彼らはこれを「修復」と呼んでいます。これは通常、Windows Azure が役に立ち、インスタンスのダウンタイムを意味する潜在的な問題を回避しようとするために発生するためです。しかし、何らかの理由でマシンがロックしたり、何か悪いことが起こった場合にも発生します。この修復プロセスは、展開パッケージに含まれていないものはすべて失われることを意味します。たとえば、ディスク上のファイルにログを記録している場合、Azure がインスタンスを "修復" すると、このログは失われます。

リクエストごとに 1 つですか、それとも複数のロールが作成されて消費者に提供されていますか?

ここであなたが何を意味しているのか完全にはわからないので、推測して、あなたの質問を間違って解釈する危険を冒します. 私の推測では、ユーザー リクエストごとに 1 つのインスタンスが存在するかどうかを尋ねていると思います。いいえ、あなたが決めた数のインスタンスしか存在しません。実行中のインスタンスごとに料金を支払う必要があることに注意してください。そのため、実行中のインスタンスの数を指定するのは公正なことです。

アプリケーションをパッケージ化し、Windows Azure に展開する準備ができたら、実行する各ロールのインスタンス数を決定できます。この数をデプロイ パッケージで設定すると、パッケージがデプロイされるときに、要求された数のインスタンスが Azure によって自動的に開始されます。ただし、デプロイ後およびオンザフライで、各ロールの実行中のインスタンスの数を変更できます。これにより、より多くのインスタンスで数分以内にスケーリングできます。

これが役に立ち、あなたの質問を正しく理解できたことを願っています。:-)

于 2013-02-03T22:34:48.453 に答える
0

Azureロールインスタンスは、特定のペイロードを持つVMです。

たとえば、サービスで、「フロントエンド」Webロールの3つのインスタンスと「バックエンド」ワーカーロールの2つのインスタンスが必要であることを宣言します。Azureがサービスを展開すると、5つのVMが起動し、そのうち3つが「フロントエンド」ペイロードを実行してIISを起動し、2つが「バックエンド」ペイロードを実行してIISを起動しません。

これで、Azureにその構成を変更するように依頼するまで、どの要求が来ても、どのような負荷が発生しても、構成は永続的です。3+2構成のVMが5つあります。構成を変更するには、自分の側で何らかのアクションが必要です。

構成を変更する方法は2つあります。管理ポータルまたは外部プログラムを使用して、いずれかまたは両方の役割の「インスタンス数」を変更できます。メトリックを収集し、管理APIリクエストを作成して「インスタンス数」を変更する自動スケーリングコードを追加することもできます。いずれにせよ、「インスタンスカウント」が上がると、Azureは同じペイロードでより多くのVMを起動し、下がると一部のVMを停止します。

于 2013-02-04T08:09:39.603 に答える
0

Azure Cloud Service の Azure Web および Worker ロールは、少なくとも 1 つのインスタンス (マネージド VM) にデプロイされます。Azure では、サイズ (メモリ、CPU) とスケール (インスタンス数) を指定できます。Azure では実際に動的にスケーリングできます。つまり、オンデマンドでインスタンスを追加できます。デプロイされたインスタンスのサイズと数に対して時間単位で支払います。

たとえば、クラウド サービスは、worker ロール (バックグラウンド処理) の 1 つのインスタンスと、Web ロールの複数のインスタンスを持つことができます。複数のインスタンスがロード バランサーの背後で処理され、クライアントは使用しているインスタンスを認識しません (すべてのインスタンスが同等に作成されます)。

于 2013-02-03T22:15:23.550 に答える