tl;dr
重要なセキュリティ パッチの最も迅速なリリースが必要な場合は、Azul システム、BellSoft、Oracle、Pivotal、Red Hat (IBM) などのベンダーのサポート プランに料金を支払います。
Java リリースの世界の現状をよりよく理解するには、Java Is Still Freeというドキュメントをよく読んでください。独立した Java リーダーと専門家のJava Championsコミュニティによって書かれました。
詳細
Oracle からの JDK ライセンス契約の変更により、企業は OpenJDK に切り替えています。
ここで明確にするために、オラクルがOracle JDK製品の条件を変更して、本番環境で使用する場合に料金を要求することについて言及している可能性があります. その製品は、開発、テストなどで使用するためにまだ無料です。
私の質問は、OpenJDK のどのディストリビューションがより良い選択でしょうか?
あなたにとって重要な基準に依存する答え。ただし、セキュリティ更新プログラムを迅速に必要とすること以外の基準については言及されていません (詳細は後述)。
私はOracle Open JDKとAdoptOpenJDKを評価していますが、どちらもアイデアの選択肢のようです..
これを明確にしてください: OpenJDKプロジェクトはソース コードのみを公開し、ビルドやインストーラーは公開しません。多くのベンダーが、OpenJDK ソース コードに基づくビルド/インストーラーを提供しています。
Oracle はそのようなベンダーの 1 つであり、次の 3 つの製品を提供しています。
- Oracle JDK — 有料サポートを利用できる、本番使用には料金が必要なブランド製品。
- jdk.java.net — 料金もサポートもなしの OpenJDK のビルド。
- GraalVM — 特別な製品である Java VM と HotSpot/OpenJDK ベースの JDK で、Java で実装され、追加のプログラミング言語と実行モードをサポートします。たとえば、高速起動と低メモリ フットプリントのための Java アプリケーションの事前コンパイルなどです。
これら 3 つはすべて、OpenJDK ソース コードに基づいています。最初と最後の提供有料サポート プログラム。
オラクルは、 Oracle JDKを OpenJDK と同等の機能に維持する意図を公に宣言しました。オラクルは、その取り組みの一環として OpenJDK プロジェクトを後援しています。同時に、オラクルは、重要なセキュリティ パッチを有料の顧客に迅速にリリースする権利を留保します。最終的には、そのようなパッチを OpenJDK プロジェクトに提出します。ただし、これらの提出されたパッチは、リリースされる前に OpenJDK プロセスを通過するためにより多くの時間がかかる可能性があります。
AdoptOpenJDKは、OpenJDK ソース コード ベースのビルドとインストーラーを提供する別のベンダーです。したがって、重要なセキュリティ パッチは、別のベンダーから有料の顧客へのパッチほど速くは無料で公開されない可能性があります。
以下は、Java 実装のベンダーを選択する際のガイドとして私が作成したフローチャートです。さまざまな選択肢があり、一部にはサポート オプションがあります。
ただし、サポートに関しては、Oracle OpenJDK は長期サポートなしで 6 か月のリリース サイクルに従いますが、AdoptOpenJDK には Java バージョン 8 および 11 の LTS があります。
ここであなたは間違っていると思います。オラクルは、Java 8 と Java 11 の両方について、 Oracle JDK製品のLTS アップデートを、一般向けには数年間、有料の顧客にはさらに数年間維持しています。
Java コミュニティは、皆さんが理解しているよりも共同作業に協力的です。私が知っている Java のすべての実装は、大部分が OpenJDK プロジェクトに基づいています。OpenJDK プロジェクトは、Oracle、Apple、IBM、SAP などによってサポートされています。Amazon、Microsoft、およびその他の企業が貢献しています。ラピッド リリース トレインと長期サポート (LTS)戦略は、Java コミュニティ全体に受け入れられています。
Oracle は、LTS バージョン 8 および 11 の管理を Red Hat に引き渡しましたが、Oracle は引き続き両方をサポートします。詳細については、Oracle Java SE サポート ロードマップを参照してください。
そのため、Oracle OpenJDK に切り替えた場合は、セキュリティ パッチを適用してデータを最新の状態に保つために、新しいリリース サイクルに従う必要があります。
私が知っているすべての Java 実装は、同じリリース サイクルに従っています。
(新機能はあまり気にしません)、
その場合は、必ず LTS バージョンのみを使用するようにしてください。現在、それは Java 8 と Java 11 です。
AdoptOpenJDK に切り替えると、LTS バージョン (11) のいずれかを使用でき、新しいセキュリティ パッチがこのバージョンに適用されることを期待できます。
Java 実装を提供するすべてのベンダーからのセキュリティ パッチを期待できます。問題は、これらのパッチがどれだけ早く届くかです。
私の主な関心事は、Java のセキュリティ更新を最新の状態にしたかったことです。
その場合は、信頼できるベンダーから有料サポート プランを購入することをお勧めします。複数の中からお選びいただけます。上の図の青いバレルの左側を見てください。
特に重大なセキュリティ脆弱性の影響を受ける可能性が非常に低いと考えている場合、またはそのような脆弱性を軽減できる可能性が高いと考えている場合は、サポート プランのコストに見合う価値がない可能性があります。この場合、新しい無料のリリースを待つことになります。有料ベンダーよりも長く待つ場合があります。
OpenJDKディストリビューションに切り替えた後。
現在配布されていると私が知っているすべての Java 実装は、OpenJDK に基づいています。
以下は、Java 実装の特定のベンダーを選択するための考えられる動機を示した別の図です。