JJUGナイトセミナー「OpenJDK祭り」に行ってきた #jjug

JJUGナイトセミナー「OpenJDK祭り」 に行ってきました。簡単に所感をまとめます。

jjug.doorkeeper.jp

所感

各 OpenJDK ディストリビューションの話でした。IBMJIT as a Service が気になります。JIT コンパイルするサーバーを複数の JVM が共有する感じなんだろうか。もしくは、JVM 同士がプロファイル情報を共有したりしたら面白そうだけど、それって CDS みたいなもんなんですかね、よく知らないけど。

それから Spring とか Cloud Foundry を商用で使うなら Pivotal Spring Runtime はありだろうなと思われます。

ここまで来たら Amazon Corretto とか BellSoft Liberica JDK の話も聴いてみたい。

あと、令和 Duke Tシャツ欲しかった...。1回戦でじゃんけん負けてもうた。

以下、メモから抜粋。

今、あらためてOracle提供のJDKを語る

www.slideshare.net

  • 2018のレポートでは8割くらいは JDK 8
  • Java 12
    • 新機能8つ
    • 令和対応
  • リリースドキュメントは要チェック
  • Oracle JDK のみ LTS 版あり
    • 各リリースに対する8年間の四半期リリース
  • Java SE 8 の Extended サポートは2025/03まで
  • フィーチャーリリース (6ヶ月ごとのリリース)
  • アップデートリリースは四半期に1度 (セキュリティパッチ)
  • Oracle Java SE Subscription
    • デスクトップ (PC/ユーザー)
    • サーバー (Processor)
    • Oracle IaaS には無償で付いてくる

Red HatのOpenJDK

www.slideshare.net

  • 古い JDKリポジトリRed Hat が引き継いでメンテしている (Backport)
  • REHL/JBoss にバンドル
  • 5年以上のサポート
  • 日本語サポートあり☆
  • OpenJDK 11 は Oracle JDK 11 GA の1ヶ月後に REHL にバンドル
  • IcedTea プロジェクト
    • OpenJDK のビルド/実行を実現
  • Shenandoah GC
  • 開発用途では Windows 版のみ
  • Oracle JDK との差異
  • 利用には要サブスクリプション
    • OSやミドルウェア、OpenShiftには含まれる
    • サーバー向け/デスクトップ向け
  • バックポートのリクエストもサポート☆
  • Oracle脆弱性情報を共有☆
    • 1日〜1ヶ月程度でリリース
    • 重大度が低いと追従に時間がかかるかも
  • コンテナで Java イメージを配布 (要サブスクリプション)
  • サポートは REHL のみ
  • ホットフィックスは最新のマイナーバージョンのみ☆
    • バックポートのリクエストは受け付けている
  • コンテナイメージはサブスクリプション契約なしで使える☆

Azul SystemsのOpenJDK製品技術概要

www.slideshare.net

  • Zulu Enterprise
  • Zulu Embedded
    • 組み込み向け
    • コンパクトプロファイルバイナリ提供
      • ヘッドフル/ヘッドレス
  • Zing
    • Falcon JIT コンパイラ
    • C4 GC
      • 継続的コンパクション
    • Ready Now
      • プロファイル情報を永続化/リロード
      • 立ち上がりの遅さを解消
    • 19.07 からカーネルモジュールなしで動作可能に
  • 開発拠点はロシア
  • Web Start 対応中☆

Open J9 + OpenJDK

www.slideshare.net

  • OpenJ9
    • IBM J9 VM (独自VM)
    • HotSpot VM と同じ Java プログラムが動く
    • -X-XX 系のオプションは一部利用不可
    • GCは独自実装
  • OpenJ9
    • Core 部分を Eclipse OMR として公開
  • HotSpot より高いパフォーマンス (短い時間でピーク性能に)
  • Java Dump (Javacore)
  • Dump エージェント (-Xdump)
    • クラス名やメソッドメソッドでフィルタリング
    • いろいろな条件でスタックトーレス出力したり外部コマンド実行したり
  • JIT as a Service☆
  • クラスライブラリは OpenJDK
    • VM のみ OpenJ9 に入れ替え
  • マルチプラットフォーム / Docker
  • AdoptOpenJDK / Docker Hub からダウンロード
  • パッチは AdoptOpenJDK 経由で提供

Pivotal Spring Runtime

docs.google.com

  • JDK サポート + アプリ実行環境サポート
    • Spring + Pivotal tc Server/Tomcat + OpenJDK/AdoptOpenJDK
  • OpenJDK ビルドを Buildpack として提供
    • cf push すると Java アプリを検知して OpenJDK をアタッチする
  • Cloud Native Buildpack☆
    • Buildpack API v3
    • コンテナイメージを生成
  • Pivotal Spring Runtime☆
    • Pod 課金モデル / コア課金モデル