Windows サービスを Azure に移植する際の確立されたベスト プラクティスは何ですか? Worker ロールに変更する必要がありますか、それとも VM ロールに移動する必要がありますか? 他のオプションはありますか?私のサービスは、ファイル システムに直接ではなく、外部永続化ソース (MSMQ、データベース、WCF) に書き込むと仮定します。
3 に答える
VM ロールよりも、Windows サービスを Worker-Roles に変換する方がはるかに優れています。VM ロールは、自動化できない複雑なインストール手順を必要とするアプリケーションを収容するためのものです。また、それらは管理するのがより大きな苦痛であり、VM の役割からできるだけ離れたいと考えています。Worker-Roles を介して既存の Windows サービスの展開を自動化する方法を見つけることができれば、それは間違いなく進むべき道です。
また、HPC ロールを調べて、オンプレミス/オフプレムおよび負荷/コンピューティングの要件に応じて、HPC クラスターに Azure マシンを追加することも有益である可能性があります。
すべてのタイプのロール (Web/Worker/VM/HPC) はステートレスであり、オンデマンドでゼロからスピンアップまたはティアダウンできる必要があります。すべてのタイプのロールは、一度に複数の VM インスタンスを実行することを意図しています。
HTH
これについては、しばらく前にブログ記事を書きました。ここです:
http://blogs.msdn.com/b/golive/archive/2011/02/11/installing-a-windows-service-in-a-worker-role.aspx
Windows サービスはファブリック コントローラーと直接通信しないため、定期的に ping を実行して正常性をチェックし、必要に応じて修復アクションを実行する必要があることに注意してください。
Windows サービスをワーカーまたは Web ロールに配置することは、受け入れられている方法です。VM ロールを使用する主な理由は、かなりの (10 分以上) セットアップが必要な場合です。私のブログ投稿では、サービスのインストール方法について詳しく説明しています。
もちろん、コードを worker ロールに移動したい場合も問題ありません。この場合、ファブリック コントローラーが正常性を認識していることを確認するための特別な手順は必要ありません。
コストが問題になる場合は、関数を Web/ワーカーに結合することも受け入れられます。また、コードを Web/worker に取り込むためにコードを操作しないことで節約できます。
Azure には、Windows WCF サービスに対応する「WCF サービス Web ロール」と呼ばれる特別な種類の Web ロールがあります。これは、既存のサービスを移行するための良い点です。理想的には、移行後に Azure 固有の機能を利用する必要があります。たとえば、キューや作業ロールを使用してパフォーマンスとスケーラビリティを最大化する必要があります。