アプリケーションのCI/CD

[更新:2025年12月11日]

cicd_application

コードを一元管理し変更履歴を追跡できる環境に自動ビルド・自動デプロイを組み合わせることで、Webアプリを安定かつ迅速に配信します。品質を保ちながら更新頻度を高めることができ、設定ミスの防止やセキュリティ確保を実現し、開発効率と運用信頼性を大幅に向上できます。

各機能のサービス対応

機能

対応サービス

コードリポジトリ

Azure Repos

CI/CD

Azure Pipelines

システム構成要素

  • さくらのクラウド

    • Nginxサーバ

  • Addon

    • Azure DevOps

構築手順

さくらのクラウドの準備

サンプルファイル内に、Nginxサーバを作成するTerraformとAnsibleのサンプルコードを用意しています。

Azure Pipelinesの準備

Azure PipelinesからNginxサーバにデプロイする設定を行います。

Service connectionの作成

Service connectionsは、Azure DevOps プロジェクトと外部サービスとの接続(今回はさくらのクラウドのサーバとSSH接続に利用)を管理するための機能です。これにより、Azure Pipelinesからリモートサーバにアクセスして操作を行うことができます。

  1. Azure DevOps プロジェクトに移動して、下部にある「Project Settings」を選択

    Azure DevOps Project Overview
  2. Project Settingsのメニューから「Service connections」を選択

    Azure DevOps Project Settings
  3. 「Create service connection」>「SSH」>「Next」を選択

    Create service connection
  4. デプロイ先のサーバへのSSH接続情報と「Service Connection Name」に今回はtest-connectionと入力し、「Save」を選択

    New SSH service connection
  5. 作成完了

    service connection overview

Gitリポジトリの準備

  1. Gitリポジトリを作成

  2. 作成したGitリポジトリに、デプロイファイル(sample)とAzure Pipelinesの設定ファイル(azure-pipeline.yml)をコミット

    gitリポジトリ

承認者の設定

デプロイ時に承認者を設けるためにAzure DevOpsで設定を行います。

  1. Azure Pipeline の Environments に移動し、「New environments」から新しいEnvironmentを作成

    Select New environments
  2. Environment名を「production」と入力し、「None」を選択して作成

    Environment Name
    Environment Type
  3. 作成したEnvironment「production」に移動し、「Approvals and checks」から、新たに承認者を設定

    Approvals and checks
  4. Add Checkでは「Pre-check approvals」を選択し「Next」を選択

    Pre-check approval
  5. 承認者を選択して、「Create」を選択

    Setting Approval user

Pipelineの作成

Azure Pipelinesを使用して、Gitリポジトリの内容をNginxサーバにデプロイするためのPipeline(azure-pipeline.yml)を作成します。今回は作成済みのazure-pipeline.ymlを使用します。カスタマイズする場合は、以下のドキュメントを参考にしてください。

  1. Pipelineに移動し、「New pipeline」を選択

    Pipelines
  2. 「Azure Repos Git (YAML)」を選択

    Where is your code?
  3. 先ほど作成したGitリポジトリを選択

    Select a repository
  4. 「Existing Azure Pipelines YAML file」を選択

    Configure your pipeline
  5. 選択したGitリポジトリに作成済みのazure-pipeline.ymlを指定して「Continue」を選択。ブランチにはmainを選択

    Select an existing YAML file
  6. Pipeline YAML(azure-pipeline.yml)のプレビューを確認して、「Save」を選択

    Preview your pipeline YAML

動作検証

develop から main へ、プルリクエスト・マージ時のCI/CDの動作検証は次の手順で操作します。

  1. developブランチを1つ作成

Create develop branch
Create Menu
  1. ブランチ作成後、以下のようにサンプルのHTMLファイルの35行目の文言を以下のように修正し、作成したdevelopブランチにコミットする

    <h1>さくらのクラウドへようこそ</h1>

  2. developにプッシュ時にもAzure Pipelineは実行されるが、以下のようにCI(テスト)のステージのみが実行されることを確認

View CI Stage
  1. developブランチをmainブランチにマージするためにプルリクエストを作成

Create Pull Request
  1. 新しいプルリクエストを作成

Create New pull-request
  1. developブランチからmainに向けてプルリクを作成する。タイトルを入力し、作成を選択

Pull Request Title
Create Pull Request Menu
  1. Approveを選択後、Completeを選択

Approve and Complete
  1. Completeを押すと、マージを行うための画面が出てくるので「Complete merge」を選択

Merge Pull Request
  1. マージ実行後、マージをトリガーとしてAzure Pipelineの実行が確認できる

Run Azure Pipeline
  1. CI完了後、CDを行う前に、以下のように承認者に対して承認が要求されるので「Approve」する

Approval Deploy
  1. 承認者の承認が完了後、CDが実行されてデプロイが開始される。デプロイが完了すると以下のように各ステージにチェックマークが表記される

Pipeline Stages
  1. デプロイ後、さくらのクラウドのサーバにアクセスすると、以下のように変更内容が適用されたことを確認できる

Modify VM Server