JenkinsがJava 8の対応を終了し、Java 11が必須に。Java 17の対応も開始

2022年7月7日

Jenkins開発チームは、6月28日リリースのJenkins 2.357および9月にリリース予定のJenkins LTS版からはJenkinsの実行環境としてJava 11が必須になることを、ブログ「Jenkins requires Java 11」で明らかにしました。

これまでJenkinsはJava 8もしくはJava 11を実行環境としていましたが、Java 8の対応がなくなることになります。

また、6月14日リリースのJenkins 2.355および6月22日リリースのJenkins 2.346.1 LTSからはJava 17の対応を開始することも合わせて発表しました。

Java 8の利用は下り坂の一方、Java 11が急上昇

Jenkinsは、ビルドやテスト、デプロイなどを自動化してくれるツールとしてよく知られていると同時に、Javaをランタイムとして用いる代表的なツールの1つでもあります。

Javaは、Java 9から導入されたJigsawと呼ばれるモジュール機能などによって大きな変更が加えられたことなどから、Java 8からJava 9以降のバージョンへのバージョンアップはそれほど容易ではなく、多くのユーザーがまだJava 8を利用していると見られます。と同時に、この現状に配慮する多くのJavaディストリビューションでは、Java 8のサポート期間をこの先まだ数年以上継続する計画を明らかにしています。

そうしたなかで、Jenkinsの開発プロジェクトでは匿名のJava使用統計情報を公開しており、これによるとJava 8の利用は2021年頃をピークに急激に減り始めた一方、Java 11の利用は急上昇していることが分かりました。

fig

JenkinsがJava 11へ移行する3つの理由

こうした状況を踏まえ、JenkinsプロジェクトではJava 11へ移行するタイミングが来たと次のように説明しています。

1つ目の理由はセキュリティ面での懸念。

While the Jenkins project could remain on Java 8 for the foreseeable future, this would be imprudent for several reasons. First, many key third-party libraries consumed by the Jenkins project (e.g., Jetty, JGit, Spring Framework, and Spring Security) are beginning to require newer versions of Java, and staying on Java 8 puts the Jenkins project at risk of eventually not being able to receive security updates from upstream projects.

Jenkinsプロジェクトは、当面Java 8を使い続けることも可能ですが、いくつかの理由から、これが賢い選択ではないといえます。1つ目は、Jenkinsプロジェクトが利用する多くの重要なサードパーティライブラリ(Jetty、JGit、Spring Framework、Spring Securityなど)が新しいバージョンのJavaを必要とし始めており、Java 8のままでは、いずれJenkinsプロジェクトが上流プロジェクトからのセキュリティ更新を受け取れなくなる危険性があるためです。

2つ目は、新しいJavaではパフォーマンスやメモリ使用などで大きな改善がある点。

Furthermore, significant runtime improvements have been made to the Java Platform in recent years. For example, LinkedIn saw drastic performance improvements when migrating to Java 11, and Adoptium saw significant memory usage improvements when migrating to Java 11 (on Jenkins, no less!). Recent Java runtimes provide a number of improvements to garbage collection, among other areas.

さらに、ここ数年Javaプラットフォームには大幅なランタイムの改良が加えられています。例えば、LinkedInではJava 11への移行でパフォーマンスが劇的に改善されました。そしてAdoptiumではJava 11に移行する際にメモリ使用量が大幅に改善されました(Jenkins上で、です!)。また、最近のJavaランタイムはガベージコレクションで多数の改善がありますし、それ以外にも多くの改善があるのです。

最後の理由は、最新のJavaを採用することでJenkinsそのものを魅力的なプロジェクトに保つため。

Finally, Jenkins takes pride in its strong development community, and staying on a current version of Java helps attract and retain developers.

最後に、Jenkinsは強力な開発コミュニティに誇りを持っており、最新バージョンのJavaを使い続けることは、そこへ開発者を惹きつけ続けるためでもあります。

Java 11は2018年にリリースされ、Java 17はその3年後の2021年にリリースされたJavaで、いずれもLTS(Long Term Support)対象のJavaです。

日本国内でもまだJava 8のユーザーは多いと思われますが、このJenkinsによるJavaバージョンアップは、Java 11もしくはJava 17へ移行を検討するうえでよい材料、あるいは上司や顧客へのよい言い訳になるのではないでしょうか。

あわせて読みたい

DevOps Java プログラミング言語 Jenkins




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本