第8章 JBoss EAP for OpenShift の機能のトリム
サーバーの機能をトリムすると、プロビジョニングされたサーバーのセキュリティーリスクを軽減したり、マイクロサービスコンテナーにより適したサーバーにするためにメモリーフットプリントを削減したりできます。
JBoss EAP を含むイメージをビルドする際に、イメージに含める JBoss EAP の機能とサブシステムを制御できます。これを行うには、Source-to-Image (S2I) ビルドプロセス中、新しいアプリケーションを作成するときに JBoss EAP Maven プラグインを使用します。詳細は、Maven プラグインを使用した JBoss EAP サーバーのプロビジョニング を参照してください。
S2I ビルドプロセス中に、JBoss EAP Maven プラグインの代わりに次の環境変数を使用できます。
- GALLEON_PROVISION_FEATURE_PACKS
- GALLEON_PROVISION_LAYERS
- GALLEON_PROVISION_CHANNELS
8.1. 利用可能な JBoss EAP レイヤー
Red Hat は、OpenShift での JBoss EAP サーバーのプロビジョニングをカスタマイズできる基本レイヤーとデコレーターレイヤーを提供します。ベースレイヤーはコア機能を提供し、デコレーターレイヤーはベースレイヤーを強化します。
プロビジョニング層では、以下の Jakarta EE 仕様はサポートされません。
- Jakarta Server Faces 2.3
- Jakarta Enterprise Beans 3.2
- Jakarta XML Web Services 2.3
8.1.1. ベースレイヤー
各ベースレイヤーには、典型的なサーバーユーザーケースのコア機能が含まれています。
datasources-web-server
このレイヤーには、サーブレットコンテナーが含まれ、データソースを設定する機能が含まれます。
以下は、datasources-web-server
にデフォルトで含まれている JBoss EAP サブシステムです。
-
core-management
-
datasources
-
deployment-scanner
-
ee
-
elytron
-
io
-
jca
-
jmx
-
logging
-
命名
-
request-controller
-
security-manager
-
transactions
-
undertow
このレイヤーでは、以下の Jakarta EE 仕様がサポートされます。
- Jakarta JSON Processing 1.1
- Jakarta JSON Binding 1.0
- Jakarta Servlet 4.0
- Jakarta Expression Language 3.0
- Jakarta Server Pages 2.3
- Jakarta Standard Tag Library 1.2
- Jakarta Concurrency 1.1
- Jakarta Annotations 1.3
- Jakarta XML Binding 2.3
- Jakarta Debugging Support for Other Languages 1.0
- Jakarta Transactions 1.3
- Jakarta Connectors 1.7
jaxrs-server
このレイヤーは、以下の JBoss EAP サブシステムを使用して datasources-web-server
レイヤーを強化します。
-
jaxrs
-
weld
-
jpa
また、このレイヤーは、ローカルキャッシュを備えた Infinispan ベースのセカンドレベルのエンティティーをコンテナーに追加します。
以下の Jakarta EE 仕様は、datasources-web-server
レイヤーでサポートされるものに加え、このレイヤーでサポートされています。
- Jakarta Contexts and Dependency Injection 2.0
- Jakarta Bean Validation 2.0
- Jakarta Interceptors 1.2
- Jakarta RESTful Web Services 2.1
- Jakarta Persistence 2.2
cloud-server
このレイヤーは、以下の JBoss EAP サブシステムを使用して jaxrs-server
レイヤーを強化します。
-
resource-adapters
-
messaging-activemq
(組み込みメッセージではなく、リモートブラオーカーメッセージング)
このレイヤーは、以下の observability 機能も jaxrs-server
レイヤーに追加します。
- ネイティブヘルス
- ネイティブメトリクス
以下の Jakarta EE 仕様は、jaxrs-server
レイヤーでサポートされるものに加え、このレイヤーでサポートされています。
- Jakarta Security 1.0
cloud-default-config
このレイヤーは、standalone-ha.xml
に基づくサーバー設定でサーバーをプロビジョニングし、サブシステム設定の messaging-activemq
を含みます。逆に、modcluster
と core-management
サブシステムの設定は含まれていません。これはクラウドで使用するように設定されています。さらに、すべての JBoss EAP サーバー JBoss モジュールがインストールされます。
ee-core-profile-server
ee-core-profile-server
レイヤーは、Jakarta EE 10 Core Profile を使用してサーバーをプロビジョニングします。Core Profile は、コア JBoss EAP サーバー機能と Jakarta EE API の両方を提供する小さく軽量なプロファイルをユーザーに提供します。ee-core-profile-server
レイヤーは、クラウドネイティブアプリケーションやマイクロサービスなどの小規模なランタイムに最適です。
8.1.2. デコレーターレイヤー
デコレーターレイヤーは単独で使用されません。ベースレイヤーで 1 つ以上のデコレーターレイヤーを設定することで、追加機能を利用できます。
observability
このデコレーターレイヤーは、プロビジョニングしたサーバーに以下の observability 機能を追加します。
- ネイティブヘルス
- ネイティブメトリクス
このレイヤーは cloud-server
レイヤーに組み込まれています。このレイヤーは cloud-server
レイヤーに追加する必要はありません。
web-clustering
このレイヤーは、埋め込み Infinispan ベースの Web セッションクラスタリングをプロビジョニングされたサーバーに追加します。