大型主機應用程式會產生大量交易資料。 Azure 是現代化這些工作負載及資料遷移的合適平台。 Azure 關聯式與 NoSQL 資料庫提供可擴展性、高可用性及易於維護的特性,與大型主機環境相當甚至超越。 如果你打算退休大型主機工作負載並將資料存放在低成本儲存中,Azure 提供多種儲存選項。
將工作負載從大型主機遷移到 Azure,作為應用程式重構或重構的一部分,通常需要大規模的資料遷移。 mLogica LIBER*IRIS 提供了一套經過驗證的大型主機資料遷移解決方案,用於從大型主機到Azure。 解決方案會大規模運作,以遷移企業工作負載。 本文說明如何以高保真度將 IBM z/OS 大型主機資料遷移至 Azure。
架構
下圖展示了 mLogica LIBER*IRIS 如何與 Azure 元件整合,以大規模將大型主機資料遷移到 Azure。
mLogica LIBER*IRIS 及其標誌是其公司的商標。 使用這些標記時不會隱含任何背書。
下載此架構的Visio檔案。
數據流
下列資料流程對應至上一個圖表:
將資料定義語言(DDL)檔案、資料庫描述(DBD)檔案、複製簿、資料版面及其他資料描述產物複製到執行 mLogica 資料遷移服務工具的 Azure Linux 虛擬機(VM)上。 使用安全的檔案傳輸協定(FTPS),透過安全的 Azure 站對站虛擬私人網路(VPN)或 Azure ExpressRoute。
mLogica LIBER*IRIS 資料遷移叢集會產生資料擷取腳本,供主機執行。
透過 VPN 使用 FTPS 將資料擷取腳本傳輸到大型主機。 FTPS 聯機會將 ASCII 轉換為大型主機 EBCDIC 格式。
擷取的腳本會在大型主機上執行。 它們會將多個來源的資料匯出到序列檔案中,所有打包的十進位資料都會被解壓。 他們會產生用來將資料載入目標資料庫的 SQL 載入腳本。
系統會透過二進位安全檔案傳輸協定(SFTP)將順序檔案和載入腳本傳送到 Azure Blob 儲存體。 此階段主機資料仍維持 EBCDIC 格式。
mLogica 資料遷移服務會執行載入腳本,將 EBCDIC 轉換為 ASCII。 腳本在載入 Azure 儲存體 時會寫錯。 為了降低成本,你可以使用兩個儲存帳戶。 將資料檔案存放在熱存取層,日誌檔案存放在冷存取層。
這些腳本會將順序檔案中轉換成 ASCII 的資料載入目標 Azure 關聯式資料庫。 載入文稿包含 DDL 命令,可建立資料表和其他物件,以及 SQL 查詢,以將數據載入這些物件。 在叢集中水平擴展負載處理過程,以最大化吞吐量。 執行日誌與詳細異常日誌會儲存在 Blob 儲存體 中以供進一步分析。
mLogica LIBER*IRIS 資料遷移服務執行載入腳本,將關聯列的資料轉換成非正規化的 JSON 文件,並載入 Azure Cosmos DB for NoSQL。
元件
此解決方案使用下列元件。
網路和身分識別
Azure VPN 閘道 是一種虛擬網路閘道,透過公共網際網路在Azure虛擬網路與本地位置之間傳送加密流量。 在此架構中,VPN 閘道 提供了 ExpressRoute 的替代方案,確保大型主機環境與 Azure 之間的安全連接。 ExpressRoute 是一項連接服務,透過連接服務提供者將本地網路延伸至Azure。 在此架構中,ExpressRoute 提供安全的私人連線,用於大型主機與 Azure 之間傳輸資料定義檔案與擷取腳本。
Microsoft Entra ID 是一項身份與存取管理服務,可與本地目錄同步。 在此架構中,Microsoft Entra ID 為 mLogica 資料遷移叢集及 Azure 資源提供認證與存取控制。
Compute
- Azure 虛擬機器 是一項提供按需且可擴展運算資源的運算服務。 在此架構中,mLogica 資料遷移叢集運行於優化網路效能的 Azure Linux 虛擬機上。
資料庫和記憶體
Azure SQL、適用於 PostgreSQL 的 Azure 資料庫 以及 適用於 MySQL 的 Azure 資料庫 分別是針對 SQL Server、PostgreSQL 和 MySQL 的完整託管平台即服務(PaaS)。 在此架構中,這些服務提供高效能且高度可用的大型主機關聯資料、模擬非關聯資料及模擬虛擬儲存存取方法(VSAM)資料的選項。
Azure Cosmos DB 是一項完全託管的NoSQL資料庫服務,提供低延遲與彈性擴展性。 在此架構中,它會遷移非關聯式大型主機來源,如資訊管理系統(IMS)、整合資料庫管理系統(IDMS)及可適應資料庫系統(ADABAS)。
Blob 儲存體 是一項雲端儲存服務,提供高度可用、靜態加密、成本效益高且容量大的儲存。 在此架構中,Blob 儲存體 支援主機直接傳送二進位 SFTP 流量,並可透過 NFS 3.0 在 Linux 虛擬機上掛載容器,儲存序列檔案與載入腳本。
監視
Azure 監視器 是一個監控平台,能收集、分析並執行來自雲端及本地環境的遙測數據。 在此架構中,Azure 監視器 監控 mLogica 資料遷移叢集,並設定警示以進行主動管理。
Application Insights 是一項Azure 監視器功能,透過收集和分析遙測資料來監控應用程式效能。 在此架構中,Application Insights 會監視 mLogica 資料移轉叢集,以取得效能深入解析和診斷。
Azure 監視器 Logs 是一項Azure 監視器功能,用於收集並組織來自受監控資源的日誌與效能資料。 在此架構中,Azure 監視器 Logs 將多個來源的資料整合到單一工作區,包括來自 Azure 服務的平台日誌、VM agent 的日誌與效能資料,以及應用程式的使用與效能資料。
Log Analytics 是一項Azure 監視器功能,會執行日誌查詢,幫助你使用Azure 監視器日誌中收集的資料。 在此架構中,Log Analytics 分析 Blob 儲存體 儲存的 mLogic 載入腳本執行日誌。 它使用查詢語言來連接多個資料表的資料、彙整大量資料,並執行複雜的操作。
案例詳細資料
本文說明如何使用 mLogica 產品從大型主機系統進行大量資料遷移到 Azure。
潛在使用案例
此範例工作負載支援兩個主要使用情境:
工作負載重構或重構:將所有與工作負載相關的大型主機資料從大型主機移至Azure。 此數據報括資料庫,例如 Db2、IMS 和 IDMS,以及檔案。
Archival: 退役大型主機工作負載,並將資料保存於低成本的Azure儲存解決方案中。
考量
這些考量實現了 Azure Well-Architected 框架的支柱,這是一套指導原則,用以提升工作負載的品質。 如需詳細資訊,請參閱 Well-Architected Framework。
可靠性
可靠性有助於確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性的設計檢閱檢查清單。
除非您有覆寫這些建議的特定需求,否則請遵循下列一般建議:
將所有 Azure 資源集中在單一區域,以降低網路延遲。
將資料拆分成多個檔案並平行傳送到 Azure,而不是從大型主機傳送單一大型檔案。
使用 Azure 監視器 和 Application Insights來監控 mLogica 的資料遷移叢集。 設定警示以便於主動管理。
可用性
此範例工作流程描述了從大型主機遷移到 Azure 的資料,以重新定位、重構或歸檔工作負載。 通常你會在一個月的專案中執行這個獨立任務幾次。 這種情況不需要高可用性,但你可以設計 mLogica 資料遷移叢集來提供高可用性。
Azure 資料庫服務支持區域冗餘。 你可以設定故障切換(failover)來處理停電和維護時段。
安全性
安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性的設計檢閱檢查清單。 關於設計安全解決方案的一般指引,請參閱 Azure 安全文件。
Azure 支援 中的資料庫服務支援多種安全選項:
透過使用透明資料加密技術(TDE)進行靜止資料加密
透過傳輸層安全(TLS)進行傳輸中資料加密
在處理過程中使用Always Encrypted並搭配安全隔區進行資料加密
你可以使用 Microsoft Entra ID 來控制 mLogica 資料遷移叢集的認證與存取控制。 你可以透過使用 Microsoft Entra ID 和基於角色的存取控制(RBAC)來設定 Azure 資源的認證與授權。
TLS 負責加密 mLogica 資料遷移叢集與大型主機之間傳輸的資料。 你可以將 TLS 憑證儲存在 Azure Key Vault以提升安全性。 Secure Shell(SSH)會加密從大型主機到Blob 儲存體傳輸的資料。
大型主機的資料和載入腳本會暫時存放在 Blob 儲存體,靜態時會被加密。 遷移完成後,資料會從 Blob 儲存體 中刪除。
此範例工作流程使用 ExpressRoute 或 site-to-site VPN,提供私密且高效的連線,從本地環境連接Azure。
成本優化
成本優化著重於減少不必要的費用,並提升營運效率的方式。 如需詳細資訊,請參閱 成本優化的設計檢閱檢查清單。
透過使用 Azure SQL Database serverless 來擴展、暫停並恢復運算資源。 它會根據工作負載活動自動調整運算,讓你只為已使用的資源付費。
使用生命週期管理策略在 Azure Blob 儲存體 中在不同層級之間移動數據。
當一段時間沒有人存取時,將資料從較熱的接取層移到較冷的層級。 您也可以將資料從較冷存取層移至封存存取層。
使用 Azure Advisor 來尋找未充分利用的資源。 取得如何重新設定或合併資源以降低費用的建議。
使用Azure價格計算器估算此解決方案的Azure零件成本。
卓越營運
運營卓越涵蓋了部署應用程式及在生產環境中保持其正常運行的作業流程。 如需詳細資訊,請參閱 Operational Excellence的設計檢閱檢查清單。
你可以在軟體開發和團隊協作的每個階段,使用 Azure Azure DevOps 重新設計大型主機應用程式。 Azure DevOps 提供以下服務:
Azure Boards:敏捷規劃、工作項目追蹤、視覺化與報告。
Azure Pipelines:一種語言、平台及雲端獨立的持續整合與持續交付(CI/CD)平台,支援容器或 Kubernetes。
Azure Repos:雲端託管的私人 Git 倉庫。
Azure Artifacts:整合套件管理,支援來自公開或私有來源的 Maven、npm、Python 及 NuGet 套件串流。
Azure Test Plans:一套整合的計畫性與探索性測試解決方案。
效能效率
效能效率是指工作負載能夠有效率地調整以符合使用者需求。 如需詳細資訊,請參閱 效能效率的設計檢閱檢查清單。
請參考以下建議來提升效能:
如果你遷移多個大型獨立資料集,建議在多台虛擬機上部署 mLogica 資料遷移叢集,以最大化資料載入速度。 你可以同時從大型主機上傳多個資料集到 Blob 儲存體。
考慮 使用 SQL 資料庫無伺服器 來實現基於工作負載的自動擴展。 你可以透過自動化來調整其他 Azure 資料庫的規模,以滿足你的工作負載需求。 如需詳細資訊,請參閱 自動調整。
參與者
Microsoft 維護本文。 以下貢獻者撰寫了這篇文章。
主要作者:
- 桑迪普·坎德爾瓦爾 |首席工程建築師
欲查看私人LinkedIn檔案,請登入 LinkedIn.
後續步驟
- Azure 資料庫移轉指南
- Azure 監視器概述
- Blob 儲存體導論
- mLogica LIBER*IRIS
- 快速入門:在Azure入口建立 Linux 虛擬機
- VMs in Azure
- Azure Cosmos DB概述