Liberty をセットアップするための Platform as a Service 環境の考慮事項
Bluemix®、Pivotal Cloud Foundry、OpenShift Enterprise などの Platform as a Service (PaaS) 環境では、アプリケーション・インスタンスの管理およびモニターを行うことができますが、いくつかの制約事項もあります。 PaaS 環境の本来の性質により、一部の Liberty フィーチャーは、冗長であったり、動作が異なったりするため、サポートされません。
Liberty サーバー管理についての制約事項
すべての Liberty サーバー JVM インスタンスは、PaaS インフラストラクチャーによって開始、停止、および管理されるため、 Liberty 集合に関連するフィーチャーは PaaS 環境には適合しません。Admin Center フィーチャーは、 集合コントローラーなしでアプリケーションをスケーリングして複数 JVM インスタンスを使用するようにできる PaaS 環境で使用するようには設計されていません。このトポロジーでは、Admin Center への要求は、実行中インスタンスのいずれかに送付され、要求が実行されるサーバーに対してのみ可視になります。
- adminCenter-1.0
- clusterMember-1.0
- collectiveController-1.0
- collectiveMember-1.0
- dynamicRouting-1.0
- healthAnalyzer-1.0
- healthManager-1.0
- scalingController-1.0
- scalingMember-1.0
ファイル・システムについての制約事項
ほとんどの PaaS 環境は、アプリケーションに対して永続ローカル・ファイル・システムを提供しません。このことによる影響は、Liberty では、ローカルにデータを書き込み、サーバー JVM 再始動があってもデータが永続的に存在すると想定している、サーバー内のアプリケーションおよびコンポーネントの両方に及びます。
Liberty トランザクション・マネージャーは、複数のリソース・マネージャーがトランザクションに関係する場合、 ログ・ファイルをローカル・ファイル・システムに書き込みます。JVM 障害があり、再始動した後にログが使用可能でない場合、トランザクションを自動的に完了することはできず、手動でトランザクションを解決することで、 データをアンロックし、複数リソース・マネージャー間で一貫性のあるものにする必要があります。このシナリオを回避するため、Liberty ビルドパックまたはカートリッジは、トランザクション・ログ・レコードが書き込まれないようにし、 アプリケーションに例外を上げて 2 つ目のリソースの参加を防止します。結果として、 単一の XA リソースと共にトランザクションを使用することは可能なままですが、2 つ目のトランザクション・リソースはトランザクションに参加できません。また、 Web Services アトミック・トランザクションは、常にログ・レコードを書き込むため、使用することはできません。
-Dcom.ibm.tx.jta.disable2PC=true
- wsAtomicTransaction-1.2
- アプリケーションの動作に依存して、トランザクションを使用するその他のフィーチャー
ネットワークについての制約事項
- appClientSupport-1.0
- appSecurityClient-1.0
- ejbRemote-3.2
ほとんどの PaaS 環境では、HTTP ルーターで暗号化されたインバウンド要求の SSL を終了することで、要求を暗号化解除できます。このような暗号化された要求は、HTTPS または wss です。その後、暗号化解除された要求は、暗号化解除された HTTP 要求または wss 要求としてアプリケーション・サーバーに渡されます。一部のアプリケーションは、暗号化された要求からのみアクセスできるように構成されています。この構成は、アプリケーションの web.xml ファイル内で transport-guarantee エレメントを使用して設定するか、または @HttpConstraint アノテーションの transportGuarantee エレメントで設定できます。
REST コネクター、Admin Center、API ディスカバリーなどの一部の Liberty 機能は、セキュア・トランスポートを必要とするアプリケーションとして実装されています。
SSL が終了する環境では、クライアントからの元の要求が暗号化されていたことをルーターがアプリケーション・サーバーに示すためのメカニズムが必要になります。このメカニズムにより、アプリケーション要求がその場合でも正常に処理可能になります。DataPower で SSL を終了するには、プライベート WebSphere ヘッダーが使用されます (DataPower が IBM Cloud や IBM HTTP Server で使用される場合など)。フィックスパック 16.0.0.4 から、他の HTTP ルーターが使用されている場合、ルーターは、X-Forwarded-Proto ヘッダーを設定して、元の要求のプロトコルを示すことができます。要求が元々は暗号化されていた場合、このヘッダーは、HTTPS または wss プロトコルを示します。これにより、Liberty サーバーは、セキュア・トランスポートを必要とするアプリケーションへのアクセスを許可します。
以下のフィーチャーでは、ルーターが HTTP ヘッダーを設定して SSL の終了が発生したことを示す必要があります。
- ssl-1.0
- 『Secure Socket Layer』の『このフィーチャーを使用可能にするフィーチャー』セクションにリストされている、ssl-1.0 に依存する他のフィーチャー。
Liberty Swagger プロセッサー
Cloud Foundry 環境では、ユーザー・インターフェースなどの Liberty の Swagger プロセッサーは、VCAP_APPLICATION 環境変数の有無を確認します。 これは、URI 配列の最初のエレメントを API ホストとして使用します。