設定 Liberty 時的平台即服務 (PaaS) 環境注意事項

Bluemix®、Pivotal Cloud Foundry 和 OpenShift 等之類的平台即服務 (PaaS) 環境提供應用程式實例的管理與監視,但還是有一些限制。 基於 PaaS 環境的一些固有性質,有些 Liberty 特性是冗餘的或者會採取不同的行為,因而不支援這些特性。

Liberty 伺服器管理限制

Liberty 群體有關的特性不適用於 PaaS 環境,因為所有 Liberty 伺服器 JVM 實例是由 PaaS 基礎架構來啟動、停止和管理。「管理中心」特性並非設計用於 PaaS 環境中,在該環境中,可以將應用程式調整成使用多個 JVM 實例,而不需要群體控制器。在這種拓蹼中,當對「管理中心」發出要求時,可能會將該要求導引至任何執行中的實例,且只有執行該要求的伺服器才具有可見性。

PaaS 環境中不支援下列的管理特性:
  • 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 建置套件或卡匣會阻止撰寫交易日誌記錄,並使應用程式發生異常狀況,以防列入第二個資源。如此一來,雖然交易仍可以與單一 XA 資源搭配使用,但是無法將第二個交易資源列入交易中。此外,無法使用「Web 服務基本交易」,因為它們一律會撰寫日誌記錄。

如果您的 PaaS 環境提供持續性儲存體,您可以修改 Liberty 建置套件或卡匣,藉由在 JVM 配置中移除下列 Java™ 內容,來啟用兩階段交易:
-Dcom.ibm.tx.jta.disable2PC=true
下列特性相依於持續性本端儲存體:
  • wsAtomicTransaction-1.2
  • 會使用交易的其他特性(視應用程式行為而定)

網路限制

一般而言,PaaS 路由器不支援「網際網路交互 ORB 通訊協定 (IIOP)」資料流量,因此無法採取遠端要求 Enterprise JavaBeans (EJB) 元件。下列特性相依於 IIOP 傳輸:
  • appClientSupport-1.0
  • appSecurityClient-1.0
  • ejbRemote-3.2

[16.0.0.4 以及更新版本]大部分 PaaS 環境可以在 HTTP 路由器上,終止對於加密入埠要求的 SSL,即可將要求解密。 這些加密要求可以是 HTTPS 或 wss。之後,已解密的要求傳給應用程式伺服器時,就會是已解密的 HTTP 或 wss 要求。 部分應用程式會配置成只有加密要求才能存取。在應用程式的 web.xml 檔中,您可以在 @HttpConstraint 註釋上使用 transport-guarantee 元素或 transportGuarantee 元素,以設定這種配置。 部分 Liberty 特性已實作為需要安全傳輸的應用程式,包括 REST 連接器、「管理中心」及「API 探索」。

[16.0.0.4 以及更新版本]在 SSL 已終止的環境中,需要有一種機制,讓路由器向應用程式伺服器指出來自用戶端的原始要求已加密。 此機制可確保應用程式要求仍會成功。DataPower 中使用一個專用 WebSphere 標頭來終止 SSL,例如,當 DataPower 與 IBM Cloud 搭配使用,或在 IBM HTTP Server 中使用時。自修正套件 16.0.0.4 起,在使用其他 HTTP 路由器時,路由器可以設定 X-Forwarded-Proto 標頭,以指出原始要求的通訊協定。 如果要求最初已加密,這個標頭會指出 HTTPS 或 wss 通訊協定。然後,Liberty 伺服器就會容許存取需要安全傳輸的應用程式。

[16.0.0.4 以及更新版本]下列特性需要路由器設定 HTTP 標頭來指出 SSL 已終止:

  • ssl-1.0
  • 相依於 ssl-1.0 的其他特性,如 Secure Socket Layer啟用此特性的特性一節中所列。

Liberty Swagger 處理器

在 Cloud Foundry 環境中,Liberty 中的 Swagger 處理器(包括其使用者介面)會檢查 VCAP_APPLICATION 環境變數是否存在。它會使用 uris 陣列的第一個元素作為 API 主機。


指示主題類型的圖示 概念主題

檔名:cwlp_paas_restrict.html