【Java】AdoptOpenJDK 11がLTSをサポート
Javaのサポートについて
OracleのJavaへのサポート体制の変更が波紋を呼んでいます。
Oracle JDK 11の有償化
事の発端は、OracleがJava 11の提供を有償化する声明を出したことでした。
Oracleは今まで、Javaのバージョンを約3年ごとにリリースし、約5年ごとのサポート期間を設けていました(Long Term Support、LTS)。
例えば、
となっています。
しかし、Oracleは2017年9月にリリースされたJava9以降6ヶ月ごとにリリースを行うスタイルに変更します。 同時に、次回verがリリースされるのと同時に、前回verのサポートを打ち切る方針に転換しました(Feature Release Model)。
- Java9 ・・・2017年9月21日にリリース(2018年3月にサポート終了)
- Java10・・・2018年3月20日にリリース(2018年9月にサポート終了)
すなわち、Oracle Javaを今後使っていく人は早いサイクルでアップデートをし続けなくてはならない、という流れになりつつありました。
本来であれば、セキュリティや新機能実装の観点からこまめなアップデートは推奨されるべきなのですが・・・。
中~大規模なシステムだとアップデート作業やテスト、デグレ解消に結構な工数がかかるので、長期間安定して使えるJDKが欲しいというのが実情だと思います。
ところが2018年9月、OracleはJava 11がリリースを決定したのですが、Java 11 の商用利用を有償化し、同時にLTSとすると発表したのです。
システム運用等の業務でJavaを使っている人からすれば長期サポートは嬉しいのですが、いきなりの有償化宣告に対応する余裕はありません。
なんとかして無償でJavaを使い続けられる環境を維持したいものです。
ちなみにJava8はサポート期限が2019年1月とJava9よりもあとまでのサポートとなっています。
期間的にはだいぶ長めですが、来年頭にはサポートが切れるので同様の対応が必要になります。
(Oracle 公式より引用)
Java8~10の刻々と迫るサポート期間、Java11 LTS の有償化にJava界隈がざわついていました。
OpenJDK
OpenJDKはその名の通り、Javaプラットフォームをオープンソース化したものです。
OpenJDKの実装にはOracleも参画しており、商用にも耐えうる実装であると考えられます。実際、OracleはOpenJDKの2018年の最新バイナリをOracle JDKに統合した上で、今後のOracle JDKを運用していく旨を発表しています。またオラクルの声明では以降無償Javaを利用するにはOpenJDKを使ってねとも言っています。
こちらのJDKであれば無償で使うことができますね!
・・・と思いきや、OpenJDKはLTSをサポートしていません。
つまり、OpenJDKを利用する場合、6ヶ月ごとにJDKのバーションをアップデートしなければならなくなります。
ここで再びFeature Release Modelの問題が発生します。
無料で、かつLTSなJDKが欲しい・・・!
AdoptOpenJDK 11
そんな中、AdoptOpenJDKが興味深いサポートライフサイクルを提示していました。
AdoptOpenJDKはIBMやRedHat、SAP、オラクル等に所属するメンバーが参画するOpenJDKコミュニティーです。 OpenJDKのビルドを提供します。 彼らの提供するJava 11のJDKは、無償かつLTSとのことでした。
12以降はどうなるかわかりませんが、少なくともJava 11を3年間サポートを受けながら使えるようですね。素晴らしいです!
ただ、公式のgithubのissueでビルドできないとの報告も上がっており、少々不安も感じさせます。
OpenJDK でも Java 11 をLTS化?
orangeitemsさんの記事に最新情報があがっていました。
また、Redhatの姿勢が明らかになっています。2018/6/4に、RedHat社は、OpenJDK8のサポート終了後は、OpenJDK11をリリースしこれをLTS(長期サポート)すると明言しました。
Red Hat OpenJDK 11 Advice - Red Hat Customer Portal
RHELでOpenJDK8を動かしているのであれば、11への移植をお勧めします。
https://www.orangeitems.com/entry/2018/02/08/152022 より引用
どうやら、RedHatが公式にOpenJDK 11をLTS化することを発表したようです。
リンク先の記事を参照したかったのですが、subscription専用なので読み進められない・・・
これが本当であれば、今後の無償JavaはOracleの声明どおりOpenJDK一択となりそうです。