Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5

15,749 views

Published on

5/17 Oracle Code Tokyo 2019、5/18 JJUG CCCのセッション資料です。https://togetter.com/li/1356223 も併せて参照ください。
以下、Oracle Code Tokyo 2019 https://www.oracle.co.jp/events/code/2019/ でのセッション概要より転記します。
--------
2019年1月末で、Oracle JDK/JRE 8の商用ユーザー向けのPublic Updatesが終了しました。また、Java 9以降ではJDKのリリースモデルが変更になり、並行してOracle JDK 8までの商用機能がOpenJDKに寄贈されていきました。 こうした流れにより、特にJava 9がリリースされた2017年9月以降には様々なOpenJDKディストリビューションが出てきており、選択肢が大きく増えた反面、どれを選べばよいのかが分からない・多様になっただけに混乱を招く、などの話を耳にすることもあります。 本セッションでは、マルチプラットフォームに対応した主要なJDKディストリビューションの特徴を説明するとともに、どのような軸で判断していくべきかを提示することで、皆様の環境・状況にあった最適なJDK選びをお手伝いいたします。

Published in: Technology
  • DOWNLOAD TH1S BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD TH1S BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD TH1S BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD TH1S BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc EBOOK Here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5

  1. 1. #codetokyo19B3 & #ccc_l5 最適なOpenJDKディストリビューションの選び方 - How to choose the best OpenJDK distribution - Takahiro YAMADA 2019-05
  2. 2. #codetokyo19B3 & #ccc_l5 自己紹介 • お仕事: SIerの片隅でマルチベンダーのミドルウェア技術サポート - Oracle Fusion Middleware - Red Hat JBoss Middleware - その他 Java を一部利用するミドルウェア製品 • コミュニティ - Twitter: @yamadamn - 元: Oracle ACE (Middleware) - 現在: 日本GlassFishユーザー会 監事 - 本日: OpenJDK警察 OpenJDKソムリエ 2
  3. 3. #codetokyo19B3 & #ccc_l5 免責事項 • Oracle と Java は、Oracle Corporation およびその子会社・関連会社 の米国およびその他の国における登録商標です。文中の社名・商品名 などは、各社の商標または登録商標である場合があります。 • 発表する内容は個人の見解であり、所属する組織や団体の公式な見解 ではありません。 • 本資料に記載している内容は2019年5月前半時点の情報に基づきます。 また、本資料を使用したことにより被った直接的、間接的な損害等に ついて、いかなる責任も負いかねます。 3
  4. 4. #codetokyo19B3 & #ccc_l5 本日メインで紹介するJDKディストリビューション • Oracle JDK • Oracle OpenJDK • Red Hat OpenJDK • Azul Zulu • SapMachine • BellSoft Liberica JDK • AdoptOpenJDK with HotSpot • Amazon Corretto 4
  5. 5. #codetokyo19B3 & #ccc_l5 なぜマルチプラットフォーム対応のJDKに着目するか • 手動でビルドするのは面倒手間や動作保証などの観点から困難 - 開発環境とテスト・本番環境でのJDK種類・バージョンによる差異を極力なくす • 開発環境: Windows 10, macOS X, Ubuntu, Docker • テスト環境: CentOS, Windows Server, Docker, クラウド, Raspberry Pi • 本番環境: RHEL, Windows Server, Solaris, Docker, クラウド, Raspberry Pi • 各JDKディストリビューターが力を入れている - Oracle, Red Hat, Azul Systems, SAP, BellSoft, AdoptOpenJDK, Amazon - リリースも早い • Oracleが最初にリリース後に、各ディストリビューターが競ってリリース • ゼロデイ脆弱性への対応を考慮 - Linux distroに含まれるOpenJDKは若干古かったり、パッケージ更新に依存 • 例: 改元「令和」対応 5 (例)
  6. 6. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 6
  7. 7. #codetokyo19B3 & #ccc_l5 その前に: Javaが有償化されたと思っている方いないですよね? • Javaは誰のもの? - 「Javaはオラクルのもの?」、「いいえ、これからもJavaコミュニティのもので す!」(2011年頃 by @yoshioterada さん: 現Java Champion) • 「Java有償化」ではなく「Javaオープン化」の方が正しい理解 - Linuxのようなディストリビューションモデルに変更 - 現状の主流は、OpenJDK with HotSpot JVMであり、そこまで差異はない • 関連ツイートまとめ - 『「Java 有償化」で誤解する人になるべく分かりやすく説明するためのまとめ』 https://togetter.com/li/1343743 - 『Oracle JREの商用無償版EOLの話をするには、政府CIOの「Javaのサポートポリシー変更等に関 する技術レポート」がオススメ』 https://togetter.com/li/1342198 - 『JJUG ナイトセミナー 「緊急特集! Javaの無償版はなくならないぞ!」 #jjug』 https://togetter.com/li/1239234 7
  8. 8. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 8
  9. 9. #codetokyo19B3 & #ccc_l5 OpenJDKの歴史 • 最初に開発中のJDK 7がOSS化 (Sun時代) • 開発中のJDK 7の開発途中からOpenJDK 6が派生 • JDK 7からはコードベースが OpenJDK 7に一本化 『アプリケーション実行基盤としてのOpenJDKの評価』 https://ossipedia.ipa.go.jp/nfs/pdf_pub/1007/208/670/670.pdf 実際はその後 Oracle JDKとして リリース 9
  10. 10. #codetokyo19B3 & #ccc_l5 OpenJDKディストリビューションの歴史: 前編 • JDK 6リリース~JDK 8リリース当初 (7年3ヶ月) 3つの主要ディストリビューションで、実質的にSun/Oracle JDK一強 Sun JDK 6 2006-12 Oracle JDK 7 2011-07 Oracle JDK 8 2014-03 2009-01 Red Hat OpenJDK (OpenJDK 6 on RHEL5.3) 2013-09 Azul Zulu (Zulu 7 for Windows) Oracle buys Sun 2010-01 その後、RHEL 6/7などにも搭載 2012-06 OpenJDK 7 on RHEL6.3 2014-10 OpenJDK 8 on RHEL6.6 Oracle buys BEA 2008-04 旧BEA JRockit JDKについては その後、Project HotRockitとして Oracle JDK 7に機能マージ その後、LinuxやmacOSにも対応 10
  11. 11. #codetokyo19B3 & #ccc_l5 時代の変化 11 進化への追従 セキュリティ対応 の重要性 クラウドやコンテナ 環境の台頭
  12. 12. #codetokyo19B3 & #ccc_l5 Java 8から11で何が起こったか 『Java SE 8から11で何が起きた?一気におさらいしてみよう! /java-se-8-to-11』 https://speakerdeck.com/miyakawataku/java-se-8-to-11 by @miyakawa_taku さん (CC BY 4.0) 12
  13. 13. #codetokyo19B3 & #ccc_l5 JDKリリースモデルの変更 • LTSとnon-LTSモデル - 近年は様々な製品が採用: https://en.wikipedia.org/wiki/Long-term_support - 数年かけてのメジャーリリースではなく、半年単位の機能リリースによる継続的な変更 • 共有ランタイム(Public JRE)ではなく、カスタムJREをアプリに組込むことを推奨 - モジュール・システム (Project Jigsaw) により実現 - jlinkを使って作成し、将来的にはjpackage(旧:javapackager)を利用 • ライセンス変更 - 以前のSun/Oracle JDKのBCLライセンスではJRE単独の再配布が不可 • Oracle JDK: OTNLA for Oracle Java SE • Oracle OpenJDK: GPLv2 + Classpath Exception 『JDKの新しいリリース・モデル、および提供ライセンスについて』 https://www.oracle.com/technetwork/jp/articles/java/ja-topics/jdk-release-model-4487660-ja.html 13
  14. 14. #codetokyo19B3 & #ccc_l5 Oracle JDK/JRE 8までとOpenJDKの違い 『JDK:新しいリリースモデル解説』 https://www.slideshare.net/oracle4engineer/jdk-127825124 詳細はこちら『Oracle JDK 8にあってOpenJDKにない機能』 https://qiita.com/yamadamn/items/bb813dccaa1dc5585c9b 『How Do We Define Java? 』 https://www.azul.com/how- do-we-define-java/ 14
  15. 15. #codetokyo19B3 & #ccc_l5 Java 8と11の互換性 • Oracle JDK/JRE 11から削除された内容 - Javaプラグイン(アプレット), Java Web Start - Public JRE+自動更新 - JavaFX (OpenJFXに移管) - 32bit版バイナリ (Windows, Linux) ※Oracle JDK/JRE 9~ ➡ クライアント環境に影響 (特にレガシーな環境) • モジュール・システム(Project Jigsaw)による壁 - 内部APIに対するアクセス制限 - JAXBなどJava EE関連モジュール削除 ➡ ミドルウェア、JVM言語、ライブラリ、フレームワーク、ツールなどに影響 15
  16. 16. #codetokyo19B3 & #ccc_l5 Java 11以降はOpenJDKとOracle JDKが実質的に同一 • Oracleが商用機能をOpenJDKに寄贈 (JFR/JMC, AppCDS, ZGC) • プロプライエタリな機能(JavaプラグインやJava Web Start)を削除 • 3rd-partyライセンスのライブラリ(フォントや描画など)をOSSベースに変更 『JDK:新しいリリース モデル解説』 https://www.slideshare .net/oracle4engineer/jd k-127825124 2019年4月のOracle JDK 8 (8u211/8u212)以降にも適用 16
  17. 17. #codetokyo19B3 & #ccc_l5 OpenJDKを中心として各ディストリビューションが競う時代に ソースコード 複数のディストリビューター JDKディストリビューション• 商用機能を寄贈 • その他固有機能を削除/OSS化 17 コミュニティ・プロジェクト
  18. 18. #codetokyo19B3 & #ccc_l5 OpenJDKディストリビューションの歴史: 後編 • JDK 9リリース~実質的に初のLTSとなる11.0.3登場 (1年7ヶ月) - 既存3ベンダーを含む計7つのディストリビューターで戦国時代に突入(?) OpenJDK 9 2017-09 OpenJDK 10 2018-03 OpenJDK 12 2019-03 2018-04 BellSoft Liberica JDK 10 for Raspberry Pi Oracle JDK/JRE 8 Public Updates終了 2019-01 OpenJDK 11 (LTS) 2018-09 12.0.1 2019-04 2018-05 AdoptOpenJDK 8u172 2018-03 SapMachine 10 2019-02 Amazon Corretto 8u212 Oracle JDK/OpenJDK 8u212, 11.0.3 (LTS) 2019-04 Oracle JDK/JRE 8 Public Updates 延長発表 2017-10 ※各ディストリビューションの 正式と見られるリリース年月 18 • Red Hat OpenJDK Windows版サポート発表 • Azul ZuluFXリリース 2018-12
  19. 19. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 19
  20. 20. #codetokyo19B3 & #ccc_l5 マルチベンダーによるOpenJDKへの貢献/投資 (JDK 11GA) 『Building JDK 11 Together』 https://blogs.oracle.com/java-platform-group/building-jdk-11-together Total Issue: 2,468 1. Oracle (80%) 2. SAP (7%) 3. Red Hat (5%) 4. Google (3%) 5. 個人 (2%) 6. BellSoft (1%) 7. IBM (1%) 20
  21. 21. #codetokyo19B3 & #ccc_l5 マルチベンダーによるOpenJDKへの貢献/投資 (JDK 12GA) 『The arrival of Java 12!』 https://blogs.oracle.com/java-platform-group/the-arrival-of-java-12 Total Issue: 1,919 1. Oracle (75%) 2. Red Hat (8%) 3. Google (6%) 4. SAP (4%) 5. 個人 (3%) 6. BellSoft (1%) 7. IBM (1%) 21
  22. 22. #codetokyo19B3 & #ccc_l5 マルチベンダーによるOpenJDKへの貢献/投資 (OpenJDK 8u212) 『OpenJDK Backports Monitor』https://builds.shipilev.net/backports-monitor/ pushes-openjdk8u212.txt – [Distribution by email/name] から独自集計 Total Issue: 112 1. Red Hat (64%) 2. Amazon (18%) 3. Oracle (12%) 4. SAP (4%) 5. 個人 (2%) 6. Azul (1%) 従来もOracle JDKのPublic Updates終了後は Red HatがOpenJDKの修正を主導 ※OpenJDK 8u212であって、 Oracle JDK 8u212ではないことに注意 72 20 13 4 2 1 Issues fixed in OpenJDK 8u212 Red Hat Amazon Oracle SAP 個人 Azul 22
  23. 23. #codetokyo19B3 & #ccc_l5 マルチベンダーによるOpenJDKへの貢献/投資 (OpenJDK 11.0.3) 『OpenJDK Backports Monitor』https://builds.shipilev.net/backports-monitor/ pushes-11.0.3.txt – [Distribution by email/name] から独自集計 Total Issue: 185 1. Red Hat (45%) 2. SAP (31%) 3. Oracle (12%) 4. 個人 (4%) 5. Google (4%) 6. Amazon (3%) 7. BellSoft (1%) 8. Intel (1%) ※OpenJDK 11.0.3であって、 Oracle JDK 11.0.3ではないことに注意 83 58 23 7 7 5 1 1 Issues fixed in OpenJDK 11.0.3 Red Hat SAP Oracle 個人 Google Amazon BellSoft Intel 23
  24. 24. #codetokyo19B3 & #ccc_l5 マルチベンダーによるOpenJDKへの貢献/投資 (OpenJDK 11.0.2) 『OpenJDK Backports Monitor』https://builds.shipilev.net/backports-monitor/ pushes-11.0.2.txt – [Distribution by email/name] から独自集計 Total Issue: 92 1. Oracle (54%) 2. SAP (22%) 3. Red Hat (20%) 4. 個人 (2%) 5. Google (2%) OpenJDK 11.0.2 まではOracle主導 ※次の機能リリースが出る6ヵ月間 OpenJDK 12.0.1 はデータが見つからないが Oracle主導と想定 つまり、Oracleは最新版OpenJDKに注力し、 OpenJDK 11 LTSは他のベンダーに委任 50 20 18 2 2 Issues fixed in OpenJDK 11.0.2 Oracle SAP Red Hat 個人 Google 24
  25. 25. #codetokyo19B3 & #ccc_l5 OpenJDK 8u212/11.0.3 LTSがリリースされて見えてきたこと • 2019年4月のリリース前後から見えたこと - Red HatがOpenJDK 8u212/11.0.3以降 LTSのアップデートを主導 • 『Red HatがOpenJDK 8/11 LTSの修正を主導することへの見解や反響』 https://togetter.com/li/1342856 - (補足) Oracle JDK/Oracle OpenJDK 12にはRed Hat由来のShenandoah GCは入らず - Oracle JDK 8u212/11.0.3 と OpenJDK 8u212/11.0.3 は似て非なるもの • 『OpenJDK 11.0.3/8u212 LTS以降でのリリースノートや脆弱性の追い方』 https://togetter.com/li/1342936 • 『改元(新元号)対応に見るOracle JDKとOpenJDKの攻防あるいは協力 #令和』 https://togetter.com/li/1343228 25
  26. 26. #codetokyo19B3 & #ccc_l5 改元対応でのバックポート例 [JDK-8205432] Replace the placeholder Japanese era name - Java Bug System OpenJDKとOracle JDK 共通の修正 • 12.0.1/12.0.2 (non-LTS/最初の6ヵ月) Oracle JDK 固有の修正 • 11.0.x-oracle • 8uXXX Red Hatが主導する OpenJDKへの修正 • 11.0.x • openjdk8uXXX 最初に実装されるのは 開発中のリリース • 13 (EA版で確認可) 26
  27. 27. #codetokyo19B3 & #ccc_l5 LTSリリースはOracle JDKとRed Hat主導のOpenJDKで若干差異あり Red Hat主導の OpenJDK LTS • 11.0.3以降 • 8u212以降 Oracle JDK LTS • 11.0.3以降 • 8u211/212以降 Oracle JDK/OpenJDK LTS 共通の修正 • セキュリティ脆弱性 • その他重大な不具合 • 影響の大きい修正 最新版(non-LTS含む)は共通であり、Java Bug Systemなどを通じて状況も明らかなので分断を招く訳ではない 27
  28. 28. #codetokyo19B3 & #ccc_l5 LTSリリースでの差異を見分けるにはビルド番号に着目 (JDK 8) • ビルド番号≒該当バージョンでのソースコードのセットにつけるタグ 「$ java –version」での確認 (Java 9以降はAPIでも基本的に取得可能) • 8u212 (java.runtime.version, java.vm.version システムプロパティから基本的に確認可能) - Oracle JDK java version "1.8.0_212" Java(TM) SE Runtime Environment (build 1.8.0_212-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode) - Red Hat OpenJDK openjdk version "1.8.0_212-3-redhat" OpenJDK Runtime Environment (build 1.8.0_212-3-redhat-b04) OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode) ビルド番号: b10 ビルド番号: b04 28
  29. 29. #codetokyo19B3 & #ccc_l5 LTSリリースでの差異を見分けるにはビルド番号に着目 (JDK 11) • 11.0.3 (Runtime.Version クラスからも基本的に取得可能) - Oracle JDK java version "11.0.3" 2019-04-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3+12-LTS, mixed mode) - Red Hat OpenJDK openjdk version "11.0.3-redhat" 2019-04-16 LTS OpenJDK Runtime Environment 18.9 (build 11.0.3-redhat+7-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.3-redhat+7-LTS, mixed mode) ビルド番号: 12 ビルド番号: 7 『Java 10 で変わる Java のバージョン表記』by @YujiSoftware さん https://qiita.com/YujiSoftware/items/2c5a9117a577700ea540 29
  30. 30. #codetokyo19B3 & #ccc_l5 OpenJDKを利用したビジネスモデルの変遷例 • Oracle - (旧Sun) Java SE for Business: 長期サポート - Java SE Advanced: 長期サポートおよび商用機能を付加価値として提供するライセンスモデル - Java SE Subscription: 比較的安価に広く提供し、長期サポートするサブスクリプションモデル • Red Hat - Red Hat Subscription: RHEL利用ユーザーに長期アップデートを提供するサブスクリプションモデル - OpenJDK Subscription for Windows: WindowsユーザーにもOpenJDKのサブスクリプションを提供 JDKリリースモデルの変更は、ビジネスモデル的には他のベンダー(ディストリビューター)に 負荷分散してOpenJDKエコシステムを安定的に維持する狙いも大きいと見られる 旧BEA社のJRockit JDK機能を統合 商用機能はすべてOpenJDKに寄贈 素のOpenJDKに足りない機能は IceadTeaで一部補完 Web Start代替のIceadTea-Webは AdoptOpenJDK配下にリポジトリ移管 30 Shenandoah GCなどをOpenJDKに寄贈
  31. 31. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 31
  32. 32. #codetokyo19B3 & #ccc_l5 その前に: OpenJDK Projectの動向把握用の基礎情報源 種類・名称 URL 用途・備考 Webサイト http://openjdk.java.net/ OpenJDK開発者用のため少し構成が複雑 JDK Enhancement Proposal (JEP) http://openjdk.java.net/jeps/0 JDKバージョンごとに入る機能確認 2011年に策定されJSRを牽引 JDK Project http://openjdk.java.net/projects/jdk/ JDKリリース時期と含まれるJEP OCTLA Signatories List https://openjdk.java.net/groups/conf ormance/JckAccess/jck-access.html Javaの互換性を証明する技術互換キット (TCK/JCK)にアクセスできる署名者一覧 Twitter @OpenJDK メーリングリスト (ML) http://mail.openjdk.java.net/ 興味があるトピックを参照・購読・投稿 Java Bug System (JBS) https://bugs.openjdk.java.net/ JIRAによるIssueのトラッキング (Bugだけ でなく、機能拡張や互換性確認なども含む) ソースコード管理 http://hg.openjdk.java.net/ Mercurialにて管理 Project SkaraにてGitHubへの移行も検証中 https://github.com/openjdk 『JSRとJEPとJBSの見方や調べ方について』 https://www.slideshare.net/AyaEbata/jsrjepjbs by Aya Ebataさん 32
  33. 33. #codetokyo19B3 & #ccc_l5 Oracle JDK 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント Java SE API & ドキュメント (Oracleだけではなく他のJDKを使う場合も必要) リリースノート JDK Release Notes 脆弱性関連 Critical Patch Updates and Security Alerts ライフサイクル Oracle Java SE サポート・ロードマップ 動作環境 Java SE Subscription ドキュメント - システム要件 動向把握 Twitter @Java (OracleだけではなくJavaの各種情報源) Blog Oracle Java Platform Group, Product Management Blog ダウンロード Java SE - Downloads | Oracle Technology Network *要アカウント認証 (java.comのJREは現状認証不要) ライセンス Oracle Binary Code License (BCL for Java SE): ~JDK 10, ~8u201/202 Oracle Technology Network License Agreement (OTNLA) for Oracle Java SE: JDK 11~, 8u211/212~ * 組み込み用途は元々開発無償、配備はロイヤリティ必要 • 従来からのメインディストリビューターであり、OpenJDKへの最大の貢献者 • エンドユーザーへの慣れ・安心感があるが、ライセンス変更での混乱あり • 日本語を含めて情報量が最も豊富 33
  34. 34. #codetokyo19B3 & #ccc_l5 Oracle OpenJDK 一般向け情報 種類・名称 参照先 導入・運用 Oracle JDKと同じだが、ライフサイクルは半年のみ (次期機能リリースまで) 動向把握 Oracle JDKと同じだが、ダウンロードページからも各種リンクあり ダウンロード JDK Builds from Oracle: https://jdk.java.net/ (JDK 9~) * 認証不要 ライセンス GPLv2 + Classpath Exception (GNU General Public License, version 2, with the Classpath Exception) [参考] OpenJDKソースコードと同じ: https://openjdk.java.net/legal/gplv2+ce.html • 汎用プラットフォームで最新版へ追従 (JDK8は未対応) • アーリーアクセス(EA)版の評価・検証にも利用 • インストーラなし (tar.gz/zip) 34
  35. 35. #codetokyo19B3 & #ccc_l5 Red Hat OpenJDK 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント Product Documentation for OpenJDK * Windows用で現状英語のみ、JBossユーザ向けにRHELでのインストールガイドは別途ありリリースノート ライフサイクル OpenJDK Life Cycle and Support Policy * 日本語翻訳は https://access.redhat.com/ja/articles/1457743動作環境 動向把握 Twitter @rhdevelopers (他、個人アカウントも適宜確認) Blog https://developers.redhat.com/blog/category/java/ ダウンロード Red Hat Developer | OpenJDK Download https://developers.redhat.com/products/openjdk/download/ (開発者用Windows版で要アカウント認証) ライセンス GPLv2 + Classpath Exception • Oracleに次ぐOpenJDKの貢献者であり、以前からPublic Updates終了後に主導 • RHEL/CentOSで豊富な実績を持ち、従来はIceadTeaで機能拡張 • 今後はWindows版OpenJDKも正式サポート (例: Icead-Tea Web) 35
  36. 36. #codetokyo19B3 & #ccc_l5 Azul Zulu 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント Zulu user documentation リリースノート Zulu Community Release Notes ライフサイクル Azul Product Support Lifecycle 動作環境 Tested and Validated Platforms 動向把握 Twitter @AzulSystems Blog https://www.azul.com/blog/ GitHub https://github.com/zulu-openjdk (Dockerfile用) ダウンロード https://www.azul.com/downloads/zulu/ *認証不要 ライセンス GPLv2 + Classpath Exception • JDK/JVM専業ベンダーで、異なるJVMであるAzul Zingを持つ • Microsoft Azureで以前から利用され、商用のZulu Enterprise相当を提供 • 以前は素のOpenJDKビルドに近かったが、最近は機能拡張やDocker対応を重視 36
  37. 37. #codetokyo19B3 & #ccc_l5 SapMachine 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント https://github.com/SAP/SapMachine/wiki リリースノート (見当たらず) * 基本はOracle OpenJDKやAdoptOpenJDKと同じはず ライフサイクル https://github.com/SAP/SapMachine/wiki/Security-Updates,-Maintenance- and-Support 動作環境 https://github.com/SAP/SapMachine/wiki/Supported-platforms 動向把握 Twitter @SweetSapMachine GitHub https://github.com/SAP/SapMachine ダウンロード https://sap.github.io/SapMachine/ *認証不要(GitHubからダウンロード) ライセンス GPLv2 + Classpath Exception • アーリーアクセス(EA)版を含めた最新リリースへの追従 (JDK8は未対応) • サーバーサイドで実行するうえでの診断機能の強化 • 元々モニタリングに強い SAP JVM を別に持つ 37
  38. 38. #codetokyo19B3 & #ccc_l5 BellSoft Liberica JDK 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント 各リリースのダウンロードページから [installation guide]参照 リリースノート 各リリースのダウンロードページから [Release Notes]参照 * 修正内容はOracle JDKのリリースノートにリンク ライフサイクル 8/11 LTSは最低2026年まで *非公式な確認であり、サイト準備中とのこと 動作環境 リリースノート参照 動向把握 Twitter @bellsoftware Blog https://www.bell-sw.com/index.html GitHub https://github.com/bell-sw/Liberica ダウンロード https://www.bell-sw.com/ *認証不要 ライセンス GPLv2 + Classpath Exception • AdoptOpenJDKに次ぎ、広範なプラットフォームに対応 • JavaFX(OpenJFX)との統合に強み 『AdoptOpenJDKにOpenJFXをバンドルして欲しい要望に対してのまとめ』 • JetBrainsとの戦略的提携、Oracleとの提携?(ビルド番号などから推測) 38
  39. 39. #codetokyo19B3 & #ccc_l5 AdoptOpenJDK with HotSpot 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント https://adoptopenjdk.net/installation.html リリースノート https://adoptopenjdk.net/release_notes.html ライフサイクル https://adoptopenjdk.net/support.html 動作環境 https://adoptopenjdk.net/supported_platforms.html 動向把握 Twitter @adoptopenjdk Blog https://blog.adoptopenjdk.net/ GitHub https://github.com/AdoptOpenJDK/openjdk-build Slack https://adoptopenjdk.net/slack ダウンロード https://adoptopenjdk.net/ *認証不要(GitHubからダウンロード) ライセンス GPLv2 + Classpath Exception • ビルドファームによる広範なプラットフォームに対応 • コミュニティに最も近い存在で、スポンサーとも協力関係 (Platinum Sponsors: IBM, Microsoft Azure, Azul Systems, etc.) • TCK/JCKを通せていないが、独自のテストスイートで対応 39
  40. 40. #codetokyo19B3 & #ccc_l5 Amazon Corretto 一般向け情報 種類・名称 参照先 導入・運用 ドキュメント Corretto 8 User Guide / Corretto 11 User Guide リリースノート Change Log for Amazon Corretto 8 Change Log for Amazon Corretto 11 ライフサイクル https://aws.amazon.com/corretto/faqs/#support 動作環境 https://aws.amazon.com/corretto/faqs/#Using_Amazon_Corretto 動向把握 Twitter @AWSOpen Blog https://aws.amazon.com/blogs/opensource/category/devops/aws-java- development/ GitHub https://github.com/corretto/ ダウンロード https://aws.amazon.com/corretto/ *認証不要、英語に切り替えないと古いモジュールが見える場合がある ライセンス GPLv2 + Classpath Exception • AWSおよびJava Fatherの強力なネームバリュー • ドキュメントに力を入れている (日本語翻訳などもあるが遅れる) • 独自バックポートありで、ダウンストリーム(LTS)に注力 40
  41. 41. #codetokyo19B3 & #ccc_l5 その他注目しておきたいJDKディストリビューション • OpenJDK with HotSpot JVMベース - Linux distroバンドル : 各Linuxディストリビューションで対応に差異あり - 国内ベンダーJDK : 富士通、日立などの各製品でサポート - Alibaba Dragonwell : 現状LinuxのJDK8専用で、JWarmupや独自のJFRバックポートあり - ojdkbuild : Red Hat OpenJDK Windows版のベースでFedora的扱い • OpenJDK with NOT HotSpot JVM - AdoptOpenJDK with OpenJ9 : フットプリントのよさをうたうEclipse OpenJ9ベース - IBM SDK Java Technology Edition : 最近はOpenJ9ベース+IBM独自機能 - Azul Zing : Linux x64に特化し、C4 GCやFalcon JITで高速化をうたう - GraalVM : Oracleが中心に開発する多言語対応VM (JITにGraal採用でネイティブイメージ対応) 41 直接関係ないけど、こちらも適宜参照『VMの歩む道。 Dalvik、ART、そしてJava VM』 by @yy_yank さん
  42. 42. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 42
  43. 43. #codetokyo19B3 & #ccc_l5 Oracle JDK陣営とRed Hat主導のOpenJDK LTS陣営 (イメージ) 大半の修正は共通しており、Oracle JDKとOpenJDK LTSを近づけるよう努力はされている 43
  44. 44. #codetokyo19B3 & #ccc_l5 JVMエコシステムアンケート (海外) https://snyk.io/blog/jvm-ecosystem-report-2018/ (2018年10月レポート) Which Java SE version do you use in production for your main application? Which Java vendor’s JDK do you use in production for your main applications? ※実際には2018年9月より前のアンケートと想定される 44
  45. 45. #codetokyo19B3 & #ccc_l5 JVM言語利用者向け簡易アンケート (日本) 『 (2019年4月時点) JVM言語を使う方がどのJDK/JVMを使うか?アンケートと考察まとめ』 https://togetter.com/li/1340853 Q1. 商用環境でScala, Kotlin, Clojure, Groovy などのJVM言語を使う方はJDK/JREは何を利用 しますか? Q2. 商用環境でJVM言語を使う方はJDK/JVM バージョンとして何をメインで使いますか? ? 45
  46. 46. #codetokyo19B3 & #ccc_l5 判断軸 • サポート - アップデート提供期間 - 商用サポートの有無 - 関連製品との動作保証 • 使いやすさ - インストーラ (特にWindowsクライアント) - 開発環境 - コンテナ対応 • どこで運用するか - サーバー (クラウド, オンプレミス) - クライアント - コンテナ - 組み込み 46
  47. 47. #codetokyo19B3 & #ccc_l5 [参考] 判断軸によるディストリビューションの比較(例) ディストリビューション 8 (LTS) EOL 11 (LTS) EOL 12 EOL (non-LTS) 商用 サポート 関連製品の 動作保証 備考 Oracle JDK 2025-03 2026-09 2019-09 日本語可 ◎→? 既存では強いが今後不明 Oracle OpenJDK - 2019-03 2019-09 - △ 追従できる製品は限定 Red Hat OpenJDK 2023-06 2024-10 - 日本語可 △→? Windows対応で増える? Azul Zulu 2026-03 2027-09 2019-09 英語 ○ 奇数リリースで商用はMTS SapMachine - 2022-09 2019-09 - ? SAP製品内に限定? BellSoft Liberica JDK 2026-12 2026-12 2019-09 英語 ? ライフタイムは非公式に確認 AdoptOpenJDK 2023-09 2022-09 2019-09 英語 △ 利用増加中だがTCKが難点 Amazon Corretto 2023-06 2024-08 - - △ 利用増加中? 最低期間なので、今後延長 される可能性は大いにありサポート • Oracle JDK/Liberica JDK以外は、基本的にRed Hat主導のOpenJDK LTSに依存 • Azul Zuluは、コミュニティ版でのアップデート提供期間の保証はなし • 総じて以前からのディストリビューションが強そうだが、将来は不明 47
  48. 48. #codetokyo19B3 & #ccc_l5 [参考] 判断軸によるディストリビューションの比較(例) ディストリビューション インストーラ sdkman & chocolatey コンテナ (Docker) 備考 8 11 Oracle JDK ◎ ○ - △ Docker Storeのイメージは古い (Oracle Container RegistryもServer JRE 8 のみ) Oracle OpenJDK - - ◎ ○ LTSはないが最新版を利用可能 Red Hat OpenJDK ○ ○ - △ Red Hat Container Catalogで利用 Azul Zulu △ ◎ ◎ ◎ インストーラ・Dockerとも各種環境に注力 SapMachine - ○ ◎ ○ DockerのベースOSはUbuntuのみ BellSoft Liberica JDK ○ ◎ ○ ○ 現状AlpineのDockerイメージは中途半端 AdoptOpenJDK △ ○ ○ ◎ 一通り利用可能 Amazon Corretto ○ ◎ ○ ○ DockerのベースOSはAmazon Linux2のみ (Alpine対応は保留されている) 使いやすさ • JDK 8のインストーラは、既存のWindow用Oracle JRE 8との互換性を基準に評価 • JDK 11のインストーラは、多くのプラットフォームに対応しているかに注目 48
  49. 49. #codetokyo19B3 & #ccc_l5 [参考] 判断軸によるディストリビューションの比較(例) ディストリビューション クラウド オンプレミス クライアント コンテナ 組み込み 備考 Oracle JDK Oracle ○ ◎ △ ○ クライアント用のJava Web Start (アプレットは非推奨) Oracle OpenJDK (any) ○ △ ○ - Red Hat OpenJDK OpenShift ○ ○ △ - IceadTea-Web for Windows 正式サポート予定 Azul Zulu Azure ○ △ ◎ ○ ZuluFXコミュニティ版はイン ストーラなし SapMachine (any) ○ △ ○ - BellSoft Liberica JDK (any) ○ ○ ○ ○ JavaFX(OpenJFX)バンドル AdoptOpenJDK (any) ○ △ ◎ ○ Amazon Corretto AWS ○ △ ○ - どこで運用するか • オンプレミスのサーバ環境は、特にどれでも問題なし (対応プラットフォーム次第) • 既存クライアント環境との互換性を重視する場合は、Oracle JRE 8が妥当か 49
  50. 50. #codetokyo19B3 & #ccc_l5 アジェンダ 1. OpenJDKディストリビューションが出てきた背景 2. 誰がOpenJDKを作っているか 3. 各OpenJDKディストリビューションの特徴 4. OpenJDKディストリビューションの選び方 5. OpenJDKの支え方 50
  51. 51. #codetokyo19B3 & #ccc_l5 JDKディストリビューションにどう接していくか • 開発者 - 複数のJDKの特徴を把握し、必要に応じて使い分ける • 基本的には運用環境と合わせる • 自社製品や自社サービスでどのディストリビューションを利用するかは要検討 - 新しい機能リリース(できればEA版)やディストリビューションを試しておく • 必要時はBug/Issue報告やPull Requestなどして改善に協力 - 例: [JDK-8218287] jshell tool: input behavior unstable after 12-ea+24 on Windows - 例: Easy identification x86/x64 in Apps & Features of Windows · Issue #37 · corretto/corretto-8 • 構築・運用担当者 - 各製品のライフサイクルやOpenJDKのリリーススケジュールを把握する - 動作保証に適したJDKを利用する (民法改正の影響なども考慮) - アプリケーションに応じて適切なプラットフォームを検討する 51
  52. 52. #codetokyo19B3 & #ccc_l5 [参考] JDKディストリビューションの他の選び方(例) • 例えば、好きなベンダー(ディストリビューター)のJDKを利用する e.g. OpenJDK本体に貢献しているベンダーを応援したい - Oracle JDK/Oracle OpenJDK - Red Hat OpenJDK - SapMachine - BellSoft Liberica JDK - IBM - Amazon Corretto • ディストリビューションの応援の仕方の例 - まずは使ってみる - 意見を伝えたり、フィードバックして改善してみる - Oracle Java SE Desktop Subscriptionを個人購入してみる 52
  53. 53. #codetokyo19B3 & #ccc_l5 コミュニティへの参加 • 勉強会、セミナーへの参加 - 各現場での啓蒙 - Twitterでの感想やブログ記事などでの情報発信 • OpenJDKコミュニティへの参加 - 気になるMLやBug/Issueをウォッチしてみる - Bug Reportを上げたり、MLで報告してみる • JDKディストリビューションへの参加 - まずは使ってみる - Twitter/GitHubでウォッチしてみる - Twitter/Slackで聞いてみたり、GitHubでIssueをあげてみる - Pull Requestしてみる https://www.slideshare.net /yusuke/java-98886920 by @yusuke_arclamp さん 53
  54. 54. #codetokyo19B3 & #ccc_l5 Java/JVMエコシステムはこれまでと変わらず重要 • Javaはこれからますます進化を続ける - 半年単位での機能リリース - Project Panama, Valhalla, Loom - Quarkus, MicronautなどGraalVMを利用したフレームワーク • エコシステムは強力で重要不可欠 - 『有償化やEOLに関して誤解があるけど、様々なクラウドやサービス系企業で Java/JVMが使われ続けてるよって話』https://togetter.com/li/1342273 - 『SunからOracleに変わって10年経ったけど第三者から見てもJavaは心配ない よというポエム』https://togetter.com/li/1342209 54
  55. 55. #codetokyo19B3 & #ccc_l5 まとめ • 最適なOpenJDKディストリビューションは環境・状況に応じて異なる - 時代の変化にどれだけ追従していくか • セキュリティやライフサイクルの考慮 • サーバーサイドでの可搬性の確保や、クライアントでのカスタムJREの組み込み - サポートや動作保証をどう捉えるか • 利用するミドルウェアやライブラリ、JVM言語など • 有償サポートの利用有無や、法改正の影響を考慮 - どこで利用するか • 開発環境と運用環境のJDK種類・バージョンの統一 • クラウド、オンプレミス、クライアント、コンテナ、組み込み • - Java/JVMコミュニティやエコシステムの重要性 - Oracle JDK/JRE一強時代ではなく、個々に判断・選択する必要性 - 求められるのはディストリビューション利用者側の意識の変化 - OpenJDKなどのOSSは皆で参加し、育てていくもの 55
  56. 56. #codetokyo19B3 & #ccc_l5 ご清聴ありがとうございました 本セッションや資料は、Java関連コミュニティの方々や関係者各位も含め、 多くの皆様のご協力によって生まれたものです。改めて感謝を申し上げます。 56

×