世界のやまさ

SEKAI NO YAMASA

Service Fabric を Azure にデプロイしてみた

この記事は Microsoft Azure Advent Calendar 2015 9日目 です。

以前、 Azure Service Fabric が Public Preview になったので試した記事を書きました。

blog.nnasaki.com

このときは自分の Windows マシン上で実行しただけで、 Azure にはまだ Deploy していなかったので、今回は Azure 上で動かしてみました。

Azure Service Fabric を作る

GA した Portal から作ることが可能です。クラシック Portal からは作ることが出来ません。

新規で Service Fab ぐらいまで入力します。

f:id:nnasaki:20151209152152p:plain

Service Fabric Cluster が サジェストされるので、選択します。

f:id:nnasaki:20151209152251p:plain

選択していきます。

f:id:nnasaki:20151209152320p:plain

Location は 米国西部 か 米国東部 しか選べません。米国西部 を選択します。

f:id:nnasaki:20151209152426p:plain

必要な情報を埋めていきます。Cluster name, Subscription, resource groupなど。 1つだけ、 Node Type Properties の Application input endpoints に 80 を必ず入れておいて下さい。

f:id:nnasaki:20151209152618p:plain

Security Configurations はテスト用なので Unsecure にしておきます。Production 環境では証明書などを登録します。

f:id:nnasaki:20151209153024p:plain

作成で作り始めます。結構時間かかります。1時間ぐらいかかりました。。。

f:id:nnasaki:20151206100528p:plain

デプロイが終わるとこんな感じで Portal から確認できます。

f:id:nnasaki:20151209153429p:plain

Service Fabric Explorer のリンクをクリックすると、ローカルと同じものが Azure 上でも立ち上がります。

f:id:nnasaki:20151209153543p:plain

Visual Studio から Deploy する

Party Cluster プロジェクトで右クリックして、公開 をクリックする。

f:id:nnasaki:20151209130449p:plain

Select をクリック。

f:id:nnasaki:20151209130656p:plain

先ほど Azure Portal で作成した Service Fabric を選択する。

f:id:nnasaki:20151209130756p:plain

Publish をクリック。

f:id:nnasaki:20151209130839p:plain

見事デプロイできました!

f:id:nnasaki:20151209141207p:plain

アップグレード方法

デプロイできたけど、JOIN の CAPTCHA がエラーとなっている。

f:id:nnasaki:20151209141255p:plain

ドメインを追加してみました。

f:id:nnasaki:20151209141355p:plain

アップグレードでデプロイします。

f:id:nnasaki:20151209143912p:plain

バージョンをアップしないと、アップグレードする必要はないといわれます。

The PowerShell script failed to execute. See the Output window for details.

f:id:nnasaki:20151209144912p:plain

-------- Package: Project: PartyCluster succeeded, Time elapsed: 00:00:02.4672345 --------
3>Started executing script 'Deploy-FabricApplication.ps1'.
3>. 'C:\Users\nnasaki\Documents\GitHubVisualStudio\service-fabric-dotnet-management-party-cluster\PartyCluster\PartyCluster\Scripts\Deploy-FabricApplication.ps1' -ApplicationPackagePath 'C:\Users\nnasaki\Documents\GitHubVisualStudio\service-fabric-dotnet-management-party-cluster\PartyCluster\PartyCluster\pkg\Debug' -PublishProfileFile 'C:\Users\nnasaki\Documents\GitHubVisualStudio\service-fabric-dotnet-management-party-cluster\PartyCluster\PartyCluster\PublishProfiles\Cloud.xml' -DeployOnly:$false -UnregisterUnusedApplicationVersionsAfterUpgrade $false -ForceUpgrade $false -OverwriteBehavior 'SameAppTypeAndVersion' -ErrorAction Stop
3>Application Type  PartyClusterType  and Version  1.0.4  was already registered with Cluster, unregistering it...
3>Unregister-ServiceFabricApplicationType : Application type and version is still in use
3>発生場所 C:\Program Files\Microsoft SDKs\Service Fabric\Tools\PSModule\ServiceFabricSDK\Publish-UpgradedServiceFabricAp
3>plication.ps1:170 文字:20
3>+             $reg | Unregister-ServiceFabricApplicationType -Force
3>+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3>    + CategoryInfo          : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConnection) [Unregister-Serv 
3>   iceFabricApplicationType]、FabricException
3>    + FullyQualifiedErrorId : UnregisterApplicationTypeErrorId,Microsoft.ServiceFabric.Powershell.UnregisterApplicatio 
3>   nType
3> 
3>Finished executing script 'Deploy-FabricApplication.ps1'.
3>Time elapsed: 00:00:04.7009342
3>The PowerShell script failed to execute.

バージョンの設定をします。

f:id:nnasaki:20151209145108p:plain

Web の設定を変えたので、Webのバージョンを上げてみました。

f:id:nnasaki:20151209145217p:plain

再び Publish するとさっきのエラーが出なくなりました。こんな感じで5つのクラスターがローリングアップデートされます。その間はサービスは動きながら無停止です。素晴らしい。

f:id:nnasaki:20151209144551p:plain

アップグレードが終わると、No upgrade in progress. となります。

f:id:nnasaki:20151209144728p:plain

CAPTCHA が無事表示されるようになりました。

f:id:nnasaki:20151209145404p:plain

料金

Service Fabric 自体の料金はフリーです。ただし、VMの使用料が課金されます。Service Fabric を動かすためには最低5つの Virtual Machine が必要です。試し終わった後はこまめに落としておいたほうが良いと思います。

Pricing - Service Fabric | Microsoft Azure

まとめ

Service Fabric を Azure にデプロイする方法とアップグレード方法について書きました。サービスを動かしたまま簡単にローリングアップデートできることは非常に魅力的です。現在は .NET 環境のみですが、Java や Linux 環境の提供もプランにありますので、楽しみですね。

次のステップ

公式の Service Fabric のドキュメント、ビデオが良いと思います。

azure.microsoft.com

また、ラーニングパスがありますので、そちらに従ってドキュメントを参照していくのも良いと思います。

azure.microsoft.com

今後、筆者のブログでもアーキテクチャなど追記していくつもりです。