チュートリアル: Azure Pipelines を使って Service Fabric アプリケーションの CI/CD を設定する

このチュートリアルは、シリーズの第 "4 部" です。 Azure Pipelines を使って Azure Service Fabric アプリケーションの継続的インテグレーションと継続的デプロイ (CI/CD) を設定する方法について説明します。 チュートリアルを完了するには、既存の Service Fabric アプリケーションが必要です。 このチュートリアルでは、チュートリアル シリーズの第 1 部で説明したアプリケーションを使います。

このチュートリアルでは、次の作業を行う方法について説明します。

  • プロジェクトにソース管理を追加する
  • Azure Pipelines にビルド パイプラインを作成する
  • Azure Pipelines にリリース パイプラインを作成する
  • アプリケーションを自動的にデプロイおよびアップグレードする

このチュートリアル シリーズでは、次の操作方法について説明します。

前提条件

このチュートリアルを開始する前に

投票サンプル アプリケーションをダウンロードする

このシリーズの第 1 部で投票サンプル アプリケーションをビルドしていない場合は、ダウンロードできます。 コマンド ウィンドウで、次のコマンドを実行して、サンプル アプリのリポジトリをローカル コンピューターに複製します。

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

発行プロファイルの準備

ここまでで、アプリケーションを作成し、アプリケーションを Azure にデプロイしたので、継続的インテグレーションを設定する準備ができています。 まず、Azure Pipelines 内で実行されるデプロイ プロセスで使用する発行プロファイルを、アプリケーション内に準備します。 前に作成したクラスターを対象とするように、発行プロファイルを構成する必要があります。 Visual Studio を起動し、既存の Service Fabric アプリケーション プロジェクトを開きます。 ソリューション エクスプローラーで、アプリケーションを右クリックし、[発行] を選択します。

継続的インテグレーション ワークフローに使用するアプリケーション プロジェクト内でターゲット プロファイル (Cloud など) を選択します。 クラスター接続エンドポイントを指定します。 Azure DevOps での各デプロイでアプリケーションがアップグレードされるように、[アプリケーションをアップグレードする] を選択します。 [プロファイルの保存] リンクを選択して設定を発行プロファイルに保存したら、[キャンセル] を選択してダイアログを閉じます。

プロファイルをプッシュしてアプリケーションを発行する方法を示すスクリーンショット。

新しい Azure DevOps の Git リポジトリで Visual Studio ソリューションを共有する

ビルドを生成できるように、Azure DevOps のプロジェクトでアプリケーションのソース ファイルを共有します。

Visual Studio 2022 で新しい GitHub リポジトリと Azure DevOps リポジトリを作成するには、Git メニューで [Git]>[Git リポジトリの作成] を選択します。

アカウントを選択して、リポジトリ名を入力します。 [作成とプッシュ] を選択します。

新しい Git リポジトリの作成を示すスクリーンショット。

リポジトリを発行すると、ローカル リポジトリと同じ名前の新しいプロジェクトが Azure DevOps Services アカウントに作成されます。

新しく作成されたリポジトリを表示するには、https://dev.azure.com/><organizationname> に移動します。 プロジェクトの名前にカーソルを合わせて、リポジトリ アイコンを選択します。

Azure Pipelines を使って継続的デリバリーを構成する

Azure Pipelines のビルド パイプラインでは、順次実行される一連のビルド ステップが含まれているワークフローを記述します。 Service Fabric クラスターにデプロイするには、Service Fabric アプリケーション パッケージやその他の成果物を生成するビルド パイプラインを作成します。 Azure Pipelines のビルド パイプラインの詳細については、こちらをご覧ください。

Azure Pipelines のリリース パイプラインでは、クラスターにアプリケーション パッケージをデプロイするワークフローを記述します。 ビルド パイプラインとリリース パイプラインを併用すると、ソース ファイルで始まりクラスターでのアプリケーションの実行で終わるワークフロー全体を実行できます。 Azure Pipelines のリリース パイプラインの詳細については、こちらをご覧ください。

ビルド パイプラインを作成する

Web ブラウザーを開いて、https://dev.azure.com/<organization-name>/VotingSample で新しいプロジェクトに移動します。

[パイプライン] タブを選択して、[パイプラインの作成] を選択します。

新しいパイプラインの作成を示すスクリーンショット。

YAML を使わずにパイプラインを作成するには、[従来のエディターを使用する] を選択します。

クラシック エディターを使ったパイプラインの作成を示すスクリーンショット。

ソースには、[Azure Repos Git] を選択します。 チーム プロジェクトには、[VotingSample] を選択します。 リポジトリには、[VotingApplication] を選択します。 手動のビルドとスケジュールされたビルドについては、既定のブランチのままにします。 その後 [続行] を選択します。

Azure DevOps でのリポジトリの選択を示すスクリーンショット。

[テンプレートの選択] で、[Azure Service Fabric アプリケーション] テンプレートを選択して、[適用] を選択します。

テンプレートの選択とビルドを示すスクリーンショット。

[タスク] で、[エージェント プール] に「Azure Pipelines」と入力します。 [エージェントの仕様] には、「windows-2022」と入力します。

タスクの選択を示すスクリーンショット。

[トリガー] で、[継続的インテグレーションの有効化]チェックボックスを選択します。 [ブランチ フィルター] では、[ブランチの仕様] は既定の [master] となります。 [保存してキューに登録] を選択して、ビルドを手動で開始します。

トリガーの選択を示すスクリーンショット。

プッシュまたはチェックイン時にもビルドがトリガーされます。 ビルドの進行状況を確認するには、[ビルド] タブを選択します。ビルドが正常に実行されたことを確認したら、アプリケーションをクラスターにデプロイするリリース パイプラインを定義します。

リリース パイプラインの作成

[パイプライン] タブを選択して、[リリース]>[新しいパイプライン] を選択します。 [テンプレートの選択] で、[Azure Service Fabric のデプロイ] テンプレートを選択して、[適用] を選択します。

リリース テンプレートの選択を示すスクリーンショット。

[タスク]>[新規] を選択し、新しいクラスター接続を追加します。

クラスター接続の追加を示すスクリーンショット。

[新しい Service Fabric 接続] で、[証明書ベース] または [Microsoft Entra 資格情報] での認証を選択します。 tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000 のクラスター エンドポイント (または、デプロイ先のクラスターのエンドポイント) を指定します。

証明書ベースの認証の場合は、クラスターの作成に使ったサーバー証明書のサーバー証明書サムプリントを追加します。 [クライアント証明書] で、クライアント証明書ファイルの Base 64 エンコーディングを追加します。 証明書の base-64 でエンコードされたその表現を取得する方法については、そのフィールドのヘルプ情報を参照してください。 また、証明書のパスワードも追加します。 別のクライアント証明書がない場合は、クラスター証明書またはサーバー証明書を使用できます。

Microsoft Entra 資格情報の場合は、[サーバー証明書サムプリント] の値を追加します。 クラスターの作成に使ったサーバー証明書と、[ユーザー名][パスワード] でクラスターへの接続に使う資格情報を使います。

[保存] を選択します。

次に、リリース パイプラインでビルドからの出力が見つかるように、成果物をパイプラインに追加します。 [パイプライン]>[成果物]>[追加] を選択します。 [ソース (ビルド定義)] で、先ほど作成したビルド パイプラインを選択します。 [追加] を選んで、ビルド成果物を保存します。

ビルド成果物の追加を示すスクリーンショット。

ビルドが終わるとリリースが自動的に作成されるように、継続的デプロイのトリガーを有効にします。 成果物の稲妻アイコンを選択し、トリガーを有効にし、[保存] を選択して、リリース パイプラインを保存します。

トリガーの有効化を示すスクリーンショット。

[リリースの作成]>[作成] を選択して、リリースを手動で作成します。 リリースの進行状況を監視するには、[リリース] タブを選択します。

デプロイが成功し、アプリケーションがクラスターで実行されていることを確認します。 Web ブラウザーを開き、https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/ に移動します。 アプリケーションのバージョンを記録しておきます。 この例では 1.0.0.20170616.3 です。

リリースをトリガーする変更のコミットとプッシュ

継続的インテグレーション パイプラインが機能していることを確認するには、Azure DevOps へのコード変更をチェックインします。

コードを記述していくと、Visual Studio では、[Git 変更] ペインの [変更] セクションで、プロジェクトに対するファイルの変更が追跡されます。

[変更] で、更新について説明するメッセージを追加して、変更をコミットします。

最新の変更のコミットを示すスクリーンショット。

[Git 変更] で、[プッシュ] を選択して、Azure Pipelines のコードを更新します。

[プッシュ] オプションを示すスクリーンショット。

Azure Pipelines へ変更をプッシュすると、ビルドがトリガーされます。 ビルドの進行状況を確認するには、https://dev.azure.com/organizationname/VotingSample でアプリケーションの [Pipelines] タブを選択します。

ビルドが終わると、リリースが自動的に作成され、クラスター上でアプリケーションのアップグレードが開始します。

デプロイが成功し、アプリケーションがクラスターで実行されていることを確認します。 Web ブラウザーを開き、https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/ に移動します。 アプリケーションのバージョンを記録しておきます。 この例では 1.0.0.20170815.3 です。

ブラウザーで実行されている Service Fabric Explorer の投票アプリを示すスクリーンショット。アプリのバージョンが強調表示されています。

アプリケーションの更新

アプリケーションで、コードを変更します。 変更を保存してコミットします。

アプリケーションのアップグレードが開始したら、Service Fabric Explorer でアップグレードの進行状況を追跡できます。

ブラウザーで実行されている Service Fabric Explorer の投票アプリを示すスクリーンショット。ステータス メッセージが強調表示されています。

アプリケーションのアップグレードには数分かかる場合があります。 アップグレードが終わると、アプリケーションが次のバージョンで実行されます。 この例では、バージョン 1.0.0.20170815.4 が実行されています。

ブラウザーで実行されている Service Fabric Explorer の投票アプリを示すスクリーンショット。アプリの更新されたバージョンが強調表示されています。

次のステップ

次のチュートリアルに進みます。