Javaのリリースモデル変更をSIer目線で整理してみる
OracleによるJavaのリリースモデル変更、弊社のサーバーサイド案件はJavaが多いこともあって発表当時には社内でも話題になっていました。
そのときは漠然と大変だなーくらいに思っていましたが、Java 8のサポート期限まであと半年、各案件でもそろそろ方針を決める時期に差し掛かってきたので、具体的なところをSIer目線で整理してみました。
- Javaのリリースモデル変更
- 6カ月ごと(3月と9月)にメジャーバージョンアップする
- 古くなったメジャーバージョンに対するバグフィックスやセキュリティパッチは提供されない
- Java 8の無償サポート期間は2019年1月まで
- Oracle JDK
- Oracle JDKの無償配布はJava10で終了し、Java11からは有償版(商用版)になる
- 商用版はサポートに加えてLTS(Long Term Support=長期サポート)版が利用できる
- 商用版の費用はサブスクリプションだと1CPU当たり月25ドル
- LTSには3年間に渡ってパッチが提供される
- OpenJDK
- OracleはOpenJDKベースのバイナリを無償提供する
- LTS版が提供されるかどうか微妙な状況
- OpenJDKに対して独自のサポートやLTS版を提供する動きもある
- AdoptOpenJDK
- IBM
- Red Hat
これを踏まえると、取りうる選択肢は
- A. Oracle JDKの商用版を使う
- お客さんがお金を払ってくれるならこれが一番
- いままで無償だったのに「Oracleの方針が変わったから費用払って下さい」と言って素直に払ってくれるお客さんは多くない
- B. OpenJDKを使い、6か月毎のメジャーバージョンアップに追従する
- 検証必須だからコストが生じる
- だったら商用版でいいのでは?となる可能性も
- C. OpenJDKを使い、メジャーバージョンアップは無視
- セキュリティリスクを誰が背負うのか...
- D. 独自サポート版にスイッチする
- AdoptOpenJDKなら無償だが実績が...
- コストメリットがあるならIBMやRed Hatはアリかも
ですかねー。
官公庁や金融系、大企業案件とかだとなんだかんだでAに落ち着くんでしょう。でも、保守費なんて雀の涙、みたいな案件だとAやBは非現実的。結果ノーガード戦法でCになっちゃう気がします。そしてお客さんとの関係性が弱いと何かあったら怒られる、と。悲しいなあ...
もっと言うと、結局決めきれなくてOracleがOpenJDKにもLTS版を出すのを願ってギリギリまで粘る、というチキンレースが主流になる気がしなくもないです...
(2018/11/15追記) 有力な選択肢としてAmazon Correttoが登場しました。Amazon Correttoの衝撃 にまとめてあります。
参考URL
関連(するかもしれない)記事
おススメ