Visual Studio による Service Fabric アプリケーションのアップグレード チュートリアル
Azure Service Fabric では、変更されたサービスのみをアップグレードし、アップグレード プロセス全体を通じてそのアプリケーションの正常性を監視することで、クラウド アプリケーションのアップグレードのプロセスを簡略化します。 また、問題が発生した場合は、アプリケーションが自動的に以前のバージョンにロールバックされます。 Service Fabric アプリケーションのアップグレードは、"ゼロ ダウンタイム"です。アプリケーションをダウンタイムなしでアップグレードできます。 このチュートリアルでは、Visual Studio からローリング アップグレードを行う方法について説明します。
手順 1: ビジュアル オブジェクト サンプルのビルドと発行
まず、GitHub から Visual Objects アプリケーションをダウンロードします。 次に、VisualObjects アプリケーション プロジェクトを右クリックし、[Service Fabric] メニュー項目の [発行] コマンドを選択して、アプリケーションをビルドし、発行します。
[発行] を選択してポップアップが表示されたら、[ターゲット プロファイル] を PublishProfiles\Local.xml に設定します。 [発行]をクリックする前に、ウィンドウを次のように設定します。
これで、ダイアログ ボックスの [発行] をクリックできるようになりました。 クラスターおよびアプリケーションを表示する 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 の [マニフェスト バージョンの編集] オプションを使用します。 このオプションを選択すると、次のようなバージョン編集用のダイアログ ボックスが表示されます。
アプリケーションと、編集したプロジェクトおよびそのコード パッケージのバージョンを 2.0.0 に更新します。 変更後、マニフェストは次のようになります (太字部分は変更個所を示します)。
[アプリケーションとサービスのバージョンを自動的に更新する]を選択すると、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 を使用したアプリケーションのアップグレードについて説明します。
アップグレード パラメーターを使用して、アプリケーションのアップグレード方法を制御します。
データのシリアル化の使用方法を学ぶことで、アプリケーションのアップグレードに互換性を持たせます。
高度なトピックを参照して、アプリケーションをアップグレードするときの高度な機能の使用方法を学習します。
「 アプリケーションのアップグレードのトラブルシューティング」の手順を参照して、アプリケーションのアップグレードでの一般的な問題を修正します。