Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scala製プロダクトのJavaバージョン戦略

 Scala製プロダクトのJavaバージョン戦略

10/24(水) Scala関西勉強会 - Summit直前スペシャル
https://connpass.com/event/103702/

yoshiyoshifujii

October 24, 2018
Tweet

More Decks by yoshiyoshifujii

Other Decks in Technology

Transcript

  1. Yoshitaka Fujii @yoshiyoshifujii ChatWork 株式会社 (2 ヶ月) Scala 関西 Summit

    スタッフ Scala 歴 4 年 Contributors of Akka chatwork/akka­guard 自己紹介 Scala 製プロダクトのJava 戦略 2 / 36
  2. JDK の新リリース・モデル オラクルは2017 年9 月、JDK の提供サイクルとライセンス方式に関して、新たなリリ ース・モデルを発表しました。 これらはJDK 9 より一部が適用され、2018

    年9 月に公 開予定のJDK 11 で完全移行します。 新リリース・モデルはJDK の過去のリリース・モ デルの課題を解決したものであり、ユーザーにより多くのメリットをもたらします。 https://www.oracle.com/technetwork/jp/articles/java/ja­topics/jdk­release­model­4487660­ja.html Scala 製プロダクトのJava 戦略 7 / 36
  3. 年 6 回の定期リリース・サイクル 新機能が追加される6 カ月に1 回のフィーチャー・リリース 毎年3 月、9 月 従来の「メジャー・リリース」という呼び名から

    新しく「フィーチャ-・リリース」に変更 JDK の正式なバージョン番号も上がっていく JDK を短期間で定期的に更新していくことを重視したサイクル 従来のように新バージョンで一挙に多数の機能が追加されるようなことはない 脆弱性対策などを施したアップデート・リリースを1 年に4 回 毎年1 月、4 月、7 月、10 月 Scala 製プロダクトのJava 戦略 9 / 36
  4. JDK の新リリース・モデル オラクルは2017 年9 月、JDK の提供サイクルとライセンス方式に関して、新たなリリ ース・モデルを発表しました。 これらはJDK 9 より一部が適用され、2018

    年9 月に公 開予定のJDK 11 で完全移行します。 新リリース・モデルはJDK の過去のリリース・モ デルの課題を解決したものであり、ユーザーにより多くのメリットをもたらします。 https://www.oracle.com/technetwork/jp/articles/java/ja­topics/jdk­release­model­4487660­ja.html Scala 製プロダクトのJava 戦略 13 / 36
  5. JDK の新リリース・モデル オラクルは2017 年9 月、JDK の提供サイクルとライセンス方式に関して、新たなリリ ース・モデルを発表しました。 これらはJDK 9 より一部が適用され、2018

    年 9 月に公 開予定の JDK 11 で完全移行します。 新リリース・モデルはJDK の過去のリリース・モ デルの課題を解決したものであり、ユーザーにより多くのメリットをもたらします。 https://www.oracle.com/technetwork/jp/articles/java/ja­topics/jdk­release­model­4487660­ja.html Scala 製プロダクトのJava 戦略 14 / 36
  6. JDK の新リリース・モデル オラクルは2017 年9 月、JDK の提供サイクルとライセンス方式に関して、新たなリリ ース・モデルを発表しました。 これらはJDK 9 より一部が適用され、2018

    年 9 月に公 開予定の JDK 11 で完全移行します。 新リリース・モデルはJDK の過去のリリース・モ デルの課題を解決したものであり、ユーザーにより多くのメリットをもたらします。 https://www.oracle.com/technetwork/jp/articles/java/ja­topics/jdk­release­model­4487660­ja.html もうはじまってる! Scala 製プロダクトのJava 戦略 14 / 36
  7. We recommend using Java 8 for compiling Scala code. Since

    the JVM is backward compatible, it is usually safe to use a newer JVM to run your code compiled by the Scala compiler for older JVM versions. コンパイルは Java 8 が推奨 JVM は下位互換性があるため、古いJVM バージョン用にScala コンパイラによっ てコンパイルされたコードを実行するた めに、新しいJVM を使用するのが通常安 全です。 Scala の Java 対応状況 https://docs.scala­lang.org/overviews/jdk­compatibility/overview.html#running­versus­compiling Scala 製プロダクトのJava 戦略 17 / 36
  8. We try to provide experimental support for running the Scala

    compiler on LTS versions of Java (“Long Term Support”; see http://www.oracle.com/technetwork/java/eol­ 135779.html), and to the extent possible will include the current LTS Java version in our CI matrix and the community build. We will not, a priori, consider non­ LTS Java versions. Compiler bugs related to Java versions other than the supported one (Java 8), will be scheduled with lower priority, and will not be considered release blockers. Scala コンパイラをLTS バージョンの Java で実行するためのサポートを可能な 限り提供しようとしている LTS 以外のJava バージョンは考慮しない サポートされているバージョン(Java 8 )以外のJava バージョンに関連するコ ンパイラのバグは、優先順位が低くスケ ジュールされる Scala の Java 対応状況 https://docs.scala­lang.org/overviews/jdk­compatibility/overview.html#running­versus­compiling Scala 製プロダクトのJava 戦略 18 / 36
  9. Java 8 が推奨 Java 9, 10 は、Oracle のサポート終了 Java 11

    は、絶賛テスト中 Akka が動かないとかやばい ライブラリもテスト中が多い Scala の Java 対応状況 ­ まとめ Scala 製プロダクトのJava 戦略 24 / 36
  10. Scala の Java 対応状況 ­ まとめ いままで通り無償でやっていくなら、Java8 ただし、2019 年1 月まで

    Java11 にあげたいけど全部は動かない Scala 製プロダクトのJava 戦略 25 / 36
  11. 選択肢 選択肢としては、 1. Oracle 2. AdoptOpenJDK 3. Azul Systems 4.

    IBM 5. Red Hat 6. 自前でがんばる Scala 製プロダクトのJava 戦略 27 / 36
  12. Oracle JDK の公式アップデートは、 Java8 のみ残ってる それも、2019 年1 月( 商用) まで

    カウントダウンは、はじまってる https://www.oracle.com/technetwork/jp/java/eol­ 135779­ja.html Oracle の無償サポート Scala 製プロダクトのJava 戦略 28 / 36
  13. Premier Support ならJava8 が2022 年3 月 PC 端末が月額1 ユーザー2.5 ドル

    サーバ/クラウドが月額1CPU25 ドル 標準の契約期間は1 年(2 年および3 年も あり) ボリュームディスカウントもあるらしい https://www.oracle.com/technetwork/jp/java/eol­ 135779­ja.html https://www.oracle.com/technetwork/jp/java/javaseproducts/overview/javasesubscriptionfaq­ 4891443­ja.html Oracle の有償サポート Scala 製プロダクトのJava 戦略 29 / 36
  14. OpenJDK のビルドを提供するコミュニ ティ( 無償) IBM などがスポンサー LTS については、4 年間のサポート Java8

    について、2022 年9 月までサポー ト https://adoptopenjdk.net/index.html AdoptOpenJDK Scala 製プロダクトのJava 戦略 30 / 36
  15. AdoptOpenJDK ­ 考察 ( 私見も多いに含む ) Oracle ほどリリースが早くない 肌感覚として、1 、2

    週間ほど遅れる OpenJDK は、JDK 8u192 (2018/10/23 現在) AdoptOpenJDK は、JDK 8u181 (2018/10/23 現在) あくまでベストエフォート コミュニティの要望が強いので早めに対応される期待はある 今までOracleJDK を使ってたなら、色々と検証はしておくべき SSL 証明書が不足して、https クライアントが失敗するとか Scala 製プロダクトのJava 戦略 31 / 36
  16. Zulu( 無償) Zulu Enterprise( 有償) がある Java SE 標準に完全準拠したOpenJDK の

    認証ビルド 10 年間のエンタープライズグレードの Java サポート https://jp.azul.com/products/zulu­and­zulu­ enterprise/ Azul Systems Scala 製プロダクトのJava 戦略 32 / 36
  17. Red Hat Red Hat Enterprise Linux 上のJDK をサポート OpenJDK8 は、2023

    年6 月まで https://access.redhat.com/ja/articles/1457743 Scala 製プロダクトのJava 戦略 34 / 36
  18. まとめ Scala は、Java8 でコンパイル推奨 無償は、AdoptOpenJDK かな… 有償は、Azul or Oracle かな…

    みなさん、どうされるのか、情報交換させて欲しい!! Scala 製プロダクトのJava 戦略 36 / 36