NOBTAの気ままにITブログ

Azure全般 / SQL Serverに関する情報を発信していきます。

Microsoft Build of OpenJDK について (Azul Zulu for Azure リタイアに伴う移行パス)


スポンサーリンク

2021年5月末に Microsoft Build of OpenJDK が GA (Generally available) となりました。今回は、Microsoft Build of OpenJDK に関する情報 および、今まで Azure 環境上の Java 開発において無償で使用可能であった Aulu Zulu for Azure リタイア に伴い、その他 Java ランタイムへの移行パスに関する内容を、自分の整理も兼ねて、まとめてみようと思います。

 

 

Microsoft Build of OpenJDK について

Microsoft Build of OpenJDK 概要

Microsoft Build of OpenJDK は、Microsoft 社によって公開された無償 かつ 長期サポート (LTS) が付いた新しいディストリビューションとなり、以下のような特徴があります。

  • OpenJDK ベース (HotSpot)
  • ライセンス : GPLv2+CPE (GNU General Public License version 2 with Classpath Exception)
  • Azure 環境、オンプレミス、Azure 環境以外のクラウド環境で利用可能
  • 無償
  • 互換性 : Oracle Java Technology Compatibility Kit (TCK) テストをパス済み, Eclipse Adoptiumの ビルド/テスト スクリプト (AQAvit project) 利用
  • 長期サポート (LTS) : Java 11 および Java 17 (以後 Java 23, Java 29) ※ Java 16 はサポート対象外
  • 独自拡張 (Microsoft-specific enhancements)

   

独自拡張の詳細については、以下の URL を確認

 

Microsoft Build of OpenJDK 

 

Microsoft Build of OpenJDK 対応OS
  • Windows (x64)
  • Linux (x64, AArch64(ARM))
  • macOS (x64)

※ デスクトップ OS, サーバー向け OS の何れでも利用可能。

 

Microsoft Build of OpenJDK サポート期間

長期サポート (LTS : Long Term Support) は、Java 11, Java 17  および 今後 Java 23, Java 29 が対象になるようです。

f:id:nobtak:20210911005255p:plain

 

Microsoft Build of OpenJDK のサポート ロードマップの詳細については、以下の URL を参照

 

Microsoft Build of OpenJDK 商用(技術)サポート

Azure サポートプランを購入している場合、Microsoft Build of OpenJDK に関するお問い合わせを Azure ポータルより実施することができます。
なお、Microsoft Build of OpenJDK は、Azure 環境、オンプレミス、Azure 環境以外のクラウド環境で利用可能であり、パッチ提供も無償で行われるようですが、商用(技術)サポートは、Azure 環境, Azure Stack 環境, Azure Arc 環境 での使用に限定されるもようです。
そのため、商用環境で使用する場合は、Azure 環境, Azure Stack 環境, Azure Arc 環境 の何れかの環境で使用することが前提になるかもしれません。

 

f:id:nobtak:20210911010751p:plain

 

Azul Zulu for Azure からの移行パスについて

Azul Zulu for Azure 概要

Azul Zulu for Azure は、Microsoft 社とAzul Systems 社との戦略的なパートナーシップにより、Java SE との完全な互換性を備え、完全準拠した商用ビルド (Azul Systems Zulu Enterprise) を Azure環境限定で利用可能にした OpenJDK であり、以下の特徴があります。

 

  • 2022年1月1日 サポート提供終了、2022年7月1日 バイナリ提供終了 (予定)
  • OpenJDK ベース
  • Azure環境(Azure, Azure Stack, Azure Arc)でのみ利用可能
  • Microsoftによる商用(技術)サポート 有
  • 長期サポート (LTS) : Java 8 および Java 11
  • 互換性 :  Java SE との完全な互換性

 

Azul Zulu for Azure 提供タイムライン

f:id:nobtak:20210911011418p:plain

 

Azul Zulu for Azure の詳細な提供タイムラインについては、以下の URL を参照

 

Azul Zulu for Azure からの移行パス

Azure 環境 (Azure 仮想マシン, Azure Kubernetes Services (AKS) : コンテナ イメージ など ) で使用されている Java ランタイムの移行パス

 

f:id:nobtak:20210911012105p:plain

 

Azul Zulu for Azure から Microsoft Build of OpenJDK への移行 (注意点)

Microsoft Build of OpenJDK には Java 8 用のバイナリが用意されておらず、Azul Zulu for Azure (Java 8) を利用している場合、Microsoft Build of OpenJDK (Java 11 以降) へ移行する必要があります。

しかしながら、Java 8 と Java 11 では、以下のような非互換性項目が存在し、ソースコードの修正が必要となる可能性があります。

非互換性項目の修正箇所が多くなるほど、単体テスト、結合テストの工数が増えることを考慮したうえで、移行先のパスを検討すると良いかと思います。

 

  • 非互換性項目 (一部抜粋)
  1.  一部の内部APIが隠蔽され、使用できないように変更
  2.  拡張機能メカニズムが削除され、${INSTANCE_ROOT}/lib/ext に配置されたライブラリはロードされないように変更

  3.  rt.jar および tools.jar は、特殊なファイルとして格納されるように変更され、${JAVA_HOME}/lib 配下から削除 
  4.  Java.io.FilePermission のファイルパスを正規化しないように変更 (既定の設定を後から変更可能)

 

Java 8 から Java 11 への移行に関して、以下の URL が参考になるかもしれません。

 

参考 URL

Microsoft Build of OpenJDK | Microsoft Docs

Support roadmap for the Microsoft Build of OpenJDK | Microsoft Docs

Frequently asked questions about the Microsoft Build of OpenJDK | Microsoft Docs

Download the Microsoft Build of OpenJDK | Microsoft Docs

Container images for the Microsoft Build of OpenJDK | Microsoft Docs

 

まとめ

今回は、Microsoft Build of OpenJDK に関する情報 および、今まで Azure 環境上の Java 開発において無償で使用可能であった Aulu Zulu for Azure リタイア に伴い、その他 Java ランタイムへの移行パスに関する内容についてまとめてみました。

Azlu Zulu for Azure で Java 8 を使用している場合、Microsoft Build of OpenJDK への移行に伴い、Java 11 以降に移行する必要があります。

そのため、Microsoft Build of OpenJDK 以外の Java 8 に対応したディストリビューションを選択することが最もコストが掛からない、安全な移行パスになると思いますが、今後 Azure 環境で Java 開発を実施する際は、 Microsoft Build of OpenJDK が有力な選択肢になるのではないかと思います。