Jenkins X とは?

Jenkins X

Jenkins X最新情報

NRIのOpenStandiaが提供するJenkins X最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Jenkins Xバージョンアップ情報

すべてを見る

更新日:2023-04-24

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では、主に以下のような機能が提供されます。

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

TOPに戻る

Jenkins Xの特徴

パイプラインの自動化
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の概念モデルは以下です。

Jenkins Xの概念モデル
出典: https://jenkins-x.io/v3/about/overview

TOPに戻る

マイクロサービス

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 パイプライン コントローラーが含まれます。

TOPに戻る

Jenkins Xの動作環境

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

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

TOPに戻る

類似の機能をもつOSS

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

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

TOPに戻る

Jenkins Xのライセンス

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

TOPに戻る

参考情報

Jenkins Xの公式サイト
Jenkins Xのダウンロード

TOPに戻る

Jenkins Xのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO