Visual Studio による Service Fabric アプリケーションのアップグレード チュートリアル


Azure Service Fabric では、変更されたサービスのみをアップグレードし、アップグレード プロセス全体を通じてそのアプリケーションの正常性を監視することで、クラウド アプリケーションのアップグレードのプロセスを簡略化します。 また、問題が発生した場合は、アプリケーションが自動的に以前のバージョンにロールバックされます。 Service Fabric アプリケーションのアップグレードは、"ゼロ ダウンタイム"です。アプリケーションをダウンタイムなしでアップグレードできます。 このチュートリアルでは、Visual Studio からローリング アップグレードを行う方法について説明します。

手順 1: ビジュアル オブジェクト サンプルのビルドと発行

まず、GitHub から Visual Objects アプリケーションをダウンロードします。 次に、VisualObjects アプリケーション プロジェクトを右クリックし、[Service Fabric] メニュー項目の [発行] コマンドを選択して、アプリケーションをビルドし、発行します。

Context menu for a Service Fabric application

[発行] を選択してポップアップが表示されたら、[ターゲット プロファイル]PublishProfiles\Local.xml に設定します。 [発行]をクリックする前に、ウィンドウを次のように設定します。

Publishing a Service Fabric application

これで、ダイアログ ボックスの [発行] をクリックできるようになりました。 クラスターおよびアプリケーションを表示する Service Fabric Explorerを使用できます。 Visual Objects アプリケーションには、ブラウザーのアドレス バーに「http://localhost:8081/visualobjects/」と入力すると移動できる Web サービスがあります。 画面上を動く 10 個のフローティング ビジュアル オブジェクトが表示されます。

注:Cloud.xml プロファイル (Azure Service Fabric) にデプロイする場合、アプリケーションは http://{ServiceFabricName}.{Region}.cloudapp.azure.com:8081/visualobjects/ から入手できます。 ロード バランサーで 8081/TCP が構成されていることを確認してください (ロード バランサーは Service Fabric インスタンスと同じリソース グループで検索します)。

手順 2: ビジュアル オブジェクト サンプルの更新

手順 1. でデプロイされたバージョンでは、ビジュアル オブジェクトが回転しないことに気付くかもしれません。 アプリケーションをアップグレードして、ビジュアル オブジェクトも回転させてみましょう。

VisualObjects ソリューション内の VisualObjects.ActorService プロジェクトを選択し、VisualObjectActor.cs ファイルを開きます。 そのファイル内で MoveObject メソッドに移動して、visualObject.Move(false) をコメント アウトし、visualObject.Move(true) をコメント解除します。 このコードによって、サービスのアップグレード後、オブジェクトが回転します。 これで、ソリューションを (リビルドではなく) ビルドできるようになりました。これによって、変更したプロジェクトがビルドされます。 [すべてリビルド] を選択した場合は、すべてのプロジェクトのバージョンを更新する必要があります。

アプリケーションのバージョン管理も行う必要があります。 バージョンを変更するには、VisualObjects プロジェクトを右クリックしてから、Visual Studio の [マニフェスト バージョンの編集] オプションを使用します。 このオプションを選択すると、次のようなバージョン編集用のダイアログ ボックスが表示されます。

Versioning dialog box

アプリケーションと、編集したプロジェクトおよびそのコード パッケージのバージョンを 2.0.0 に更新します。 変更後、マニフェストは次のようになります (太字部分は変更個所を示します)。

Updating versions

[アプリケーションとサービスのバージョンを自動的に更新する]を選択すると、Visual Studio ツールでバージョンの自動ロールアップを実行できます。 SemVerを使用する場合、このオプションが選択されていると、コードまたは構成パッケージ (あるいはその両方) のバージョンのみを更新する必要があります。

変更を保存し、 [アプリケーションのアップグレード] ボックスをオンにします。

手順 3: アプリケーションのアップグレード

アプリケーション アップグレード パラメーターアップグレード プロセスに詳しくなって、アップグレードのさまざまなパラメーター、タイムアウト、および適用できる正常性条件に対する理解を深めます。 このチュートリアルでは、サービスの正常性評価の条件は、既定値 (監視なしのモード) に設定されています。 この設定を構成するには、 [アップグレードの設定の構成] を選択し、必要に応じてパラメーターを変更します。

アプリケーションのアップグレードを開始する準備がすべて完了しました。開始するには [発行] を選択します。 このオプションによりアプリケーションがバージョン 2.0.0 にアップグレードされ、オブジェクトが回転するようになります。 Service Fabric では更新ドメインが 1 つずつアップグレードされます (オブジェクトがいくつか最初に更新された後、他のオブジェクトが続きます)。サービスは、アップグレード中も利用できます。 サービスへのアクセスをチェックするには、クライアント (ブラウザー) を使用します。

アプリケーションのアップグレードが進むと、Service Fabric Explorer で、アプリケーションの下にある [Upgrades in Progress (進行中のアップグレード)] タブを使用して監視できます。

数分後に、すべての更新ドメインがアップグレードされ (完了し)、Visual Studio の出力ウィンドウにもアップグレードの完了が表示されます。 さらに、ブラウザー ウィンドウの " すべての " ビジュアル オブジェクトが回転しているはずです。

練習のために、バージョンをバージョン 2.0.0 からバージョン 3.0.0 へ、または、バージョン 2.0.0 からバージョン 1.0.0 に変更および移行してみることもできます。 タイムアウトと正常性ポリシーをいろいろ試して、これらに精通してください。 ローカル クラスターではなく Azure クラスターにデプロイする場合、使用するパラメーターは異なる場合があります。 タイムアウトは控えめに設定することをお勧めします。

次のステップ

PowerShell を使用したアプリケーションのアップグレード に関する記事では、PowerShell を使用したアプリケーションのアップグレードについて説明します。

アップグレード パラメーターを使用して、アプリケーションのアップグレード方法を制御します。

データのシリアル化の使用方法を学ぶことで、アプリケーションのアップグレードに互換性を持たせます。

高度なトピックを参照して、アプリケーションをアップグレードするときの高度な機能の使用方法を学習します。

アプリケーションのアップグレードのトラブルシューティング」の手順を参照して、アプリケーションのアップグレードでの一般的な問題を修正します。