orangeitems’s diary

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

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

f:id:orangeitems:20180208151639p:plain

Javaのこの記事が衝撃的

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

www.publickey1.jp

 

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

スポンサーリンク

 

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

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

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

では、しようがないので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 Java11からは、長期サポート(LTS)を開始します。3年間パッチを出し続けるバージョンを並行してリリースしします。Oracle Java11LTSとでも言うのでしょうか。こちらを、3年間有償サポートし続けると。こちらがエンタープライズ向けの本丸でしょう。Oracle Java11LTSは、2018年9月からリリースされる予定です。

 

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

 

Oracleは本気だ

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

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

「よし、Javaをお金にしよう by Oracle」です。

 

Open JDKはあるけれど

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

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

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

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

  RHEL 5 のサポートが追加されたバージョン RHEL 6 のサポートが追加されたバージョン RHEL 7 のサポートが追加されたバージョン サポート終了日
OpenJDK 6 (1.6) 5.3 6.0 7.0 2016 年 12 月
OpenJDK 7 (1.7) 5.9 6.3 7.0 2018 年 6 月
OpenJDK 8 (1.8) 該当なし 6.6 7.1 2020 年 10 月

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

RHEL Support for OpenJDK 9 - Red Hat Customer Portal
※まだRHELでOpenJDK9をどうするかは「ドキュメント作成中」となっている。

 

価格は?

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

Java SE Advanced Desktop
Java SE Advanced
Java SE Suite

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

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

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

※価格表(oracle社HPより)

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

 

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

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

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

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

 

まとめ

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

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

 

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

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

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

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

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

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

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

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

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

 

 

スポンサーリンク