將 WebLogic Server 應用程式遷移至 Azure 虛擬機器

本指南說明當您想要移轉現有的 WebLogic 應用程式以在 Azure 虛擬機器 上執行時,應該注意的事項。 如需 Azure Marketplace 中可用 WebLogic Server 解決方案的概觀,請參閱什麼是在 Azure 上執行 Oracle WebLogic Server 的解決方案 虛擬機器?

移轉前

若要確保成功移轉,請先完成下列各節所述的評量和清查步驟。

定義「移轉完成」所代表的意義

本指南和對應的 Azure Marketplace 供應專案是加速將 WebLogic Server 工作負載移轉至 Azure 的起點。 請務必定義移轉工作的範圍。 例如,您是否執行從現有的基礎結構到 Azure 虛擬機器 的嚴格「隨即轉移」? 若是如此,您可能會在移轉時嘗試在一些「隨即提升和改進」中工作。

最好盡可能接近純粹的「隨即轉移」,並考慮本指南中詳述的必要變更。 定義「移轉完成」所代表的意義,讓您知道何時達到此里程碑。 當您到達「移轉完成」時,可以建立 虛擬機器 的快照集,如建立快照集中所述。 確認您可以從快照集成功還原之後,您可以執行改善,而不必擔心遺失到目前為止已達成的移轉進度。

確定目標是移轉工作的適當目標

成功將 WLS 應用程式移轉至 Azure 的第一個步驟是選取最適當的移轉目標。 WLS 在 Azure 虛擬機 (VM) 或 Azure Kubernetes Service (AKS) 上執行良好。 VM 目標是最簡單的選擇,因為它最類似於內部部署部署。 虛擬機器的系統管理與部署體驗非常類似您擁有的內部部署。 這種緩解的取捨是經濟成本。 一般而言,相較於 AKS,VM 型解決方案的每分鐘成本較高。 雖然以 AKS 為基礎的解決方案執行成本較低,但您必須限制應用程式以符合 AKS 的需求。 如果最小化變更是移轉工作最重要的因素,請考慮以 VM 為基礎的移轉。 在此情況下,請參閱將 WebLogic 應用程式遷移至 Azure 虛擬機器。 如果您可以容許將應用程式轉換成 Kubernetes 內執行,以降低運行時間成本,請考慮以 AKS 為基礎的移轉。 在此情況下,請繼續進行 將 WebLogic Server 應用程式遷移至 Azure Kubernetes Service

判斷預先建置的 Azure Marketplace 供應專案是否為良好的起點

Oracle 和 Microsoft 已合作將一組 Azure 解決方案範本帶入 Azure Marketplace,以提供堅實的起點以遷移至 Azure。 如需供應專案清單,請參閱 Oracle Fusion 中間件檔,並選擇最符合您現有部署的專案。 您可以在概觀文章 中看到什麼是 Azure 上的 Oracle WebLogic Server 的供應項目清單?

如果現有的供應專案都不是很好的起點,您必須使用 Azure 虛擬機資源來重現部署。 您可以在手動在 Azure 上安裝 Oracle WebLogic Server 虛擬機器 中找到逐步指引。 如需詳細資訊,請參閱 什麼是 IaaS?

判斷 WebLogic 版本是否相容

您現有的 WebLogic 版本必須與 IaaS 供應專案中的版本相容。 若要查看 WebLogic 12.2.1.3 版的供應專案, 請查詢 Azure Marketplace for Oracle WebLogic 12.2.1.3。 如果您現有的 WebLogic 版本與該版本不相容,您必須使用 Azure IaaS 資源來重現部署。 如需詳細資訊,請參閱 Azure 檔

清查伺服器容量

記錄目前生產伺服器的硬體(記憶體、CPU、磁碟)以及平均和尖峰要求計數和資源使用率。 此資訊必須通知 VM 大小的選擇。 如需詳細資訊,請參閱 雲端服務的大小

清查所有秘密

在 Azure 金鑰保存庫 等「設定即服務」技術出現之前,沒有定義完善的「秘密」概念。 相反地,您有一組不同的組態設定,實際上可作為我們現在所謂的「秘密」功能。 使用 WebLogic Server 之類的應用程式伺服器,這些秘密位於許多不同的組態檔和組態存放區中。 檢查生產伺服器上的所有屬性和組態檔是否有任何秘密和密碼。 請務必檢查 WAR 中的 weblogic.xml 。 您也可以在應用程式內找到包含密碼或認證的組態檔。 如需詳細資訊,請參閱 Azure 金鑰保存庫 基本概念

清查所有憑證

記錄用於公用 SSL 端點的所有憑證。 您可以執行下列命令來檢視生產伺服器上的所有憑證:

keytool -list -v -keystore <path to keystore>

驗證支援的 Java 版本是否正常運作

WebLogic 到 Azure 的所有移轉路徑都需要特定的 Java 版本,每個路徑各有不同。 您必須驗證應用程式是否能夠使用該支援的版本正確執行。

注意

如果您的目前伺服器是在不支援的 JDK 上執行,此驗證特別重要(例如 Oracle JDK 或 IBM OpenJ9)。

若要取得目前的 Java 版本,請登入您的生產伺服器,然後執行下列命令:

java -version

注意

在 Azure 虛擬機上移轉至 WLS 時,特定 Java 版本的需求取決於虛擬機上預安裝的 Java。 在 AKS 上移轉至 WLS 時,特定 Java 版本取決於所選的容器映像。 有多種選擇,但所有選項都使用 Oracle JDK。

清查 JNDI 資源

清查所有 JNDI 資源。 例如,資料庫之類的數據源可能會有相關聯的 JNDI 名稱,可讓 JPA 正確地將 的 EntityManager 實例系結至特定資料庫。 如需 JNDI 資源和資料庫的詳細資訊,請參閱 Oracle 檔中的 WebLogic Server 數據源 。 其他 JNDI 相關資源,例如 JMS 訊息代理程式,可能需要移轉或重新設定。 如需 JMS 設定的詳細資訊,請參閱 Oracle WebLogic Server 12.2.1.4.0

檢查您的網域設定

WebLogic Server 中的主要組態單位是網域。 因此, config.xml 檔案包含大量組態,您必須仔細考慮進行移轉。 檔案包含儲存在子目錄中之其他 XML 檔案的參考。 Oracle 建議您通常應該使用 管理員 istration Console 來設定 WebLogic Server 的可管理對象和服務,並允許 WebLogic Server 維護 config.xml 檔案。 如需詳細資訊,請參閱 網域組態檔

在您的應用程式內

檢查 WEB-INF/weblogic.xml 檔案和/或 WEB-INF/web.xml 檔案。

判斷是否使用會話複寫

如果您的應用程式依賴會話復寫,且具有或不含 Oracle 一致性*Web,您有三個選項:

  • 一致性*Web 可以與 Azure 虛擬機中的 WebLogic Server 一起執行,但您必須在布建供應項目之後手動設定此選項。 如果您使用獨立式一致性,您也可以在 Azure 虛擬機中執行它,但在布建供應項目之後,您必須手動設定此選項。
  • 重構您的應用程式以使用資料庫進行會話管理。
  • 重構您的應用程式,以將會話外部化至 Azure Redis 服務。 如需詳細資訊,請參閱 Azure Cache for Redis

對於所有這些選項,最好掌握 WebLogic 如何執行 HTTP 會話狀態複寫。 如需詳細資訊,請參閱 Oracle 檔中的 HTTP 工作階段狀態複 寫。

檔數據源

如果您的應用程式使用任何資料庫,您需要擷取下列資訊:

  • 數據源名稱為何?
  • 什麼是聯機集區設定?
  • 哪裡可以找到 JDBC 驅動程式 JAR 檔案?

如需 WebLogic 中 JDBC 驅動程式的詳細資訊,請參閱 搭配 WebLogic Server 使用 JDBC 驅動程式。

判斷 WebLogic 是否已自定義

判斷已進行下列哪一項自定義,並擷取已完成的工作。

  • 啟動文稿是否已變更? 這類腳本包括 setDomainEnvcommEnvstartWebLogic 和 stopWebLogic
  • 是否有任何特定參數傳遞至 JVM?
  • 是否有 JAR 新增至伺服器類別路徑?

判斷是否使用透過 REST 進行管理

如果應用程式的生命週期包含使用透過 REST 管理,您需要擷取哪些埠可用來存取 REST API,並判斷其如何進行驗證和公開。 移轉之後,您必須確保公開這些相同的埠和驗證機制,讓您的應用程式生命週期可以像移轉之前一樣運作。 如需詳細資訊,請參閱使用 RESTful Management Services 管理員 登錄 Oracle WebLogic Server。

判斷是否需要連線至內部部署

如果您的應用程式需要存取任何內部部署服務,您必須布建其中一個 Azure 的連線服務。 如需詳細資訊,請參閱 選擇將內部部署網路連線至 Azure 的解決方案。 或者,您必須重構應用程式,才能使用內部部署資源公開的公開可用 API。

判斷 Java 訊息服務 (JMS) 佇列或主題是否正在使用中

如果您的應用程式使用 JMS 佇列或主題,您必須將它們移轉至外部裝載的 JMS 伺服器。 Azure 服務匯流排 和進階消息佇列通訊協議,對於使用 JMS 的通訊協定而言,是絕佳的移轉策略。 如需詳細資訊,請參閱搭配 Azure 服務匯流排 和AMQP 1.0使用 JMS。

如果已設定 JMS 永續性存放區,您必須擷取其設定,並在移轉之後套用它。

如果您使用 Oracle Message Broker,您可以將此軟體移轉至 Azure 虛擬機,並依目前使用。

判斷您是否使用自己的自定義建立共用Java EE 連結庫

如果您使用共用 Java EE 連結函式庫功能,您有兩個選項:

  • 重構應用程式程式代碼以移除連結庫上的所有相依性,並改為將功能直接併入您的應用程式。
  • 將連結庫新增至伺服器類別路徑。

判斷是否使用OSGi套件組合

如果您使用新增至 WebLogic 伺服器的 OSGi 套件組合,則必須將相等的 JAR 檔案直接新增至 Web 應用程式。

判斷您的應用程式是否包含 OS 特定程式代碼

如果您的應用程式包含主機 OS 上具有相依性的任何程式代碼,則必須重構它以移除這些相依性。 例如,您可能需要以 或 \ 取代檔案系統路徑File.Separator中的任何 使用 /Paths.get

判斷 Oracle 服務匯流排 是否正在使用中

如果您的應用程式使用 Oracle 服務匯流排 (OSB),您必須擷取 OSB 的設定方式。 如需詳細資訊,請參閱關於 Oracle 服務匯流排 安裝

判斷您的應用程式是否由多個 WAR 組成

如果您的應用程式是由多個 WAR 所組成,您應該將每個 WAR 視為個別的應用程式,並針對每個 WAR 進行本指南。

判斷您的應用程式是否封裝為 EAR

如果您的應用程式封裝為 EAR 檔案,請務必檢查 application.xmlweblogic-application.xml 檔案,並擷取其組態。

識別在生產伺服器上執行的所有外部進程和精靈

如果您有在應用程式伺服器外部執行的任何進程,例如監視精靈,您必須將其消除或移轉至別處。

判斷是否使用 WebLogic 文稿工具 (WLST)

如果您目前使用WLST來執行部署,則必須評估其運作狀況。 如果 WLST 正在變更應用程式的任何 (執行時間) 參數作為部署的一部分,您必須確定此行為在移轉後測試應用程式時會繼續運作。

判斷文件系統是否使用和方式

VM 檔案系統的運作方式與內部部署檔系統在持續性、啟動和關機方面的運作方式相同。 即便如此,請務必注意文件系統需求,並確保 VM 有足夠的記憶體大小和效能。

唯讀靜態內容

如果您的應用程式目前提供靜態內容,您將需要其替代位置。 您可能想要考慮將靜態內容移至 Azure Blob 儲存體,並新增 Azure CDN 以進行全球快速下載。 如需詳細資訊,請參閱靜態網站裝載 Azure 儲存體快速入門:整合 Azure 儲存器帳戶與 Azure CDN。 您也可以直接將靜態內容部署到 Azure Spring Apps 企業版方案中的應用程式。 如需詳細資訊,請參閱 部署Web靜態檔案

動態發佈的靜態內容

如果您的應用程式允許靜態內容由您的應用程式上傳/產生,但在建立後是不可變的,您可以使用如上所述 Azure Blob 儲存體 和 Azure CDN,搭配 Azure 函式來處理上傳和 CDN 重新整理。 我們在使用 Azure Functions 上傳和 CDN 預先載入靜態內容時,提供了範例實作。 您也可以直接將靜態內容部署到 Azure Spring Apps 企業版方案中的應用程式。 如需詳細資訊,請參閱 部署Web靜態檔案

判斷網路拓撲

目前一組 Azure Marketplace 供應專案是移轉的起點。 如果供應專案未涵蓋您需要移轉的架構層面,您就必須擷取現有部署的網路拓撲,並在 Azure 中重現該拓撲,即使在使用其中一個解決方案範本站立基本供應項目之後也一樣。

這是一個非常廣泛的主題,但下列參考可以為您的移轉工作提供一些方向:

  • 此參考會列舉與將網路拓撲移轉至 Azure: 快速追蹤部署指南相關的高階主題。
  • 本參考說明有關叢集的重要考慮,這會影響網路拓撲: WebLogic Server 叢集
  • 由於數據源是 WebLogic 系統中的個別伺服器,因此您必須將它們視為網路拓撲分析的一部分。 WebLogic Server 數據源
  • 傳訊來源也是個別的伺服器。 WebLogic Server 傳訊
  • 負載平衡是基本需求。 本參考涵蓋負載平衡的 WebLogic 伺服器端: 叢集中的負載平衡。

用於 JCA 配接器和資源配接器的帳戶

如果您的現有應用程式使用 JCA 配接器和/或資源配接器連線到其他企業系統,請確定這些成品的設定會套用至在 Azure 虛擬機器 中執行的 WebLogic Server。 如需詳細資訊,請參閱 建立和設定資源配接器

考慮使用自定義安全性提供者和 JAAS

如果您的應用程式使用 JAAS,您必須確定安全性提供者的設定已正確移轉。 如需詳細資訊,請參閱 Oracle 檔中關於設定 WebLogic 安全性提供者

判斷是否使用 WebLogic 叢集

您很可能已在多個 WebLogic 伺服器上部署應用程式,以達到高可用性。 您可以將這些叢集直接從內部部署安裝移轉至在 Azure 虛擬機器 中執行的 WebLogic。 如需詳細資訊,請參閱 Oracle 檔中的網域組態檔

考慮負載平衡需求

負載平衡是將 Oracle WebLogic Server 叢集移轉至 Azure 不可或缺的一部分。 最簡單的解決方案是針對 Oracle WebLogic Server 叢集的 Azure Marketplace 供應專案中提供的 Azure 應用程式閘道 使用內建支援。 如需本主題的教學課程,請參閱教學課程:使用 Azure 應用程式閘道 作為負載平衡器將WebLogic Server 叢集移轉至 Azure。

如需與其他 Azure 負載平衡解決方案相比,Azure 應用程式閘道 功能摘要,請參閱 Azure 中的負載平衡選項概觀。

判斷是否使用 Java EE 應用程式用戶端應用程式功能

如果您的應用程式使用 Java EE 應用程式用戶端功能,則移轉至 Azure 虛擬機器 之後,應該會繼續維持不變。 如需詳細資訊,請參閱 使用 Java EE 用戶端應用程式模組

遷移

在 Azure 虛擬機器 供應項目上選取 WebLogic

下列供應項目適用於 Azure 上的 WebLogic 虛擬機器。

在部署供應項目期間,系統會要求您選擇 WebLogic 伺服器節點的虛擬機大小。 請務必在您選擇的 VM 大小中考慮重設大小的所有層面(記憶體、處理器、磁碟)。 如需詳細資訊,請參閱 適用於虛擬機重設大小的 Azure 檔

沒有 管理員 伺服器的 WebLogic Server 單一節點

此供應專案會建立單一 VM 並安裝 WebLogic,但未設定任何網域,這適用於您具有高度自定義網域設定的案例。

具有 管理員 伺服器的 WebLogic Server 單一節點

此供應專案會布建單一 VM,並在其上安裝 WebLogic Server。 它會建立網域並啟動管理伺服器。

WebLogic Server N 節點叢集

此供應專案會建立 WebLogic Server VM 的高可用性叢集。

WebLogic Server N 節點動態叢集

此供應專案會建立 WebLogic Server VM 的高可用性且可調整的動態叢集

布建供應專案

選取要開始的供應項目之後,請遵循供應項目檔中的指示來布建該供應專案。 請務必選擇符合您現有功能變數名稱的功能變數名稱。 您甚至可以比對網域密碼與現有的網域密碼。

移轉網域

布建供應項目之後,您可以檢查網域設定,並遵循 此指引 以取得如何移轉網域的詳細數據。

連線 資料庫

移轉網域之後,您可以依照供應項目檔中指示來連線資料庫。 這些指示可協助您考慮涉及的任何資料庫秘密和存取字串。

KeyStores 的帳戶

您必須考慮移轉應用程式所使用的任何 SSL KeyStore。 如需詳細資訊,請參閱 設定金鑰存放區

連線 JMS 來源

線上資料庫之後,您可以設定 JMS。 如需詳細資訊,請參閱 WebLogic 檔中的 Fusion 中間件 管理員 註冊 Oracle WebLogic Server 的 JMS 資源。

驗證和授權的帳戶

大部分的應用程式都有某種驗證和授權。 如果您使用 LDAP 進行驗證,您可以使用安全的 LDAP 設定 Microsoft Entra Domain Services,並在 WebLogic Server 中設定 LDAP 連線。 如需詳細資訊,請參閱 建立及設定 Microsoft Entra Domain Services 受控網域設定 Microsoft Entra Domain Services 受控網域的安全 LDAP。

用於記錄的帳戶

使用 Oracle WebLogic Server Marketplace 解決方案範本所提供之 Azure 上的 Elastic 整合。 這種方法是用來考慮記錄的最簡單方式。 您可以在概觀文章中看到供應專案清單:什麼是在 Azure 虛擬機器 上執行 Oracle WebLogic Server 的解決方案?提供設定 Elastic 的完整教學課程:

如果彈性整合不合適,您應該在移轉網域時繼續執行現有的記錄設定。 如需詳細資訊,請參閱 Oracle 檔中的設定 java.util.logging 記錄器層級設定 Oracle WebLogic Server 的記錄檔和篩選記錄檔訊息。

移轉您的應用程式

用來將開發小組的應用程式部署至測試、預備和生產伺服器的技術,會因案例而異。 在某些情況下,有一個高度演進的 CI/CD 平臺會導致應用程式部署至 WebLogic Server。 在其他情況下,程式可能更手動。 使用 Azure 虛擬機器 將 WebLogic 應用程式移轉至雲端的其中一個優點是,您現有的程式會繼續運作。

您必須設定供應專案布建的網路安全組,以允許從 CI/CD 管線或手動部署系統存取。 如需詳細資訊,請參閱 網路安全組

測試

針對應用程式進行的任何容器內測試都必須設定為存取在 Azure 內執行的新伺服器。 如同 CI/CD 考慮,您必須確定必要的網路安全性規則可讓您的測試存取部署至 Azure 的應用程式。 如需詳細資訊,請參閱 網路安全組

移轉後

在您達到您在移轉前步驟中 定義的移 轉目標之後,請執行一些端對端驗收測試,以確認一切如預期般運作。 如需某些潛在移轉后增強功能的指引,請參閱下列建議: