2016-04-01 11 views
1

「Webサイトロール」と「WebsiteWorkerロール」という2つの役割を持つMS Azure用の高スケーラブルCloudserviceを作成しました。パフォーマンスを向上させるために、このCloudserviceを複数の地域(米国2倍、EU 2倍、JP 1倍)に展開しています。各地域ごとに異なる設定ファイルがあります(EuWestProductive.azurePubxml、ServiceConfiguration.CloudEuWest.cscfg、Web.ReleaseEuWest.config)。Azure:構成によって役割を展開しない

問題:各地域では、「WebsiteRole」と「WebsiteWorkerRole」を実行しています。しかし、 "WebsiteWorkerRole"には非常に小さなタスクしかありません。そのため、1つの領域に1つの余分な小さなインスタンスが足りません。

Roleインスタンス数をゼロ(ServiceConfiguration.CloudEuWest.cscfg)に設定しようとしました。しかし、これは許可されていません。 Azure Feedback: Allow a Role instance count of 0

Cloudserviceを導入する際に役割を削除する別の方法はありますか?

答えて

2

いいえ、あなたが発見したように、クラウドサービスではスケールをゼロにすることはできません。展開を効果的に削除する必要があります。既存のものに最小限の変更を加えるには、2つの役割を2つの異なる配置に分けることができます。その後、必要に応じてワーカーロールの配備を処理し、必要がない場合には廃止するAzure Automation Script、または別の場所で実行されるスクリプトのセットを用意します。

作業者が行っている作業負荷の種類によっては、Azure Automationのようなものを使用して別の作業を行うこともできます。これは、1日に数回しか発生しない少量の処理の場合に特に当てはまります。自動化スクリプトは分単位で請求されるので、実際の現在のインスタンスよりも実行されることを確認してください。

実際に実行する必要がある処理量、必要なリソース量、実行する頻度などは、実際の作業者の趣旨です。 Azure Automation、Webの役割に関する別のスレッド、別々のクラウドサービスの展開など、多くのオプションがあります。それぞれ独自の長所と短所があります。 1つのオプションは、(プレビューと実行によって課金された)ちょうど発表した新しいAzure関数を見ることさえあるかもしれません。

簡単な答えは、ワーカーとWebSiteRoleのデプロイメントを分離し、そのワーカーロールの最適なホスティングメカニズムを決定し、必要なときだけ実行できるようにすることです。

0

ありがとう@MikeWo、配備を分けるあなたの考えは素晴らしかったです! 私はこれを小さなサンプルプロジェクトで検証しましたが、うまくいきます。現在、VMサイズやその他の構成をリージョンごとに変更することもできます。

Example project

(コメントは、画像を許可しない)

+0

技術的には、はい、しかし、このようなVMサイズとしてサービス定義ファイル内にあるいくつかの設定のために、あなたがそれを得るためにいくつかの作業を行う必要がありますそのファイルがコードでパッケージ化されているので、ビルドとデプロイを行う前に起こります。カスタムビルドステップ、上で行ったようなVSの別々のクラウドプロジェクトプロジェクトなど、これを達成するためのさまざまな方法があります。サービス設定のすべての設定は、配備時に簡単に処理されます。 – MikeWo

関連する問題