OpenJDK と Oracle JDK

URL をコピー

Java はあらゆる場所で使用されています。当初は Sun Microsystems からリリースされ、その後 Oracle に買収された Java は、どこででも実行されるように作成された、プログラミング言語かつコンピューティング・プラットフォームです。 

Java Platform, Standard Edition Development Kit (JDK) は、Java プログラミング言語を使用するアプリケーションを構築するための開発環境で、Java プログラミング言語で作成されたプログラムの開発およびテスト、Java プラットフォーム上での実行に有益なツールが含まれています。

Red Hat® の OpenJDK ビルドは、無償で利用できる、Java Platform, Standard Edition (Java SE) のオープンソース実装で、2006 年、Sun Microsystems が Java 実装を OpenJDK プロジェクトでオープンソース化した取り組みの成果です。これは Oracle JDK に代わる選択肢であり、組織は移行作業にほとんど、あるいはまったく労力を割くことなく、従来のライセンスに煩わされずに、Java 環境を長期的に安定化および標準化できるようになります。 

OpenJDK の詳細

Oracle JDK と OpenJDK はそれぞれ、Java 開発キットと呼ばれるソフトウェアおよび仕様のセットです。Java 11 以降、Oracle JDK と OpenJDK は Flight Recorder および Mission Control などの機能を含むという点で同じビルドです。基本的に、Oracle JDK と OpenJDK にはコードの変更はほとんどない、またはまったくないので、機能面では非常によく似ています。 

OpenJDK と Oracle JDK の最大の違いは、OpenJDK は Oracle、Red Hat、コミュニティが維持するオープンソース・プロジェクトであるのに対して、Oracle JDK はクローズドソースで、有料ライセンスが必要で、Oracle が維持しているという点です。この違いがあるため、クローズドソースであるかライセンスで制限されていることから、OpenJDK では利用できない機能が少しあります。

代替選択肢としての OpenJDK について

Red Hat のリソース

OpenJDK はオープンソースの開発キットであるため、Oracle JDK とはサポートやコストの面で違いが生じます。OpenJDK は以下の理由で、Oracle JDK の代わりに使用できるオープンソースの選択肢です。

  • コスト:エンタープライズ向けサポートが必要なユーザーに対して: Red Hat の OpenJDK ビルドは Red Hat Enterprise Linux® (RHEL)Red Hat OpenShift®Red Hat Application Services のサブスクリプションに無償で付属しています。
  • 統合:OpenJDK で標準化すると、クラウド向け Java サポートを統合できます (アプリケーションサーバーまたはランタイム、JDK、Kubernetes)。

クラウドネイティブのモダナイゼーション・プロセスの一環として、OpenJDK は継続的な開発、パフォーマンスの向上、セキュリティのアップデート、デプロイメントの柔軟性を提供し、アプリケーションサーバーをコンテナKubernetes で実行するために最適です。

OpenJDK のデータシートをダウンロード

OpenJDK と Oracle JDK では、Java SE 仕様に準拠したコードをどのように実行するかという点では、両方の JDK に違いはありません。機能の違いがほとんどないことから、どちらのほうがメリットが多く、移行を進めるべきかの判断は、ユーザーに委ねられます。

コストから Java サポートの必要性まで、どちらの JDK を選ぶべきかの判断材料は多数あります。大勢の Java エキスパートが、できる限り速やかに OpenJDK に移行することをユーザーに推奨しており、健全な移行戦略は入念なインベントリーとリスク分析から始めるべきだとしています。大規模組織では、サポートと安定性の必要性を評価する必要もあります。 

その他の検討事項は、スタックが Linux ベースかどうかです。Linux ベースの場合、OpenJDK に移行すると有益でしょう。OpenJDK は Linux Ubuntu、Fedora、RHEL、OpenSUSE ディストリビューションのデフォルトの Java ディストリビューションだからです。

JDK を評価する際の注意事項が 1 つあります。Java 8 など、古いバージョンの OracleJDK から移行する場合、アプリケーションが内部の指定されていない API を使用していると、OpenJDK コードベースに含まれない場合があります。

さらに、Oracle による最新の価格変更を受けて、OpenJDK への変更を検討してみるのもよいでしょう。 

Java アプリケーションの JDK をモダナイズするためにできること

Red Hat とそのシステム・インテグレーション・パートナーは、OpenJDK への移行の成功を促進する専門知識を持っています。推奨されるアプローチは 5 つのステップを踏みます。

推奨されるアプローチ:

  1. アプリケーションと JVM/バージョンのイベントリーを作成する:既存の使用状況、Oracle のライセンス、バージョン、セキュリティの問題、依存関係、グループについて理解します。
  2. 潜在的なコード変更またはリスクについてアプリケーションを分析する:初期移行計画において、リスクが発生したり変更が必要となる領域がないか、確認します。
  3. 運用上の処理を準備する (デプロイメントおよびアップデート):JDK をデプロイして管理するための運用プロセスを準備します。
  4. 一連のアプリケーションでパイロット移行を実行する:アプリケションの代表的なセットを実行し、プロセスを一通り実行し (あれば変更、テスト、デプロイ)、アップデートした移行計画を作成します。
  5. 反復して広範囲で移行する:OpenJDK 移行ファクトリーを使用します。

Oracle に次いで 2 番目に大きな JDK コントリビューターである Red Hat は、必要なサポートとサービスを提供して、アプリケーションの構築、管理、拡張を支援できます。 

Red Hat は OpenJDK 8u および 11u バージョンのスチュワードシップの役割を持ち、コードの変更がほとんどない、あるいはまったくなく、Java コンプライアンスとマルチプラットフォーム・サポートを備えた OpenJDK は、最適な代替選択肢となります。 

Red Hat の OpenJDK ビルドは、RHELOpenShiftミドルウェアの各サブスクリプションにフルサポート付き製品として、無償で付属しています。さらに、RHEL、OpenShift、Application Services、Ansible などの Red Hat のアプリケーション・プラットフォームは、ハイブリッドクラウド・アーキテクチャ向けの最適な JDKとなります。Red Hat では Eclipse Temurin 向けのサポートを追加して、Java アプリケーションのサポートも拡張しています。

最後に、Red Hat のアプリケーション向け移行ツールキットは、Red Hat OpenShift を使用するためにアプリケーションの大規模な評価、優先順位付け、モダナイズを支援します。JDK 移行キットでサポートするほか、Java アプリケーション全体としての分析とモダナイズにも役立ちます。

OpenJDK を使い始める

ハブ

Red Hat 公式ブログ

Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

MicroShift とは?をわかりやすく解説

MicroShift は、エッジデバイスで Red Hat OpenShift を使用できるよう構築された軽量で小さいサイズの Kubernetes コンテナ・オーケストレーション・ソリューションです。

Ansible と Chef の違いについて知っておくべきこと | Red Hat

Ansible と Chef はオープンソースの IT 自動化ツール。アーキテクチャ(エージェントベースかエージェントレス)、言語(Python ベースの YAML か Ruby)等の違いがあります。

Ansible の Terraform、Puppet、Chef、Salt との違いとは?

Ansible、Terraform、Puppet、Chef、Salt はどれも自動化ツールですが、Ansible はエンドツーエンドの自動化向けに、柔軟で安定したセキュリティ重視の基盤を提供します。

オープンソースリソース

関連記事