しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Party Clusters を使って Azure Service Fabric を無料で試す

最新の Service Fabric SDK で ASP.NET 5 を使ったサービスの開発に対応したと知ったので、ちょっとずつ Service Fabric の勉強を始めています。Service Fabric については公式サイトを見てください。

Azure Service Fabric—マイクロサービスの構築 | Microsoft Azure

開発用にローカルクラスターが付いていますが、やはり Azure 上にデプロイして試したくなりますね。

しかし、Azure に Service Fabric Cluster を作る場合には最低でも 5 コア必要という話なので、そんなにホイホイとお遊び用クラスターを作成することは、世界のやまさか修羅いばーさんにしか出来ないでしょう。

http://blog.hamamotsu.jp/entry/azureadvent2015

クラスターの作成にも 2 時間ぐらいかかると聞きますし、気軽に試せる代物ではないです。

そこで誰でも簡単に 4 時間ぐらい、無料で何回でも試せる Azure Service Fabric Party Clusters を使うことにしました。名前からは想像つきませんが、Service Fabric チームから提供されているお試し用クラスタです。

http://tryazureservicefabric.eastus.cloudapp.azure.com/

「Party Now!」ボタンを押して、メールアドレスを入力すると Service Fabric にデプロイするための情報が届きます。Party Clusters 自体が Service Fabric のサンプルコードみたいになっているみたいですね。

送られてきたメールにはクラスターにデプロイするためのエンドポイントと、アプリケーションから利用可能なポート番号が書いてあります。

自分で作成したクラスターの場合はポートは自由に決めれるみたいですが、Party Clusters では予めサービス側で開放されたポートしか使えないようになってます。

クラスターの準備はこれで終わりなので、Visual Studio を使って Service Fabric で動かすアプリケーションを用意していきます。当然ながら Service Fabric SDK が必要なので、Web PI などで入れておいてください。

Visual Studio から Service Fabric Application を選択すると、作成するテンプレートを選ぶ画面になるので一番下にある ASP.NET 5 を選んでおきます。

プロジェクトを作成後は PublishProfiles/Cloud.xml を開いて、ConnectionEndpoint に先程メールで送られてきたエンドポイントを設定しておきます。これでデプロイは出来るようになります。

そして今回は ASP.NET 5 アプリケーションなので、HTTP を使えるようにポートを設定しておく必要があります。ポートの設定は ASP.NET 5 アプリケーション側の ServiceManifest.xml を編集します。

ファイルを開くと下の方に Endpoint を定義している部分があるので、メールで送られてきたポート番号を Port という属性で設定しておきます。

ポート番号の設定を間違えると、Service Fabric にデプロイした後によくわからないエラーになってしまって悩むので注意しておきたいです。私はこれで 2 時間無駄にしました。

これで全ての設定が終わったので、実際に Service Fabric へデプロイしてみます。Web Apps と同じようにコンテキストメニューからデプロイを行えます。

Conection Endpoint が正しく設定されていることを確認して Publish ボタンを押します。

デプロイは思ったよりも早くて、数分で完了します。その間に Service Fabric Explorer を開いておくと、アプリケーションがデプロイされていく様子を確認出来て楽しいです。

エラーなどが発生すればダッシュボードの表示が Error や Warning に変わるのでわかりやすいです。

任意の VM を落とすこともできるので、アプリケーションが Service Fabric によって自動的にフェールオーバーされることを確認も出来ました。Web Service はステートレスなので、レプリカは作られていません。

アプリケーションのデプロイが終われば、ポート番号を変えてブラウザでアクセスすると ASP.NET 5 アプリケーションが動作することが確認できます。

ここまで大体 10 分もあれば余裕でたどり着けるかと思います。

長くなってしまったので、一旦デプロイまで出来たということで終わりにしておきます。次はちゃんと ASP.NET 5 の他に Reliable Service か Actor を追加して、やり取りをする部分まで試したいと思います。