Windows Azureと動的弾力性
-
03-10-2019 - |
質問
Windows Azureで動的な弾力性を行う方法はありますか?私の労働者が過負荷になり始めたり、キューがいっぱいになりすぎたりするか、あまりにも多くの労働者がやるべきことがない場合、コードを介して労働者を動的に追加または削除する方法はありますか、それとも手動で行われた(人間の介入が必要です)今?現在利用できない場合、それを追加する計画を知っている人はいますか?
解決
サービス管理APIがあり、それを使用してアプリケーションを拡大することができます(Windows Azureで実行されているコードまたはWindows Azureの外で実行されているコードから)。
http://msdn.microsoft.com/en-us/library/ee460799.aspx と http://code.msdn.microsoft.com/release/projectreleases.aspx?projectname=windowsazuresamples&releaseId=3233.
他のヒント
マイクロソフト 出荷された 自動化アプリケーションブロック (ワサビ)動的スケーリングを提供する。サポートされているシナリオのいくつか:
- 動的に変更されたインスタンスカウントまたはアプリケーションスロットリングを実行することにより、Windows AzureのWebとWorkerの両方の役割を自動焦点化します。
- 時刻表に基づいた自動拡張Windows Azureの役割。
- アプリケーションおよび/またはWindows Azureから収集されたメトリックに基づいて、Windows Azureの役割を自動焦点化する役割は、ロールごとのインスタンスカウントの上限と下限によって制約されます。
- スタビライザーを使用した役割インスタンスの数の急速な振動を防ぎます。スタビライザーは、操作のスケールアップを時間の開始まで制限し、操作を1時間の終わりまで縮小することにより、コストを最適化するのにも役立ちます。
- 監視およびログの自動焦点アクティビティ。
- スケーリング操作が行われる前に、スケーリング操作をプレビューするための通知を送信します。
- Windows Azure Blobストレージまたはローカルファイルストレージのルールとその他の構成を暗号化します。
- Windows PowerShellを使用して、自動車構成を管理します。
包括的なサンプルアプリケーション(テールスピン調査)これらすべての機能を紹介することが提供されます(インストール手順が利用可能です ここ)。また、をチェックしてください 開発者ガイド およびチャンネル9 ビデオウォークスルー.
ブロックは、スタンドアロンのダウンロードとして利用できます バイナリ, ソース または経由 ヌゲット.
これは、いくつかの講演/デモを紹介します。
- 名前のキューを作成します
autoscale.[your_role_name].instance_count
- 管理ポータルで、Autoscaleをに設定します
Queue
. - ターゲットカウントフィールドをに設定します
1
.
これで、そのキューで標準のEnqueueおよびDequeue操作を使用して、ワーカーロールインスタンスの数を制御できます。有効期限が切れる前にメッセージを処理するために7日間があるため、キュー内のメッセージの数がターゲットインスタンスカウントを追跡することを保証できるワーカーロールを作成することをお勧めします。
動的な弾力性が発生している場合、おそらくすでにワーカーロールベースのコントローラーを念頭に置いているので、おそらく問題ではありません。
lokad.cloud Windows Azureのオープンソースプロジェクトには、分散型エグゼキューターフレームワークが含まれています。とりわけそれが提供します VMプロビジョニング機能を備えた自動スケーリング.