orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

2018年にJavaを利用している人は全員理解すべきことを説明してみる(追記あり)

f:id:orangeitems:20180208151639p:plain

Javaのこの記事が衝撃的

新野淳一さんのとても分かりやすいJavaの将来についての記事を読んだ。

www.publickey1.jp

 

これは、大変なことになる。断定する。

 

劇的に変更されるJavaのサポートポリシー

世の中にはサーバーサイドがOracle Java SE 8で動いているたくさんのWEBアプリケーションが存在している。Oracle Java 7が2015年4月に無償サポートが終了しOracle Java SE 8へ乗せ換えたり新規開発したりしたアプリケーションがたくさんある。

Oracle Java 8は2019年1月までしか無償サポートがありません。したがって、せっかく今動いているアプリケーションは来年末までに、それ以降のバージョンに乗せ換える必要があります。そうしないと、脆弱性が発見されても、アップデートは出ません。

では、しようがないのでOracle Java 9への乗せ換えを考えなければいけないのでしょうか。いいえ、違います。Oracle Java 9は2017年9月に公開されましたが、2018年3月をもってサポートが切れています。

じゃあ、Oracle Java 10に・・・。これは2018年3月にリリースされましたが、2018年9月でサポート切れです(!)。

ダメ押しに、Oracle Java 11は・・・。無償版は出ません!。有償契約しないとサポートされませんし、それでも、2018年9月リリース。2019年3月サポート終了。なんと半年しかサポートされないわけです。それ以降の12もこの通りです。

 

一方で、Oracle Java SE 11からは、長期サポート(LTS)を開始します。3年間パッチを出し続けるバージョンを並行してリリースしします。Oracle Java SE 11LTSとでも言うのでしょうか。こちらを、3年間有償サポートし続けると。こちらがエンタープライズ向けの本丸でしょう。Oracle Java SE 11LTSは、2018年9月からリリースされる予定です。

 

勘のいい方はお判りでしょう。今からJavaをセキュアにビジネスで使いたいなら、予算を確保して、Oracleに2018年9月からお金を払えばいいですね・・。

 

(2018/6/23追記)金額が払いやすい「Java SE Subscription」というモデルがOracleより発表されています。 こちらの記事をご確認ください。2025年までJava SE 8をサポートするというのがポイントです。

 

Oracleは本気だ

ヤバさが伝わりましたでしょうか。OracleはJavaを有償ビジネスに、つまりマネタイズを本気でやろうとしているわけです。セキュリティパッチの出ない言語での提案が、今後新規開発案件で採用されることがあるでしょうか。バージョンアップすればいい、というのは昔の話です。お金を出さなければいけなくなるのです。これは、JAVAでのWEBビジネスの大きな転換点と言えると思います。

むしろお金を出すなら実行環境、つまりPaaSへアプリケーションを載せようと考える企業も増えるかもしれません。Java11LTSベースのElastic Beanstalkとか、ね。OracleもWebLogic PaaSを、Oracle Cloudできっちり出してますしね。

「よし、Javaをビジネスにしよう by Oracle」です。

 

OpenJDKはあるけれど

で、「いやいやOpenJDKってのがあるんでしょう?」という反論があろうと思います。オープンソースだからタダでしょ、と。

残念、サポート期間は半年です。Oracle JDKとOpenJDKのバージョンは同じなのですが、LTSのないOracle JDKと同じ扱いになります。半年しかセキュリティパッチの出ないOpenJDK、こんなの商談中にサポート切れちゃいます、よね?

かろうじて、RedHat Linuxを利用している場合は、それに含まれるOpen Java 8は、2020年10月までサポートすると言っています。

OpenJDK ライフサイクルおよびサポートポリシー - Red Hat Customer Portal

良かった?、全然良くないでしょう。そもそも、OpenJDK10以降、コミュニティは半年でサポートを切るのに、RedHatが独自にパッチを出し続ける可能性は低いとしか言えません。

 

f:id:orangeitems:20180522173415p:plain

RHEL Support for OpenJDK 9 - Red Hat Customer Portal

 

(2018/6/23追記)

2018/6/4に、RedHat社は、OpenJDK8のサポート終了後は、OpenJDK11をリリースしこれをLTS(長期サポート)すると明言しました。

Red Hat OpenJDK 11 Advice - Red Hat Customer Portal

RHELでOpenJDK8を動かしているのであれば、11への移植をお勧めします。

 

価格は?

Javaのサポートには4つあります。

Java SE Advanced Desktop
Java SE Advanced
Java SE Suite
・Java SE Subscription

通常のサーバーサイドの利用であれば、Java SE Advancedが当てはまります。こちらの価格は以下の通りです。

・ライセンス費用=1物理プロセッサーあたり、年間60万円。
・保守費用=1物理プロセッサーあたり、年間13万2000円。

クラウドでの利用などが踏まえられていないためこれだけでは試算が難しいですが、その意味するところはお分かりかと思います。

※価格表(oracle社HPより)

http://www.oracle.com/jp/corporate/pricing/e-pl101005-101005a-n-176288-ja.pdf

 

(2018/6/23追記)金額が払いやすい「Java SE Subscription」というモデルがOracleより発表されています。 こちらの記事をご確認ください。

 

空気や水と同じだったJavaが、有償になるということ

世の中、「オープンソースはタダ」という前提でかなり突っ走っています。LAMPと呼ばれるLinux/Apache/MySQL/PHPという環境でどれだけのWEBサイトが乱立し、ビジネスを形成しているでしょうか。

おそらく、MySQLだって、ORACLEは有償にしてくると思います。オープンソースの幻想はJavaから打ち砕かれた、という日も遠くないと思いました。今、オープンソースにどっぷりつかっている企業は、一度、棚卸を始めたほうがいいと思います。

どれだけオープンソースに、自社の技術が依存しているのかということを。

 

まとめ

ひとまず、無償版Javaを利用している企業は、まずは、新野淳一さんの記事や上記の現状を正確に把握してください。そして、深刻な場合は、Oracle社ともよく会話してみてください。

時間は限られています。お客様に費用を転嫁するか、サポートが目まぐるしく切れるOpenJDKを許容するか。別の言語に切り替えるか。経営者の判断が迫られています。時間はありません。

 (2018/6/23追記)金額が払いやすい「Java SE Subscription」というモデルがOracleより発表されています。 こちらの記事をご確認ください。2025年までJava SE 8をサポートするというのがポイントです。こちらを購入すれば時間稼ぎができます。

 

 

追記(2018/2/8 17:15)

まとめたにも関わらず追記があります。

コメントにてgiskardさんより、「新野淳一さんの記事に追記があるよ」とアドバイスを受けました。助かります!。確かに本日14:25分に更新がありました。いつの間に!さすがインターネット。

ポイントとしては、OpenJDKにLTS版を出す計画があるそうです。Oracleに合わせるのであれば、OpenJDK11からになると思われます。ただまだ正式発表ではありません。確かに、LTSが出れば安心して3年間は使い続けられると思います。

固唾を飲んで見守るしかないですね。

このあたりの最新情報がツイッターにあります。

もし実現すれば、これまで無償Oracle Javaに振り回されていた状況がクリーンになると思う反面、オープンソースの危うさを相変わらず感じてしまいます。

私自身はオープンソースへの依存は、ビジネスとしてはリスクになると思っています。

状況が変わりましたらまた追記します。

 

追記(2018/6/23)

金額が払いやすい「Java SE Subscription」というモデルがOracleより発表されています。 こちらの記事をご確認ください。有償ですが2025年までJava SE 8を使い続けることができる内容となっています。

また、Redhatの姿勢が明らかになっています。2018/6/4に、RedHat社は、OpenJDK8のサポート終了後は、OpenJDK11をリリースしこれをLTS(長期サポート)すると明言しました。

Red Hat OpenJDK 11 Advice - Red Hat Customer Portal

RHELでOpenJDK8を動かしているのであれば、11への移植をお勧めします。

 

追記(2018/7/21)

7/19にOracleがプレゼンテーションにまとめてくれていますが、新しい情報はありません。

JDK: 新しいリリースモデル解説(ver.2.0)

 

追記

続編書きました。

波紋呼ぶJavaサポート打ち切りの横で、IBMがちゃっかりバージョン8のサポートを2022年までサポートを伸ばしているという話 - orangeitems’s diary

2018年8月現在のJavaサポート状況をまとめる - orangeitems’s diary

③(この件は毛色が違いますが知っておいた方がいいと思います)

OracleとGoogleのJava著作権侵犯裁判の現状を知る(2018年版) - orangeitems’s diary

Oracle JDK、OpenJDKのライセンス体系を知ろう - orangeitems’s diary

Oracle Code Oneの開催、GraalVMの公開から見るORACLEのビジョン - orangeitems’s diary

⑥(重要、もしかしたら一件落着かも?)

OpenJDK11のLTS(長期サポート)実現をOracleが支援する方向で調整 - orangeitems’s diary

 ⑦(ここ最近で最も重要なリリース)

Java SE Subscription : Oracleから発表された情報まとめ - orangeitems’s diary

 ⑧(ついに2018年9月となったので簡潔にまとめた)

Javaの歴史的転換点となる2018年9月となりました | わかりやすくまとめる - orangeitems’s diary

 

まんがで変わる! 仕事は楽しいかね? (きこ書房)