この記事は Microsoft Azure Advent Calendar 2015 9日目 です。
以前、 Azure Service Fabric が Public Preview になったので試した記事を書きました。
このときは自分の Windows マシン上で実行しただけで、 Azure にはまだ Deploy していなかったので、今回は Azure 上で動かしてみました。
Azure Service Fabric を作る
GA した Portal から作ることが可能です。クラシック Portal からは作ることが出来ません。
新規で Service Fab ぐらいまで入力します。
Service Fabric Cluster が サジェストされるので、選択します。
選択していきます。
Location は 米国西部 か 米国東部 しか選べません。米国西部 を選択します。
必要な情報を埋めていきます。Cluster name, Subscription, resource groupなど。 1つだけ、 Node Type Properties の Application input endpoints に 80 を必ず入れておいて下さい。
Security Configurations はテスト用なので Unsecure にしておきます。Production 環境では証明書などを登録します。
作成で作り始めます。結構時間かかります。1時間ぐらいかかりました。。。
デプロイが終わるとこんな感じで Portal から確認できます。
Service Fabric Explorer のリンクをクリックすると、ローカルと同じものが Azure 上でも立ち上がります。
Visual Studio から Deploy する
Party Cluster プロジェクトで右クリックして、公開 をクリックする。
Select をクリック。
先ほど Azure Portal で作成した Service Fabric を選択する。
Publish をクリック。
見事デプロイできました!
アップグレード方法
デプロイできたけど、JOIN の CAPTCHA がエラーとなっている。
ドメインを追加してみました。
アップグレードでデプロイします。
バージョンをアップしないと、アップグレードする必要はないといわれます。
The PowerShell script failed to execute. See the Output window for details.
-------- 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.
バージョンの設定をします。
Web の設定を変えたので、Webのバージョンを上げてみました。
再び Publish するとさっきのエラーが出なくなりました。こんな感じで5つのクラスターがローリングアップデートされます。その間はサービスは動きながら無停止です。素晴らしい。
アップグレードが終わると、No upgrade in progress. となります。
CAPTCHA が無事表示されるようになりました。
料金
Service Fabric 自体の料金はフリーです。ただし、VMの使用料が課金されます。Service Fabric を動かすためには最低5つの Virtual Machine が必要です。試し終わった後はこまめに落としておいたほうが良いと思います。
Pricing - Service Fabric | Microsoft Azure
まとめ
Service Fabric を Azure にデプロイする方法とアップグレード方法について書きました。サービスを動かしたまま簡単にローリングアップデートできることは非常に魅力的です。現在は .NET 環境のみですが、Java や Linux 環境の提供もプランにありますので、楽しみですね。
次のステップ
公式の Service Fabric のドキュメント、ビデオが良いと思います。
また、ラーニングパスがありますので、そちらに従ってドキュメントを参照していくのも良いと思います。
今後、筆者のブログでもアーキテクチャなど追記していくつもりです。