トップ OSS紹介 Jenkins X

Jenkins X

NRIのOpenStandiaが提供するJenkins X詳細情報

バージョンアップ情報

Jenkins X情報

Jenkins X情報更新日:2025/06/10

Jenkins Xとは

Jenkins X(じぇんきんずえっくす)は、Kubernetes上で動作するクラウドネイティブアプリケーションに対して継続的インテグレーション(Continuous Integration)および、継続的デリバリー(Continuous Delivery)を行うための自動ビルドツールです。

Jenkins Xは、2018年3月14日にApache Groovy の開発者であるジェームス・ストラカンが後援するJenkinsの仕様を決定する仕組みであるJenkins Enhancement Proposalで発表されました。

Jenkinsとの大きな違いは、GitOpsベースのTektonパイプラインを利用したクラウドネイティブアプリケーションを前提としたアーキテクチャになっている点です。あえて、開発プロセスを限定することで、CI/CDにかかわる設定の複雑さや、それにかかる運用の労力を低減させる狙いがあります。

Jenkins Xのロゴには当初JenkinsのウェイターにKubernetesの航海のイメージを重ねたキャラクターが使用されていましたが、現在は2019年7月に発表された自動化をイメージさせるロボットのキャラクターが主に使用されています。

Jenkins Xでは、主に以下のような機能が提供されます。

  • GitOpsによるCI/CDの自動化
  • masterにマージする前のプルリクエストによるプレビュー環境
  • コメントによるIssueとプルリクエストのフィードバック

主な特徴

パイプラインの自動化

Jenkins Xは、Kubernetes、コンテナ、Tektonについての深い知識がなくてもCI/CDを完全に実装したGitOpsで管理可能なTektonパイプラインをプロジェクトに自動で組み込むことができます。

複数環境の対応

Jenkins Xでは、複数環境(開発/ステージング/本番など)に対応します。Jenkins Xは、環境の管理とGitOpsとプルリクエストによる新しいバージョンのアプリケーションの環境間でのプロモーションを自動化します。

プレビュー環境

Jenkins Xでは、プルリクエストに対応したプレビュー環境を起動できます。これにより、変更をメインブランチにマージする前に迅速なフィードバックを得られます。
また、プレビュー環境が起動すると、プルリクエストにリンク付きコメントが投稿され、チームメンバーが1クリックでプレビューを試すことが可能となります。

ChatOps

issueに関連したコミットコメントがあった場合、Jenkins Xのパイプラインは、リリースノートを生成します。また、新しいコミットを含むバージョンがステージング環境や本番環境へプロモートされた際には、コミット、issue、プルリクエストに自動的にコメントが投稿されます。

Jenkins XによりCI/CDが自動化、高速化されることで、クラウド上の開発者は、ソフトウェアの開発に集中することができます。

Jenkins X が採用しているオープンソースプロジェクトは以下です。

  • Kubernetes: ターゲットプラットフォーム
  • Tekton: クラウドネイティブパイプラインオーケストレーション
  • Kuberhealthy:システムの定期的なヘルスチェック
  • Grafana(オプション):ログ及び可観測性の一元化
  • Jenkins(オプション) :従来のパイプラインオーケストレーション
  • Nexus(オプション):アーティファクトリポジトリ

Jenkins Xの概念モデルは以下です。

類似プロダクト

オープンソースのCI/CDツールとしては以下のものがあります。

  • Buildbot
  • GoCD
  • Jenkins
  • Spinnaker
  • Tekton
  • Travis CI
  • Gitlab

マイクロサービス

Jenkins Xはマイクロサービス指向で開発されており、以下のマイクロサービスを利用しています。

jx-git-operator

jenkins-x/git-operator マイクロサービスの git オペレーターと、関連のブートジョブ

jx

以下のような開発用サービスが含まれています。

  • jx-build-controller
    PipelineRun リソースを監視し、PipelineActivity カスタム リソースを作成/更新します。
  • jx-pipelines-visualizer
    PipelineActivity リソースと関連するビルドログを UI で視覚化します。
  • jx-preview-gc-jobs
    定期的にガベージ コレクションを行います。
  • jxboot-helmfile-resources-gcactivities
    完了した PipelineActivity リソースを定期的にガベージコレクションします。
  • jxboot-helmfile-resources-gcpods
    完了した Pod を定期的にガベージコレクションします。
  • jx-kh-check
    kuberhealthy ベースのヘルスチェックをサポートします。

lighthouse

jenkins-x/lighthouse は tekton パイプラインを作成、プルリクエストで ChatOps をトリガーします。
以下のコンポーネントで構成されています。

  • lighthouse-webhooks
    git プロバイダーからの Webhook を LighthouseJob カスタムリソースに変換します。
  • lighthouse-tekton-controller
    LighthouseJob カスタムリソースを tekton PipelineRun リソースに変換します。
  • lighthouse-foghorn
    PipelineRun リソースの実行を監視、プルリクエストの各コンテキストにパイプライン ビジュアライザーをリンクします。
  • lighthouse-keeper
    グリーンパイプラインと承認ラベルのあるプルリクエストを探して、自動マージできるようにします。
  • lighthouse-gc-jobs
    定期的に LighthouseJob リソースと関連するリソースをガベージコレクションします。

kuberhealthy

kuberhealthy サービスが含まれており、可用性と可観測性を向上させます。

nginx

有効な場合は、nginx-ingress プロバイダーが含みます。

jx-vault

以下は、クラウドプロバイダーのネイティブシークレットマネージャーを使用しない場合のオプション追加機能です。

  • vault-operator
    Vault リソースを HashiCorp Vault のインスタンスに変換する vault オペレータが含まれています。
  • vault-instance
    デフォルトの Vault リソースを作成する vault インスタンスが含まれています。

secret-infra

  • kubernetes-external-secrets
    ExternalSecrets を処理するための external-secrets/kubernetes-external-secrets サービスが含まれています。
  • pusher-wave
    クラウドプロバイダーのシークレットリソースより、変更されたマイクロサービスのローリングアップデートを行うための pusher/wave サービスが含まれます。

tekton-pipelines

tekton パイプライン コントローラーが含まれます。

メリット・デメリット

メリット・必要性

  • CI/CDの自動化と迅速化

Jenkins Xは、CI/CDパイプラインの構築を自動化し、開発者がコードをコミットすると、テスト、ビルド、デプロイが自動的に行われるように設定できます。これにより、開発者は開発作業に集中でき、リリースまでの時間を短縮できます 。

  • Kubernetesネイティブな設計

Jenkins XはKubernetes上で動作するように設計されており、コンテナ化されたアプリケーションのデプロイとスケーリングを効率的に行うことができます 。

  • GitOpsによる環境管理

Jenkins XはGitOpsの原則に従い、アプリケーションのデプロイや環境設定の変更をGitリポジトリを通じて管理します。これにより、変更の追跡、監査、ロールバックが容易になります 。

  • プレビュー環境の提供

プルリクエストごとにプレビュー環境を自動的に作成できるため、開発者は変更をマージする前に実際の環境でテストし、フィードバックを得ることができます 。

  • ChatOpsのサポート

Jenkins Xは、ChatOpsツールとの連携をサポートしており、チームはチャットインターフェースを通じてデプロイメントを監視し、アクションを実行できます。

デメリット・注意点・課題

  • 習得時間

Kubernetesとコンテナ化の概念に不慣れなユーザーにとっては、Jenkins Xのセットアップや管理に時間を要する場合があります

  • Kubernetes依存

Jenkins Xは特にKubernetes環境向けに設計されているため、Kubernetesを使用せず、別のコンテナオーケストレーションシステムを使用している組織には適していません。

  • リソース要件

Jenkins Xを効果的に実行するには、特にマイクロサービスアーキテクチャとKubernetesクラスタの運用に関してのリソースと実行環境が必要になる場合があります。

  • ドキュメント等の成熟度

Jenkins Xは伝統的なJenkinsに比べると比較的新しいプロジェクトであり、ドキュメントやコミュニティサポートがやや不足していることがあります。

  • 移行の複雑さ

既存のJenkinsからJenkins Xへの移行は、特にKubernetesやコンテナ化の概念に精通していない場合、複雑になる可能性があります。

動作環境

Jenkins Xは、以下のような環境で動作します。

  • Amazon EKS
  • Azure
  • Google Cloud GKE
  • OpenShift
  • K3s、Minikube、Kubernetes

Jenkins Xのライセンス

Jenkins Xは、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

製品ダウンロード

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Kubernetes
    サポート対象

    Kubernetes

    クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。

  • Jenkins

    Jenkins

    ジェンキンス。ソフトウェア開発プロセスの「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援するオープンソースの継続的インテグレーション(CI)ツールです。

  • GitLab

    GitLab

    ギットラボ。Gitリポジトリ機能を中心としたオープンソースのDevOps 製品です。

  • Git
    サポート対象

    Git

    ギット。Linux kernelのソースコードを効率良く管理するために生まれた高機能バージョン管理システムです。

  • Bazel

    Bazel

    バゼル。Google が社内開発に使用していた独自のビルドツールをオープンソース化したプロダクトです。

  • Argo CD
    サポート対象

    Argo CD

    アルゴシーディー。KubernetesのためのGitOpsに則ったCD(Continuous Delivery)ツールです。

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。