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 10への検討を・・、これはもう時間切れです。9はすでに2018年3月でサポート終了。10は2018年9月でサポート終了。

それならOracle Java 11はどうでしょう。2018年9月26日にリリースされました。

※以前の噂では11からは有償サポート契約のある顧客のみ、Oracleサイトからダウンロードできると思われていましたがダウンロードできます。このからくりに気が付きました。11から契約内容が変更されているのです。実質、開発用にしか利用できません。

(重要)Oracle Java 11から、ライセンス契約の内容がガラリと変わっています | 無償利用は非商用・開発用途のみ - orangeitems’s diary

Oracle Java 11は長期サポート(LTS)を実施します。ホームページを見ると2023年9月までPremier Supportとあります。こちらがエンタープライズ向けの本丸でしょう。

 

f:id:orangeitems:20180926135343p:plain

 

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

しかも、予算を立てやすい「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

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

 

f:id:orangeitems:20180522173415p:plain

RHEL Support for OpenJDK 9 - Red Hat Customer Portal

 

なお、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円。

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

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

 

また、金額が払いやすい「Java SE Subscription」について価格は下記の表の通りです。

 

f:id:orangeitems:20180926140012p:plain

オラクル Java SE Subscription FAQ

 

 

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

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

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

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

 

まとめ

Oracle Java 8を利用している企業が、今後の選択を迫られていることは確かです。

時間は限られています。

お客様に費用を転嫁するか、サポートが目まぐるしく切れるOpenJDKを許容するか。

別の言語に切り替えるか。

経営者の判断が迫られています。時間はありません。

なお、金額が払いやすい「Java SE Subscription」は、2025年までJava SE 8をサポートするというのがポイントです。こちらを購入すればお金で時間稼ぎができます。

 

 

追記

OpenJDK 11のLTS(長期サポート)は望み薄です。思わせぶりな記事がありましたが・・・。今はその兆候はありません。AdoptedOpenJDKが・・・という記事も見ているのですが、本当にやりきれるのか不安です。商用システムにこんな実績のないサポート体制で問題ないのでしょうか。

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

Red Hat OpenJDK 11 Advice - Red Hat Customer Portal

RHELでOpenJDK8を動かしているのであれば、RHELからリリースされるOpen JDK11への移植をお勧めします。※まだ出てません。

 

 

追記2

続編書きました。

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

2018年10月現在の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

 ⑨(Oracle Java 11からライセンスの内容が変わっていることに気が付きました)

(重要)Oracle Java 11から、ライセンス契約の内容がガラリと変わっています | 無償利用は非商用・開発用途のみ - orangeitems’s diary

 ⑩(Amazonを信用するならこんな手があるようです)

OpenJDK完全互換、Amazon Correttoは信用できるのか - orangeitems’s diary

 

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