「Jenkins X」発表。Git/Docker/Kubernetesに特化したことでCI/CD環境の構築運用を自動化
ソフトウェアの開発プロセスにおいて、「Jenkins」はビルドやテスト、デプロイなどを自動化してくれるツールとしてよく知られています。
そのJenkinsの派生プロジェクトとして、「Jenkins X」が発表されました。Jenkins Xは、Git、Docker、Kubernetesの環境を前提とすることで、Jenkinsの設定、運用などを大幅に自動化し、より簡単な導入と運用を実現するものです。
Jenkins Xは、Git/Docker/Kubernetes環境に特化
オリジナルのJenkinsは汎用的なビルドやテストの自動化ツールとして、さまざまな環境やツールと連係できるように作られています。そのため柔軟なコンフィグレーションが可能になっていますが、一方でそれが導入やコンフィグレーションの複雑さにつながり、手間がかかると認識される面がありました。
一方、ここ数年でソースコードのリポジトリとしてGitが普及し、実行環境としてはDockerコンテナの利用も広がり、DockerコンテナのオーケストレーションツールとしてKubernetesが事実上の標準の地位を得たとみられるようになりました。
そこでJenkins Xは、あらかじめGit、Docker、Kubernetesを利用するという前提でJenkinsの環境設定や運用をできるだけ自動化するように作られています。
Jenkinsブログの記事「Introducing Jenkins X: a CI/CD solution for modern cloud applications on Kubernetes」によると、Jenkinx Xは次のような機能を備えています。
Jenkins X導入時には、自動的にJenkinsのコンフィグレーションであるJenkinsfile、ソースコードをビルドして実行可能なDockerイメージにパッケージングするためのDockerfile、それをKubernetes環境へデプロイするための構成ファイルであるHelm chartが自動的に生成されます。
プルリクエストが発生すると、Jenkins Xは自動的にテスト、ビルドしたDockerイメージをKubernetesのPreview名前空間にデプロイ。開発チームのメンバーはすぐにプレビュー版を試すことが可能です。
プルリクエストがマスターブランチにマージされると、新しいバージョン番号が付けられたリリースがビルドされ、Kuberenetes上のステージング環境へデプロイされます。
Kubernetes上のステージング環境やプロダクション環境(本番環境)などの構成もすべてGitでコードとして記述され、Jenkins Xによって管理されます。同社はこれをGitを使った運用(Operation)ということで「GitOps」と名付けています。
Jenkinsは事実上、DockerコンテナとKubernetesを基盤としたアプリケーションを開発することにフォーカスしていると言えます。この環境に対応するアプリケーションの開発は、現時点ではまだ野心的なプロジェクトですが、Jenkins Xはそこを割り切ることでJenkinsの将来像の1つを示すプロジェクトとなることを目論んでいるのでしょう。
下記はJenkins Xが容易に導入できることを示した動画です。
カテゴリ DevOps / アジャイル開発
タグ DevOps , Jenkins
あわせてお読みください
- Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了
- AWSの各種サービスやSDKのドキュメントがオープンソースとしてGitHubに公開。誰でもコントリビュートや再利用が可能に
- JavaScriptのコードとService Workerをユーザーに近いCDNのエッジで実行可能。Cloudflareが「Cloudflare Workers」を提供開始
- Stack Overflowが2018年の調査結果を発表。一番使われている言語はJavaScript、一番好きな言語はRustに
- ネットワークスイッチをプログラマブルでgRPC対応にする「Stratum」をONFが発表。ホワイトボックススイッチのリファレンス実装に、Googleがオープンソース提供
Eclipse Foundationが、Java EEの新ブランドとなった「Jakarta EE」のロゴをコミュニティから募集中。締め切りは3月21日