共用方式為


使用進階功能重構大型主機應用程式

Azure 檔案
Azure Load Balancer
Azure SQL Database
Azure 儲存體
Azure 虛擬機器

進階的自動化 COBOL 重構解決方案可調整 COBOL 應用程式,以及以 CA-Gen、CA-Telon、Natural、ADSO 和其他舊版語言撰寫的應用程式和資料庫,以提供功能上相當於其舊版對應專案的功能應用程式與資料庫。 這可降低成本、允許更深入的整合,並啟用自定義以符合商務需求。 此外,它會解除鎖定全新的品質和延展性世界,從自動化測試到質量保證,以及利用 Docker 和 Kubernetes 從容器化部署和協調流程中獲益的能力。

大型主機架構

以下是可使用自動化分解的範例系統:

顯示大型主機系統的架構圖表,其中包含舊版語言應用程式。

Workflow

A。 使用者使用 TN3270、HTTP 和 HTTPS 等通訊協定,透過 TCP/IP 提供輸入。

B. 輸入會使用標準大型主機通訊協定抵達。

C. 批次和在線應用程式會處理輸入。

D. COBOL、PL/I、組合器和相容語言會在啟用的環境中執行。

E. 檔案和資料庫提供數據記憶體。 資料庫類型包括階層式、網路和關係型。

F. 服務會執行應用程式的工作。 通常啟用的服務包括程式執行、I/O 作業、錯誤偵測和保護。

G. 中間件和公用程式服務會管理磁帶記憶體、佇列、輸出和 Web 支援等工作。

H. 操作系統提供引擎與其執行之軟體之間的介面。

一. 分割區會執行個別的工作負載,或隔離環境中的工作類型。

Azure 架構

這是針對 Azure 進行重構時,上述範例系統的架構。 圖中的字母標示揭示了重構後的解決方案如何處理相應的主機功能。

在重構之後顯示 Azure 上系統的架構圖表。

下載此架構的 Visio 檔案

Workflow

  1. 輸入通常是透過來自遠端用戶端或其他 Azure 應用程式的 Azure ExpressRoute 來提供。 不論是哪一種情況,TCP/IP 連線都是連線到系統的主要方法。 使用者對 Web 應用程式的存取權是透過 TLS 連接埠 443。 您可以將 Web 應用程式的 UI 維持不變,以將終端使用者重新定型降至最低,也可以使用新式 UX 架構加以更新。 Azure Bastion 提供虛擬機 (VM) 的系統管理員存取權,藉由將開放埠降到最低,將安全性最大化。

  2. 在 Azure 中,應用程式計算叢集的存取權是透過 Azure 負載平衡器。 此方法允許向外延展計算資源來處理輸入工作。 視輸入而定,您可以在應用層級或網路通訊協定層級進行負載平衡。

  3. 進階支援在容器、VM 或 虛擬機器擴展集 中部署。 容器和 虛擬機器擴展集 與 VM 不同,可以快速相應放大和縮小。 將調整單位轉移到容器會優化基礎結構使用率。

  4. 應用程式伺服器會接收計算叢集中的輸入,並使用 Azure Cache for Redis 或遠端直接記憶體存取來共用應用程式狀態和數據(RDMA)。

  5. 應用程式叢集中的數據服務允許對永續性數據源進行多個連線。 可能的數據來源包括:

    • Azure SQL Database。
    • Azure Cosmos DB。
    • VM 上的資料庫,例如 Oracle 和 Db2。
    • 巨量數據存放庫,例如 Azure Databricks 和 Azure Data Lake。
    • 串流數據服務,例如 Kafka 和 Azure 串流分析。
  6. 應用程式伺服器會根據語言的功能裝載各種應用程式程式,例如 Java 類別或 COBOL 程式。

  7. 資料服務使用下列項目的組合:

    1. 高效能記憶體: Azure 進階 SSD 和 Azure Ultra 磁碟記憶體。

    2. 檔案記憶體:Azure NetApp Files 和 Azure 檔案儲存體。

    3. 標準記憶體:Azure Blob 儲存體、封存和備份。 備份可以是:

      1. 本地備援記憶體(LRS)。
      2. 區域備援記憶體 (ZRS)。
      3. 異地備援記憶體(GRS)。
      4. 異地區域備援記憶體 (GZRS)。

      如需備援的詳細資訊,請參閱 Azure 儲存體 備援

  8. Azure 平臺即服務 (PaaS) 資料服務提供可調整且高可用性的數據記憶體,以在叢集中的多個計算資源之間共用。 這些也可以是異地備援。

  9. Azure Data Factory 可以擷取數據,並與 Azure 和外部來源內的多個數據源同步處理。 Azure Blob 記憶體是外部數據源的常見登陸區域。

  10. Azure Site Recovery 提供 VM 和容器叢集元件的災害復原。

  11. 應用程式會連線到各種 PaaS 服務的私人端點。

元件

此範例提供下列 Azure 元件。 其中數個元件和工作流程可互換或選擇性,視您的案例而定。

  • Azure Bastion 是一項完全受控的服務,可透過傳輸層安全性 (TLS) 直接從 Azure 入口網站提供安全的遠端桌面通訊協定 (RDP) 或安全命令殼層 (SSH) 連線到虛擬網路 VM。 在此架構中,Azure Bastion 會藉由將裝載重構 COBOL 應用程式之 VM 的開啟埠降到最低,以最大化系統管理員存取安全性。

  • 適用於 Redis 的 Azure 快取 是完全受控的記憶體內部快取服務,可將快速快取層新增至應用程式架構,以高速處理大量。 Azure Cache for Redis 會以完全受控服務的優點,以簡單且符合成本效益的方式調整效能。 在此架構中,適用於 Redis 的 Azure 快取可讓應用程式伺服器在重構大型主機應用程式的計算叢集之間共用應用程式狀態和資料。

  • Azure Data Factory 是用於向外延展、無伺服器數據整合和數據轉換的擷取、轉換和載入 (ETL) 服務。 它提供無程式碼的 UI,以實現直覺式編寫和單一管理平台監控和管理。 在此架構中,Azure Data Factory 提供資料整合和轉換功能,以移轉和處理重構解決方案中的大型主機資料。

  • Azure 資料庫 是雲端式資料庫服務的集合,可提供完全受控的關聯式和 NoSQL 資料庫,以符合新式應用程式需求。 自動化基礎結構管理提供延展性、可用性和安全性。 在此架構中,Azure 資料庫提供持續性資料儲存體解決方案來取代大型主機資料庫系統。

    • Azure Cosmos DB 是完全受控且快速的 NoSQL 資料庫,具有任何規模的開放 API。 在此架構中,Azure Cosmos DB 會針對需要彈性、可調整資料儲存體的重構應用程式提供全域分散式 NoSQL 資料庫服務。

    • 適用於 PostgreSQL 的 Azure 資料庫 是以開放原始碼 PostgreSQL 關係資料庫引擎為基礎的完全受控資料庫。 超大規模 (Citus) 部署選項會針對需要更大規模和效能的應用程式使用分區處理,以跨多部機器調整查詢。 在此架構中,適用於 PostgreSQL 的 Azure 資料庫為需要 PostgreSQL 功能的重構應用程式提供開放原始碼關聯式資料庫服務。

    • SQL Database 是完全受控的 PaaS 資料庫引擎,一律會在最新穩定版本的 SQL Server 和具有高可用性的修補作業系統上執行。 內建 PaaS 資料庫管理功能包括升級、修補、備份和監視。 在此架構中,SQL Database 為需要 SQL Server 相容性的重構應用程式提供受控關聯式資料庫服務。

  • Azure Kubernetes Service (AKS) 是完全受控的 Kubernetes 服務,可用來部署和管理容器化應用程式。 AKS 提供無伺服器 Kubernetes、整合式持續整合和持續交付(CI/CD)體驗,以及企業級的安全性與治理。 在此架構中,AKS 提供容器協調流程,以部署和調整具有快速相應放大功能的重構 COBOL 應用程式。

  • Azure 負載平衡器 是一種網路負載平衡器,可將傳入流量分散到多個目標,以確保高可用性和可靠性。 您可以定義規則和其他準則來散發流量。 在此架構中,Load Balancer 提供對應用程式計算叢集的存取,並啟用橫向擴展計算資源來處理來自重構大型主機應用程式的輸入工作。

  • Azure Private Link 是一種網路服務,可提供從虛擬網路到 Azure 服務的私人連線。 Private Link 可消除公用因特網暴露,以簡化網路架構,並保護 Azure 端點之間的連線。 在此架構中,Private Link 可讓重構的應用程式安全地連線到各種 PaaS 服務的私人端點。

  • Azure 儲存體 可調整、保護所有數據、應用程式和工作負載的雲端記憶體。 在此架構中,Azure 儲存體提供各種儲存體選項,以支援重構大型主機應用程式的資料需求。

    • Azure 磁碟記憶體 是商務關鍵應用程式的高效能、持久區塊記憶體。 Azure 管理磁碟是 Azure 在其虛擬機(VM)上管理的區塊層級儲存磁碟。 可用的磁碟儲存類型包括超高磁碟儲存、高級 SSD 和 Azure 標準 SSD。 在此架構中,Azure 磁碟儲存體會使用進階 SSD 或超級磁碟儲存體,為重構的應用程式提供高效能儲存體。

    • Azure 檔案儲存體 是完全受控的檔案共用服務,可在雲端中提供完全受控的檔案共用,可透過業界標準伺服器訊息區塊 (SMB) 通訊協定存取。 雲端和內部部署 Windows、Linux 和 macOS 部署可以同時掛接檔案共用。 在此架構中,Azure 檔案儲存體提供共用檔案儲存體,可由重構應用程式的多個實例存取。

  • Azure VMS 是一項雲端運算服務,提供多種規模與類型的隨需、可擴展的運算資源。 透過虛擬機,你可以在不必購買和維護實體硬體的情況下,獲得虛擬化的彈性。 在此架構中,虛擬機承載重構後的大型主機應用程式,並提供可擴展的運算資源,作為容器化部署的替代方案。

  • Azure 虛擬網絡 是 Azure 專用網的基本建置組塊。 虛擬網路內的 VM 可以彼此、因特網和內部部署網路安全地通訊。 虛擬網路就像傳統的內部部署網路,但具有 Azure 基礎結構的優點,例如延展性、高可用性和隔離。 在此架構中,虛擬網路為重構大型主機系統的所有元件提供安全的網路基礎。

  • Blob 記憶體 是可調整且安全的物件記憶體,適用於封存、數據湖、高效能運算、機器學習和雲端原生工作負載。 在此架構中,Blob 儲存體會為重構大型主機應用程式的非結構化資料和封存需求提供物件儲存體。

  • ExpressRoute 是一種連線服務,可透過連線提供者的私人專用光纖連線,將您的內部部署網路延伸至 Azure。 ExpressRoute 會建立與 Azure 和 Microsoft 365 等雲端服務Microsoft連線。 在此架構中,ExpressRoute 會在內部部署大型主機環境與在 Azure 上執行的重構應用程式之間提供安全的高頻寬連線。

  • NetApp Files 是一項全受管的檔案儲存服務,提供由 NetApp 提供支援的企業級 Azure 檔案共用、讓企業輕鬆移轉和執行複雜的檔案型應用程式、而無需變更程式碼。 在此架構中、NetApp Files 為需要進階檔案系統功能的企業級重構大型主機應用程式提供高效能的檔案儲存設備。

  • Site Recovery 是一項災害復原服務,可將 Azure VM 鏡像至次要 Azure 區域,以便在 Azure 資料中心失敗時快速容錯移轉和資料復原。 在此架構中,Site Recovery 會為重構的大型主機應用程式提供商務持續性和災害復原功能。

案例詳細資料

有許多原因可以尋找 COBOL 型大型主機應用程式的替代方案,這些應用程式仍然很常見:

  • COBOL 和 CA-Gen/Natural/Telon/ASDO 開發人員即將淘汰,沒有人接受培訓來取代他們,導致人才池穩步減少。 隨著人才短缺的增長,依賴COBOL和其他舊版語言的成本和風險也隨之增加。
  • 這些應用程式不是針對新式 IT 所設計,導致整合困難,彈性有限。
  • IBM 大型主機硬體和軟體昂貴,輔助大型主機應用程式和資料庫的授權和維護費用也在上升。

進階的自動化 COBOL 重構解決方案可重新執行 COBOL 應用程式,以及撰寫其他舊版語言的應用程式,以提供雲端功能的應用程式和資料庫,其功能相當於其舊版對應專案。 這可降低成本、允許更深入的整合,並啟用自定義以符合商務需求。 此外,它會解除鎖定全新的品質和延展性世界,從自動化測試到質量保證,以及利用 Docker 和 Kubernetes 從容器化部署和協調流程中獲益的能力。

重構的應用程式:

  • 在功能上相當於原始專案。
  • 易於維護—它們可取得 SonarQube A 評等,並遵循面向物件的概念和範例。
  • 執行和或比原始專案更好。
  • 雲端就緒並使用標準 DevOps 工具鏈和最佳做法來傳遞。

重構程式包括流程正規化、程式代碼重組、數據層擷取、數據重建,以及用於重建的封裝。 此程式會識別複製的程式代碼,並建立共用的取代對象,簡化維護和管理性。 複雜的數據和控制相依性分析會找出並移除無效的程序代碼。

一旦進階解決方案重新產生COBOL應用程式和相關聯的資料庫,Java和 C# 開發人員就可以使用標準DevOps工具和 CI/CD 概念來擴充應用程式功能。 重構程式會保留商業規則並優化效能。 其他優點包括彈性、細微的服務定義,以及與雲端原生服務輕鬆整合。

自動化 COBOL 重構適用於大多數 COBOL 方言和平臺,包括 z/OS、OpenVMS 和 VME。

潛在使用案例

進階重構可讓許多案例受益,包括:

  • 尋求:
    • 將基礎結構現代化,並逸出與大型主機相關聯的過高成本、限制和殭化。
    • 藉由採用雲端原生和 DevOps,避免與舊版系統和應用程式相關的技能短缺風險。
    • 降低營運和資本支出成本。
  • 想要將大型主機工作負載遷移至雲端的組織,而不需要耗費大量成本且容易出錯的手動重寫。
  • 需要移轉業務關鍵應用程式的組織,同時維持與其他內部部署應用程式的持續性。
  • Teams 尋找 Azure 所提供的水平和垂直延展性。
  • 支援具有災害復原選項之解決方案的企業。

考量

這些考慮會實作 Azure Well-Architected Framework 的要素,這是一組可用來改善工作負載質量的指導原則。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

可靠性

可靠性可確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱 可靠性的設計檢閱檢查清單。

負載平衡器會內建此解決方案中的復原功能。 如果某個簡報或交易伺服器失敗,負載平衡器背後的其他伺服器可以根據規則和健康情況探查來執行工作負載。 強烈建議使用可用性設定組和異地備援記憶體。

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性的設計檢閱檢查清單。

此解決方案會使用 Azure 網路安全組來管理 Azure 資源之間的流量。 如需詳細資訊,請參閱網路安全性群組

適用於 Azure 的 Private Link SQL 資料庫 提供私人的直接連線,與 Azure VM 與 Azure SQL 資料庫 的 Azure 網路骨幹隔離。

Azure Bastion 藉由將開啟的埠降到最低,將系統管理員存取安全性最大化。 Bastion 透過 TLS 直接從 Azure 入口網站,提供虛擬網路 VM 的安全且順暢的 RDP/SSH 連線。

成本優化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化的設計檢閱檢查清單。

Azure 藉由識別正確的資源類型數目、分析一段時間的花費,以及調整以符合業務需求而不需要超支,來避免不必要的成本。

  • Azure 藉由在 VM 上執行來提供成本優化。 當 VM 不在使用中時,您可以關閉 VM,並編寫已知使用模式的排程腳本。 欲了解更多關於虛擬機實例成本優化的資訊,請參閱 Azure Well-Architected Framework
  • 此架構中的 VM 會使用進階 SSD 或 Ultra 磁碟記憶體。 如需磁碟選項和定價的詳細資訊,請參閱 受控磁碟 定價
  • SQL 資料庫 使用自動調整的無伺服器計算和超大規模資料庫記憶體資源,將成本優化。 如需 SQL 資料庫 選項和定價的詳細資訊,請參閱 Azure SQL 資料庫 定價
  • 使用定價計算機來預估此解決方案實作的成本。

卓越營運

卓越營運涵蓋部署應用程式的作業程式,並讓它在生產環境中執行。 如需詳細資訊,請參閱 Operational Excellence的設計檢閱檢查清單。

重構不僅支援更快速的雲端採用,也支持採用 DevOps 和敏捷式工作原則。 您在開發和生產部署選項方面具有完整的彈性。

效能效率

效能效率是工作負載調整的能力,以符合使用者以有效率的方式滿足其需求。 如需詳細資訊,請參閱 效能效率的設計檢閱檢查清單。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步