Jenkins X とは?

Jenkins X

Jenkins X最新情報

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

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

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

すべてを見る

更新日:2020-08-24

Jenkins Xの概要

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

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

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

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

Jenkins Xのアーキテクチャは以下の通りです。
Jenkins Xのアーキテクチャ

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

出典:https://jenkins-x.io/about/

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

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

Jenkins Xは、Kubernetesが動作する主要なクラウドプラットフォーム(Amazon、Azure、Google、IBM Cloud、OpenShift、Pivotalなど)で動作します。

TOPに戻る

Jenkins Xの特徴

コマンドライン
Jenkins Xは、jxコマンドラインツールにより以下のような操作を簡単に行えます。
  • 既存のKubernetesクラスタにJenkins Xのインストール
  • 新規のKubernetesクラスタの作成し、Jenkins Xをインストール
  • プロジェクトのインポートおよび、CDパイプラインのセットアップ
  • 新規のSpring Bootアプリケーションの作成し、CDパイプラインをセットアップ
など。
パイプラインの自動化
Jenkinsのパイプラインについて深い知識がなくても、DevOpsのベストプラクティスに則ったCI/CDの双方を実現するパイプラインをプロジェクトに自動で組み込むことができます。
複数環境の対応
Jenkins Xでは、複数環境(テスト/ステージング(UAT)/本番など)に対応します。各環境に展開されるKubernetesリソースは、Gitリポジトリでバージョン管理されます。プルリクエストが各環境のGitリポジトリにマージされると該当の環境用のパイプラインが実行されます。
チームでの利用
Jenkins Xでのチームとは、別々の名前空間にJenkins Xをインストールすることを表します。--namespaceオプションを利用することで、同一クラスタに異なる名前空間にJenkins Xをインストールできます。ただし、helm 2.xを使っている場合は、Tillerを利用しない設定に変更する必要があります。
プロモーション
各環境のGitリポジトリへのプルリクエスト生成や、masterへのマージにより、各環境のパイプラインがトリガーされます。Jenkins XのCDパイプラインでは、環境に応じて自動化されます。デフォルトではステージング環境は自動プロモーションが利用され、本番環境は手動プロモーションが利用されます。
プレビュー環境
Jenkins Xでは、プルリクエストに対応したプレビュー環境を起動できます。これにより、変更をmasterにマージする前に迅速にフィードバックを得られます。
また、プレビュー環境が起動すると、プルリクエストにリンク付きコメントが投稿され、チームメンバーが1クリックでプレビューを試すことが可能となります。
フィードバック
issueに関連したコミットコメントがあった場合、Jenkins Xのパイプラインは、リリースノートを生成します。また、新しいコミットを含むバージョンがステージング環境や本番環境へプロモートされた際には、修正されたissue自動的にコメントが投稿されます。
アプリケーション
Jenkins Xでは、NexusやChartMuseum、Monocular、Prometheus、Grafanaなどの著名なソフトウェアツール群がヘルムチャートとしてパッケージ化されており、アドオンとして追加が可能です。

TOPに戻る

Jenkins Xの動作環境

  • Kubernetesが動作する主要なクラウドプラットフォーム(Amazon、Azure、Google、IBM Cloud、OpenShift、Pivotalなど)を利用していること
  • Kubernetesクラスタが作成されていること(Terraformの使用を推奨)
  • jx コマンドがインストールされていること

TOPに戻る

Jenkins X 機能マトリックス

機能 GKE EKS OpenShift3.11
クラスタ作成用Terraformスクリプト ×
インストール用jxブート
シークレットストレージ用Vault セルフプロビジョニング
バケットログストレージ
Kubernetesバージョン
- 1.13 × 非対応
- 1.14 非対応
- 1.15 プレビュー プレビュー 非対応
- 1.16 プレビュー プレビュー 非対応
ソースコントロールプロバイダ
-Github
- Github Enterprise
- Gitlab CE プレビュー プレビュー プレビュー
- Gitlab EE プレビュー プレビュー プレビュー
- Bitbucket Server プレビュー プレビュー プレビュー
- Bitbuket Cloud × × ×

TOPに戻る

類似の機能をもつOSS

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

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

TOPに戻る

Jenkins Xのライセンス

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

TOPに戻る

Jenkins Xの公式サイト

https://jenkins-x.io/

TOPに戻る

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

https://github.com/jenkins-x

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