大型主機應用程式移轉策略
當大多數小組將應用程式從大型主機環境遷移至 Azure 時,通常會遵循務實的方法:盡可能重複使用。 然後,他們會啟動階段式部署,其中會重寫或取代應用程式。
應用程式移轉通常牽涉到下列一或多個策略:
重新裝載: 從大型主機移動現有的程式碼、程式和應用程式。 重新編譯程式碼,以在裝載于雲端實例的大型主機模擬器中執行。 這種方法通常會從將應用程式移至雲端式模擬器開始,然後將資料庫移轉至雲端式資料庫。 此策略需要一些工程和重構,以及資料和檔案轉換。
或者,您可以使用傳統裝載提供者重新裝載。 雲端的主要優點之一是外包基礎結構管理。 尋找為您裝載大型主機工作負載的資料中心提供者。 此模型可以購買一些時間,減少廠商鎖定,並產生暫時的成本節省。
淘汰: 淘汰移轉之前不再需要的應用程式。
重建: 某些組織選擇使用新式技術完全重寫程式。 由於這種方法的成本和複雜度增加,它不像隨即轉移方法那麼常見。 通常在此類型的移轉之後,使用程式碼轉換引擎開始取代模組和程式碼是合理的。
取代: 此方法會將大型主機功能取代為雲端中的對等功能。 軟體即服務 (SaaS) 是一個選項。 使用 Saas 時,您會使用專為企業關注而建立的解決方案,例如財務、人力資源、製造或企業資源規劃。 此外,許多產業特定的應用程式現在可供解決先前用來解決之自訂大型主機解決方案的問題。
首先,規劃您想要一開始移轉的工作負載,然後判斷移動相關聯應用程式、舊版程式碼基底和資料庫的需求。
Azure 中的大型主機模擬
Azure 服務可以模擬傳統大型主機環境。 然後,您可以重複使用現有的大型主機程式碼和應用程式。 您可以模擬常見的伺服器元件,例如線上交易處理 (OLTP)、批次和資料擷取系統。
OLTP 系統
許多大型主機都有 OLTP 系統,可處理大量使用者的數千或數百萬個更新。 這些應用程式通常會使用交易處理和螢幕格式處理軟體,例如客戶資訊控制系統(CICS)、資訊管理系統(IMS)和終端介面處理器(TIP)。
當您將 OLTP 應用程式移至 Azure 時,大型主機交易處理 (TP) 監視器的模擬器可以使用 Azure 上的虛擬機器 (VM) 以基礎結構即服務 (IaaS) 的形式執行。 網頁伺服器也可以實作螢幕處理和表單功能。 將此方法與資料庫 API 結合,例如 ActiveX 資料物件 (ADO)、開放式資料庫連線ivity (ODBC),以及 JAVA Database 連線ivity (JDBC)來存取和交易。
時間限制的批次更新
許多大型主機系統會每月或每年更新數百萬筆客戶紀錄,例如銀行、保險和政府中使用的記錄。 大型主機會藉由提供高輸送量的資料處理系統來處理這些類型的工作負載。 大型主機批次作業通常本質上是序列化的,取決於大型主機骨幹針對效能提供的每秒輸入和輸出作業(IOPS)。
雲端式批次環境會使用平行計算和高速網路來達到效能。 如果您需要優化批次效能,Azure 會提供各種計算、儲存體和網路功能選項。
資料擷取系統
大型主機會擷取來自零售、金融服務、製造和其他處理解決方案的大量資料。 透過 Azure,您可以使用簡單的命令列公用程式,例如 AzCopy ,將資料複製到儲存體位置或從儲存體位置複製資料。 您也可以使用 Azure Data Factory 服務,從不同的資料存放區擷取資料,以及建立及排程資料驅動工作流程。
除了模擬環境之外,Azure 還提供平臺即服務 (PaaS) 和分析服務,可增強現有的大型主機環境。
將 OLTP 工作負載遷移至 Azure
隨即轉移方法是將現有應用程式快速移轉至 Azure 的無程式碼選項。 每個應用程式都會依目前的形式移轉,這可提供雲端的優點,而不需要變更程式碼的風險或成本。 在此方法上使用模擬器進行大型主機交易處理 (TP) 監視器Azure 支援。
TP 監視器可從各種廠商取得,並在虛擬機器上執行,這是 Azure 上的基礎結構即服務 (IaaS) 選項。 下圖顯示 IBM DB2 支援的線上應用程式前後,IBM z/OS 大型主機上的關係資料庫管理系統 (DBMS)。 DB2 for z/OS 使用虛擬儲存體存取方法 (VSAM) 檔案來儲存一般檔案的資料和索引循序存取方法 (ISAM)。 此架構也會使用 CICS 進行交易監視。
在 Azure 上,模擬環境會執行 TP 管理員和使用 JCL 的批次作業。 在資料層中,DB2 會取代為 Azure SQL 資料庫 ,不過您也可以使用 Microsoft SQL Server、DB2 LUW 或 Oracle Database。 模擬器支援 IMS、VSAM 和 SEQ。 大型主機的系統管理工具會由 Azure 服務和 VM 中執行之其他廠商的軟體所取代。
網頁伺服器通常會實作螢幕處理和表單專案功能,您可以結合資料庫 API,例如 ADO、ODBC 和 JDBC,以進行資料存取和交易。 要使用的 Azure IaaS 元件確切陣容取決於您偏好的作業系統。 例如:
Windows 型 VM: Internet Information Server (IIS)以及螢幕處理和商務邏輯的 ASP.NET。 使用 ADO.NET 進行資料存取和交易。
以 Linux 為基礎的 VM: 以 JAVA 為基礎的應用程式伺服器,例如 Apache Tomcat 進程畫面處理和以 JAVA 為基礎的商務功能。 使用 JDBC 進行資料存取和交易。
將批次工作負載遷移至 Azure
Azure 中的批次作業與大型主機上的一般批次環境不同。 大型主機批次作業通常本質上是序列化,且取決於大型主機骨幹所提供的 IOPS 以達到效能。 雲端式批次環境會使用平行運算和高速網路來達到效能。
若要使用 Azure 將批次效能優化,請考慮 計算 、 儲存體 、 網路 和 監視 選項,如下所示。
計算
使用:
具有最高時脈速度的 VM。 大型主機應用程式通常是單一執行緒,大型主機 CPU 具有高速時脈速度。
具有大型記憶體容量的 VM,以允許快取資料和應用程式工作區域。
如果應用程式支援多個執行緒,則具有高密度 vCPU 的 VM 會利用多執行緒處理。
平行處理,因為 Azure 可輕鬆地相應放大以進行平行處理,為批次執行提供更多的計算能力。
儲存體
使用:
Azure 進階版 SSD 或 Azure Ultra 磁片儲存體 ,以取得最大可用 IOPS。
使用多個磁片進行等量分割,以取得每個儲存體大小的更多 IOPS。
分割儲存體,以將 I/O 分散到多個Azure 儲存體裝置上。
網路
- 使用 Azure 加速網路 將延遲降到最低。
監視
- 使用監視工具、 Azure 監視器 、 Application Insights 和 Azure 記錄。 這些工具可協助您監視執行過度執行的批次,並降低瓶頸。
移轉開發環境
雲端的分散式架構依賴一組不同的開發工具,以提供新式做法和程式設計語言的優點。 為了簡化此轉換,請搭配設計來模擬 IBM z/OS 環境的其他工具使用開發環境。 下列清單顯示來自 Microsoft 和其他廠商的選項:
元件 | Azure 選項 |
---|---|
z/OS | Windows、Linux 或 Unix |
CICS | Micro Focus、Oracle、GT Software (Fujitsu)、TmaxSoft、Raincode 和 NTT DATA 所提供的 Azure 服務,或使用 Kubernetes 重寫 |
IMS | Micro Focus 和 Oracle 所提供的 Azure 服務 |
組合器 | 來自 Raincode 和 TmaxSoft 的 Azure 服務;或 COBOL、C 或 JAVA,或對應至作業系統函式 |
Jcl | JCL、PowerShell 或其他腳本工具 |
Cobol | COBOL、C 或 JAVA |
自然對數 | Natural、COBOL、C 或 JAVA |
Fortran 和 PL/I | Fortran、PL/I、COBOL、C 或 JAVA |
REXX 和 PL/I | REXX、PowerShell 或其他腳本工具 |
移轉資料庫和資料
應用程式移轉通常牽涉到重新裝載資料層。 您可以將 SQL Server、開放原始碼和其他關係資料庫移轉至 Azure 上的完全受控解決方案。 您可以使用Azure SQL 受控執行個體、適用於 PostgreSQL 的 Azure 資料庫和適用於 MySQL 的 Azure 資料庫搭配 Azure 資料移轉服務 。
例如,如果大型主機資料層使用下列專案,您可以移轉:
IBM DB2 或 IMS 資料庫,在 Azure 上使用 Azure SQL 資料庫、SQL Server、DB2 LUW 或 Oracle Database。
VSAM 和其他一般檔案,使用 Azure SQL 資料庫、SQL Server、DB2 LUW 或 Oracle 的索引循序存取方法 (ISAM) 一般檔案。
世代日期群組 (GDG),會移轉至使用命名慣例和副檔名的 Azure 上的檔案,以提供與 GDG 類似的功能。
IBM 資料層包含數個主要元件,您也必須移轉這些元件。 例如,當您移轉資料庫時,也會移轉集區中包含的資料收集,每個都包含 dbextents,這些資料庫都是 z/OS VSAM 資料集。 您的移轉必須包含識別存放集區中資料位置的目錄。 此外,您的移轉計畫必須考慮資料庫記錄,其中包含在資料庫上執行的作業記錄。 資料庫可以有一個、兩個(雙重或替代),或四個(雙重和替代)記錄。
資料庫移轉也包含下列元件:
- 資料庫管理員: 提供資料庫中資料的存取權。 資料庫管理員會在 z/OS 環境中在其自己的分割區中執行。
- 應用程式要求者: 在將要求傳遞至應用程式伺服器之前,接受來自應用程式的要求。
- 線上資源配接器: 包含用於 CICS 交易的應用程式要求者元件。
- 批次資源配接器: 實作 z/OS 批次應用程式的應用程式要求者元件。
- 互動式 SQL (ISQL): 以 CICS 應用程式和介面執行,並讓使用者輸入 SQL 語句或運算子命令。
- CICS 應用程式: 使用 CICS 中的可用資源和資料來源,在 CICS 的控制下執行。
- Batch 應用程式: 執行進程邏輯,而不需與使用者進行互動式通訊,例如,產生大量資料更新或從資料庫產生報表。
優化 Azure 的規模和輸送量
一般而言,大型主機會相應增加,而雲端會相應放大。若要優化在 Azure 上執行的大型主機樣式應用程式的規模和輸送量,請務必瞭解大型主機如何分隔和隔離應用程式。 z/OS 大型主機會使用稱為邏輯分割區 (LPAR) 的功能來隔離和管理單一實例上特定應用程式的資源。
例如,大型主機可能會針對具有相關聯 COBOL 程式的 CICS 區域使用一個 LPAR,並為 DB2 使用個別的 LPAR。 其他 LPAR 通常用於開發、測試和預備環境。
在 Azure 上,使用個別 VM 來達到此目的比較常見。 Azure 架構通常會為應用層部署 VM、針對資料層部署一組個別的 VM、另一組用於開發等。 您可以使用最適合該環境的 VM 和功能類型,優化每一層處理。
此外,每一層也可以提供適當的災害復原服務。 例如,生產環境與資料庫 VM 可能需要經常性或暖復原,而開發和測試 VM 則支援冷復原。
下圖顯示使用主要和次要月臺的可能 Azure 部署。 在主要月臺中,生產環境、預備和測試 VM 會部署高可用性。 次要月臺適用于備份和災害復原。
執行分段移轉至 Azure
將解決方案從大型主機移至 Azure 可能牽涉到 分段 移轉。 您會先移動某些應用程式,而另一些應用程式則暫時或永久保留在大型主機上。 這種方法通常需要讓應用程式和資料庫在大型主機與 Azure 之間互通的系統。
常見的案例是將應用程式移至 Azure,同時保留應用程式在大型主機上所使用的資料。 特定軟體可讓 Azure 上的應用程式從大型主機存取資料。 幸運的是,各種解決方案提供 Azure 與現有大型主機環境之間的整合、混合式案例的支援,以及一段時間的移轉。 Microsoft 合作夥伴、獨立軟體廠商和系統整合者可協助您進行旅程。
其中一個選項是 Microsoft Host Integration Server 。 此解決方案提供 Azure 中應用程式所需的分散式關係資料庫架構 (DRDA)。 它可讓應用程式存取保留在大型主機上的 DB2 中的資料。 大型主機對 Azure 整合的其他選項包括 IBM、Attunity、Codit、其他廠商和開放原始碼選項的解決方案。
合作夥伴解決方案
如果您考慮進行大型主機移轉,合作夥伴生態系統可以協助。
Azure 針對目前在大型主機上執行的系統,提供經過證實、高可用性且可調整的基礎結構。 有些工作負載可以相對輕鬆移轉。 您可以重新裝載相依于舊版系統軟體的其他工作負載,例如 CICS 和 IMS。 使用合作夥伴解決方案,並隨著時間移轉至 Azure。 無論您做出何種選擇,Microsoft 和我們的合作夥伴都可以協助您優化 Azure,同時維護大型主機系統軟體功能。
深入了解
如需詳細資訊,請參閱以下資源: