JBoss EAP 8への道

こんにちは、Red Hat で Middleware Technical Account Manager を担当している生井沢(@hnamaizawa)です。

この記事はRed Hat Developerのブログ記事、The road to JBoss EAP 8 を許可をうけて翻訳したものです。


オープンソースの Jakarta Enterprise Edition (Jakarta EE) に対応するアプリケーションサーバーである Red Hat JBoss Enterprise Application Platform (JBoss EAP) は、過去10年間にわたり Enterprise Java ワークロードの主力製品として信頼を得てきました。この記事では、現行バージョンである JBoss EAP 7 のリリース以降に Jakarta EE 仕様がどのように進化したのか、また JBoss EAP 8 では何が期待できるのかについて説明します。

JBoss EAP 7 はクラウド環境に最適化されており、Red Hat OpenShift で展開すると、コンテナ、ロードバランシング、Elastic Scaling、ヘルスモニタリング、および IDE から直接コンテナにデプロイできる機能によって開発者の生産性とエクスペリエンスを向上します。

Jakarta EEの進化

Red Hat は Jakarta EE ワーキンググループの創設メンバーの 1 つであり、Java Enterprise Edition (Java EE) の初期段階から革新と貢献に積極的に関わってきました。Java EE が Oracle 社から Eclipse Foundation の Jakarta EE に移行した後、Jakarta EE 8 がリリースされ、仕様をよりベンダーニュートラルなものに設定し、Red Hat や他のベンダーがこの移行を支持しました。

次のメジャーリリースである Jakarta EE 9 では、目立った新機能は導入されませんでしたが、その代わりに Jakarta API パッケージの名前空間を javax.* から jakarta.* へ変更するという大きな修正が行われました。この名称変更により、既存のプログラムとの間に大きな非互換性が生じました。Jakarta EE 9 は、次のメジャーバージョンである Jakarta EE 10 への足がかりと見なされることがほとんどでした。また、JBoss EAP がこの足がかりをサポートしていないのは、Jakarta EE 9 へ移行するために説得力のある新たな理由がなく、お客様やアプリケーションへ付加価値が提供できないからです。

Jakarta EE 10 の現在の計画では、2022年第2四半期にリリースすることになっており、Jakarta EE 8(Java EE 8と同一)、Jakarta EE 9(名前空間の変更)と比較して、プラットフォームを大幅に改訂する機会を提供します。

Jakarta EE のいくつかの仕様に新機能が追加されます。特に目立つのは、Core Profile の導入です(Java EE または Jakarta EE に何年も前からある既存の Full Profile と Web Profile を補完するものです)。この新しい Profile には、マイクロサービス、サーバレスワークロード、ネイティブに事前にコンパイルされたアプリケーションなど、小規模で用途を絞ったアプリケーションに最も有用な Jakarta EE 仕様のサブセットが含まれています。Core Profile はこの仕様にとって大きな前進であり、Jakarta EE をクラウドネイティブとコンテナの領域へより踏み込ませるものです。

JBoss EAP 8 の計画について

いつものように、お客様は展開されたランタイムのアップグレードや移行を計画するために、life cycles of the Runtimes products(EAPを含む)を参照する必要があります。この記事に記載されている情報は、予告なく変更されることがあります。

JBoss EAP はアップストリームの WildFly プロジェクトをベースにしています。このプロジェクトは、Jakarta EE の進化に合わせた feature-boxed release に移行しており、Jakarta EE 10 をサポートする WildFly の最初のバージョンは WildFly 27 になる予定です。そのため、JBoss EAP の今後の展開を知りたい方は、WildFly に注目してください。

EAP の次のメジャーリリースである JBoss EAP 8 は、2023年の前半に予定されており、ベータ版リリースは2022年の後半を目標としています。ベータ版リリースでは、お客様に新機能のテストドライブの機会を提供しますが、より重要なのは、JBoss EAP の以前のバージョンからの移行を計画することです。新機能とともに、Red Hat Enterprise Linux、Red Hat OpenShift、Windows、データベース、およびその他の依存関係に対するプラットフォームのサポートの更新が行われる予定です。最終的なリストはリリース間近に決定される予定です。

既存バージョンである JBoss EAP 7.x のサポートは、現在のお客様が JBoss EAP 8 への移行を計画するための猶予期間を提供するために延長されました。JBoss EAP の最新のサポート日程については、Product Support and Update Policy ページを参照してください。

製品ライフサイクル

JBoss EAP の現行バージョンと同様に、お客様は JBoss EAP 8 でも Red Hat Application Services の Long-life Product Life Cycle に対応する長期サポートを引き続き享受することができます。業界をリードする 24x7 サポートと複数年のアップデートおよびメンテナンスポリシーと相まって、このコミットメントにより、お客様は Red Hat が今後何年にもわたってお客様の最も重要なアプリケーションをサポートできることに安心感を持つことができます。

JBoss EAP 8 への移行について

EAP 7 は、support life cycle に基づき、引き続きサポートされます。お客様は、EAP 7 のライフサイクルを超えてサポートを継続するために、EAP 8 への移行の計画を開始する必要があります。今年後半の EAP 8 ベータ版リリースが近づくにつれ、移行の詳細が明らかになるでしょう。しかし、一般的に移行はサーバーとアプリケーションの2つの主要な領域で構成されています。

サーバーの移行

このプロセスには、standalone.xml などの JBoss EAP 設定ファイルの移行が含まれます。JBoss Server Migration Tool は、既存の構成を維持したまま、新しい JBoss EAP リリースの新機能や設定を含めるためにサーバー構成を更新するのに適した方法です。JBoss Server Migration Tool は既存の JBoss EAP 設定ファイルを読み込み、新しいサブシステムの設定を追加し、既存のサブシステム設定を新機能で更新し、古くなったサブシステム設定や "pruned" サブシステム設定を削除します。

このツールのプレビューは、JBoss EAP 8 ベータ版リリースの一部として含まれる予定です。このツールの詳細な動作を理解するには、この移行ツールに関する既存の EAP 7 のドキュメントを参照してください (EAP 8 用に更新される予定です)。

アプリケーションの移行

ここでの主な移行トピックは Jakarta API の名前空間を javax.* から jakarta.* へと変更することです。多くの場合、この変更は単純な置換だけで済みますが(そして migration toolkit では、これを自動化するための OpenRewrite レシピなどが新たにサポートされています)、すべてのケースでそうなるわけではありません。

アプリケーションの移行を支援するために、お客様は migration toolkit for applications を使用することができます。このツールキットは拡張可能でカスタマイズ可能なルールベースのツールセットで、Java アプリケーションの移行を簡素化するのに役立ちます。移行を予定しているアプリケーションで使用されている API、テクノロジー、アーキテクチャを分析し、各アプリケーションの詳細な移行レポートを提供します。このツールは、JBoss EAP 8 ベータ版(テスト目的のみ)および JBoss EAP 8 GA がリリースされた後の移行をサポートする予定です。EAP 8 への具体的な移行方法の詳細は、EAP 8 ベータ版のリリース間近に公開される予定です。

アプリケーションの移行とモダナイゼーションは、それ自体大きなトピックです。Red Hat はここでも革新を続けており、クラウド、コンテナ、Kubernetes への移行に伴うアプリケーションの移行とモダナイゼーションを容易にする Tackle (Konveyor コミュニティの一部) などの新しいプロジェクトがあります。

JBoss EAP 8 のリリースに向けての詳細については、本サイトと公式の新しい @RedHatJava Twitter ストリームを引き続き確認してください。


* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。