Jenkinsを使用したCI/CDパイプラインの構築方法

Jenkinsを使用したCI/CDパイプラインの構築方法

  • ITOps・DevOps
6分で読めます 更新日 Apr 22, 2025

ポイント: Jenkinsを使用してCI/CDパイプラインを構築することで、ソフトウェア開発を自動化し、効率と品質を向上させます。主なステップには、Jenkinsのインストール、パイプラインの構成、さまざまなプラグインを使用してビルドを実行することが含まれます。

  • Jenkinsはパイプラインステージの可視化と複数のツールとの統合を可能にします。
  • Azure DevOpsなどのクラウドベースのCI/CDパイプラインの例は、効率化された操作を示しています。

効果的な継続的インテグレーション(CI)および継続的デリバリー(CD)パイプラインは、急速に進化する技術環境に対応するために現代のDevOpsチームにとって不可欠です。アジャイルの概念と組み合わせることで、優れたCI/CDパイプラインはソフトウェア開発ライフサイクルを合理化し、高品質のソフトウェアを迅速に提供することができます。

この記事では、次のことについて説明します:

CI/CDパイプラインを構築する前に知っておくべきこと

CI/CDパイプラインとは何か?

CI/CDパイプラインの主な目的は、ソフトウェア開発ライフサイクル(SDLC)を自動化することです。

パイプラインは、コードの記述やテストの実行から、デリバリーやデプロイメントまで、ソフトウェア開発プロセスの多くの側面をカバーします。簡潔に言うと、CI/CDパイプラインは開発ライフサイクルに自動化と継続的監視を統合します。この種のパイプラインは、ソフトウェア開発ライフサイクルのすべてのステージを包含し、各ステージを接続するものを総称してCI/CDパイプラインと呼びます。

これにより、開発チームの手作業を減らし、その結果、迅速な結果を提供しながらヒューマンエラーの数を減少させます。これらすべてが、デリバリーチームの生産性の向上に寄与します。

(CI/CDパイプラインのステージについての詳細を学ぶには、CI/CDパイプラインのステージ、デプロイメントパイプラインとCI/CDの役割を参照してください。)

Jenkinsとは?

Jenkinsは、継続的インテグレーションおよび継続的デプロイメント(CI/CD)のためのオープンソースサーバーであり、ソフトウェア開発のビルド、テスト、デプロイフェーズを自動化します。多数のプラグインを簡単に統合できるため、ツール、プログラミング言語、クラウド環境の選択肢が豊富で、Jenkinsは非常に柔軟で信頼性の高いアプリを効率的に開発するための手助けをします。

なぜJenkinsをCI/CDに使用するのか

なぜJenkinsがCI/CDパイプラインを構築するための良い選択肢であるのか疑問に思うかもしれません。以下は、その人気の理由のいくつかです:

  • 広範なプラグインサポート:やりたいことがあれば、すでにそのためのプラグインが存在する可能性が高く、作業が迅速かつ簡素化されます。
  • 活発なオープンソースコミュニティ:ライセンスコストが無料であることは始まりに過ぎません。活発なコミュニティによってサポートされ、ソリューション、アドバイス、アイデア、チュートリアルが提供されています。
  • プラットフォーム非依存:特定のオペレーティングシステムに縛られません。
  • スケーラブル:必要に応じてノードを追加したり、異なるオペレーティングシステムを持つ異なるマシンでビルドを実行したりできます。
  • 統合可能:使用しているツールとJenkinsを簡単に統合できます。
  • 実績のある:Jenkinsは最初のCI/CDツールの1つであり、信頼性があります。

Jenkins CI/CDパイプラインの例

Jenkinsを使用して構築されたCI/CDパイプラインはどのようなものか、アクションで見てみましょう。以下はシンプルなウェブアプリケーションの開発プロセスです。

CI/CDパイプラインJenkinsの例。
従来のCI/CDパイプライン
  1. 開発者がコードを書き、変更を中央のコードリポジトリにコミットします。
  2. リポジトリが変更を検出すると、Jenkinsサーバーがトリガーされます。
  3. Jenkinsは新しいコードを取得し、自動ビルドとテストを実行します。ビルドまたはテスト中に問題が検出された場合、Jenkinsは事前に設定された方法(メールやSlackなど)で開発チームに自動的に通知します。
  4. 最終パッケージは、AWS Elastic Beanstalk、アプリケーションオーケストレーションサービスにアップロードされ、製品デプロイメントに使用されます。
  5. Elastic Beanstalkは、インフラストラクチャのプロビジョニング、負荷分散、およびEC2、RDSなどの必要なリソースタイプのスケーリングを管理します。

CI/CDパイプラインのツール、プロセス、複雑さはこの例から異なる場合があります。多くは開発要件や組織のビジネスニーズに依存します。典型的なオプションには、シンプルな4ステージパイプラインや、複数のビルド、異なるテストステージ(スモークテスト、回帰テスト、ユーザー受け入れテスト)を含むマルチステージ並列パイプライン、ウェブやモバイルなどのマルチチャネルデプロイメントが含まれます。

Jenkinsを使用したCI/CDパイプラインを構築するための8つのステップ

このセクションでは、Jenkinsを使用してシンプルなCI/CDパイプラインを構成する方法を示します。

始める前に、Jenkinsが必要な依存関係で正しく構成されていることを確認してください。また、Jenkinsの基本的な概念を理解していることも重要です。この例では、JenkinsはWindows環境で構成されています。

ステップ1:Jenkinsをインストール

公式ウェブサイトからJenkinsをダウンロードしてインストールします。次のDockerコマンドを使用してJenkinsをインストールします:

    docker run -d -p 8080:8080 jenkins/jenkins:lts
ウェブサイトからダウンロードしてJenkinsをインストールします。

ステップ2:Jenkinsを構成し、必要なプラグインを追加

Jenkinsの構成は、必要なプラグインを選択することです。GitやPipelineは最初から追加したい一般的に使用されるツールです。

Jenkins CICDパイプラインを構成します。

ステップ3:Jenkinsを開く

Jenkinsにログインし、「新しいアイテム」をクリックします。

Jenkinsを開いてアイテムを作成します。

ステップ4:パイプラインに名前を付ける

メニューから「パイプライン」オプションを選択し、パイプラインの名前を入力して「OK」をクリックします。

CI/CDパイプラインに名前を付けます。

ステップ5:パイプラインを構成

パイプライン構成画面でCI/CDパイプラインを構成できます。そこでは、ビルドトリガーやパイプラインの他のオプションを設定できます。最も重要なセクションは「パイプライン定義」セクションで、ここでパイプラインのステージを定義できます。パイプラインは、宣言的およびスクリプト構文の両方をサポートしています。

(詳細は公式のJenkinsドキュメントを参照してください。)

サンプルの「Hello World」パイプラインスクリプトを使用します:

    pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}
Jenkinsパイプラインを構成します。

適用をクリックして保存します。シンプルなパイプラインが構成されました!

ステップ6:パイプラインを実行

「今すぐビルド」をクリックしてパイプラインを実行します。

パイプラインを実行します。

これにより、パイプラインステージが実行され、その結果が「ステージビュー」セクションに表示されます。ここには、単一のパイプラインステージしか構成していないことが示されています。

パイプラインステージが実行されています。

ビルドプロセスのコンソール出力を確認することで、パイプラインが正常に実行されたことを確認できます。

パイプラインが実行されたことを確認します。

ステップ7: パイプライン定義を拡張する

パイプラインにさらに2つのステージを追加して拡張しましょう。そのためには、「設定」オプションをクリックし、次のコードブロックに従ってパイプライン定義を変更します。

    pipeline {
    agent any

    stages {
        stage('Stage #1') {
            steps {
                echo 'Hello World'
                sleep 10
                echo 'This is the First Stage'
            }
        }
        stage('Stage #2') {
            steps {
                echo 'This is the Second Stage'
            }
        }
        stage('Stage #3') {
            steps {
                echo 'This is the Third Stage'
            }
        }
    }
}

変更を保存して「今すぐビルド」をクリックして新しいパイプラインを実行します。成功裏に実行された後、ステージビューに各新しいステージが表示されます。

CI CDパイプラインにステージを追加します。

以下のコンソールログは、コードが期待通りに実行されたことを確認します:

パイプラインにステージが追加されたことを確認します。

ステップ8:パイプラインを視覚化

パイプラインステージの視覚化を向上させるために「パイプラインタイムライン」プラグインを使用できます。プラグインをインストールすると、ビルドステージ内に「ビルドタイムライン」と呼ばれるオプションがあります。

CI/CDパイプラインのビルドタイムライン。

そのオプションをクリックすると、以下に示すパイプラインイベントのタイムラインが表示されます。

CI CDパイプラインイベントのビュー。

これで完了です!JenkinsでCI/CDパイプラインを正常に構成しました。

Jenkinsパイプラインを構成した後の次のステップは、Control-MでJenkinsパイプラインをオーケストレーションすることです。エンタープライズスケジューリング、SLA管理、Jenkinsデプロイメントがトリガーする製品データとアプリケーションワークフローの依存関係の調整を追加します。

  • 外部コードリポジトリ
  • テストフレームワーク
  • デプロイメント戦略

頑張ってください!

クラウドベースのAzure CI/CDパイプラインの例

クラウド技術の普及が進む中、DevOpsタスクをクラウドに移行する傾向が高まっています。AzureやAWSのようなクラウドサービスプロバイダーは、それぞれのプラットフォームを使用して必要なDevOpsタスクを管理するためのフルスイートのサービスを提供しています。

以下は、完全にAzure(Azure DevOps Services)ツールに基づくシンプルなクラウドベースのDevOps CI/CDパイプラインです。

Azure CI/CDパイプラインの例。
Azureを使用したクラウドベースのCI/CDパイプライン
  1. 開発者が既存のソースコードを変更するか、新しいソースコードを作成し、変更をAzure Reposにコミットします。
  2. これらのリポジトリの変更がAzure Pipelineをトリガーします。
  3. Azure Test PlansとAzure Pipelinesの組み合わせにより、新しいコード変更がビルドおよびテストされます。(これが継続的インテグレーションプロセスです。)
  4. Azure Pipelinesは、必要な依存関係と環境変数を持つ、正常にテストされビルドされたアーティファクトのデプロイをトリガーします。(これが継続的デプロイメントプロセスです。)
  5. アーティファクトは、ユニバーサルリポジトリとして機能するAzure Artifactsサービスに保存されます。
  6. Azureアプリケーション監視サービスは、デプロイされたアプリケーションに対して、健康レポートや使用情報などのリアルタイムの洞察を開発者に提供します。

CI/CDパイプラインに加えて、AzureはAzure Boardsを使用してSDLCを管理することも可能にします。ここでは、次の2つのオプションがあります:

  • 完全なCI/CDパイプラインを手動で構成する
  • Azure DevOpsやAWSのDevOpsツールのようなSaaSソリューションを選択する

CI/CDパイプラインは手作業を最小限に抑える

適切に構成されたパイプラインは、手動作業を減らすことによってデリバリーチームの生産性を向上させ、ほとんどの手動エラーを排除し、全体の製品品質を向上させます。これは最終的に、エンドユーザー、開発者、ビジネス全体に利益をもたらす、より迅速でアジャイルな開発ライフサイクルをもたらします。

Humanaが、速度、品質、効率を改善するためにコードの編集とデバッグのために現代的なメインフレーム開発環境を選択した際に行った選択から学びましょう。

play

DevOpsガイド

  1. DevOpsとは?包括的な紹介
  2. DevOpsの簡単な歴史
  3. DevOpsアーキテクチャの紹介
  4. DevOpsにおける自動化:なぜ自動化するのか、どのようにするのか
  5. CI/CDとは?継続的インテグレーションと継続的デリバリーの説明
  6. Jenkinsを使用したCI/CDパイプラインの構築方法
  7. CI/CDパイプラインを最適化するためのDevOpsメトリクス
  8. 継続的デリバリーメトリクス
  9. 継続的インテグレーションから継続的デプロイメントへの進行は進行形か、さもなくばそうでないのか?
  10. 継続的インテグレーション(CI)、デリバリー(CD)、およびデプロイメントの違い
  11. DevOpsにおけるソースとバージョン管理
  12. 継続的テストとは何か?
  13. テスト自動化フレームワーク:究極のガイド
  14. DevOpsにおけるリリース管理
  15. 説明:DevOpsにおける監視とテレメトリー
  16. DevOpsにおけるアプリケーションパフォーマンス管理
  17. SDLCにおけるDevOpsオーケストレーション
  18. データベースDevOpsの紹介
  19. DevOpsにおけるマイクロサービスの役割
  20. DevOpsにおける仮想化の役割
  21. コンテナとDevOps:コンテナがDevOpsデリバリーパイプラインにどのように適合するか
  22. コンテナパイプラインとは?
  23. DevOpsツールチェーンとは何か?
  24. DevOpsのためのコンテナとコードの管理
  25. DevOpsにおけるアジャイルの役割
  26. DevOpsにおけるクラウドの役割
  27. FinDevOpsとは何か?
  28. 2022年のトップDevOpsトレンド
  29. DevOpsの価値と原則
  30. DevOpsメトリクスとKPI
  31. 小規模、中規模、大規模組織向けのDevOpsアドバイス
  32. DevOpsチーム構造
  33. 今日読むべきトップDevOps書籍
  34. 『The Phoenix Project: DevOps For Everyone』の書評
  35. DevOpsの影響力のある人々:Twitterでフォローすべき11人のDevOps専門家
  36. GitHub、GitLab、Bitbucket、Azure DevOps:何が違うのか?
  37. ベストプラクティス:Kubernetes用のアプリケーションを設計する方法
  38. DevOpsにおける構成管理
  39. DevOpsのブランチ戦略の説明
  40. DevOpsの職務名、役割、責任
  41. DevOpsにおけるテスト:概念、ベストプラクティス、その他
  42. 2022年の完全なDevOps認証ガイド
  43. Kubernetesオペレーターパターンとは何か?

これらの投稿は私自身の見解であり、必ずしもBMCの立場、戦略、または意見を表しているわけではありません。

ITOps・DevOpsの関連記事

BMCからのさらなる情報に興味がありますか?

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーションに関する月刊メールです:研究、顧客ストーリー、製品ニュース、イベント。

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ザ・ブリーフに登録しました

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーション—BMC AMIおよびControl-M—に関するアナリストの研究、顧客の展開、両者にわたるイベントを網羅しています。