編輯

共用方式為


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

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

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

大型主機架構

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

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

工作流程

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

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

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

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

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

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

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

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

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

Azure 架構

這是針對 Azure 進行重構時,上述範例系統的架構。 請注意,圖表中的字母註標會顯示重構解決方案處理對應大型主機功能的位置。

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

下載此架構的 Visio 檔案

工作流程

  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 ExpressRoute 會透過來自連線提供者的私人專用光纖連線,將您的內部部署網路延伸至 Azure。 ExpressRoute 會建立與 Azure 和 Microsoft 365 等雲端服務Microsoft連線。
  • Azure Bastion 提供順暢的遠端桌面通訊協定 (RDP) 或安全殼層 (SSH) 連線到透過傳輸層安全性 Azure 入口網站 虛擬網路 VM 的連線。 Azure Bastion 藉由將開啟的埠降到最低,將系統管理員存取安全性最大化。
  • Azure Load Balancer 會將連入流量散發至計算資源叢集。 您可以定義規則和其他準則來散發流量。
  • Azure Kubernetes Service (AKS) 是完全受控的 Kubernetes 服務,可用來部署和管理容器化應用程式。 AKS 提供無伺服器 Kubernetes、整合式持續整合和持續傳遞 (CI/CD) 體驗,以及企業級的安全性與治理。
  • Azure 虛擬機器提供多種大小和類型的隨選、可擴充的運算資源。 有了 Azure VM,您就能獲得虛擬化的彈性,而不需要購買和維護實體硬體。
  • Azure 虛擬網絡 是 Azure 專用網的基本建置組塊。 虛擬網路內的 VM 可以彼此、因特網和內部部署網路安全地通訊。 虛擬網路就像傳統的內部部署網路,但具有 Azure 基礎結構的優點,例如延展性、高可用性和隔離。
  • Azure Private Link 提供從虛擬網路到 Azure 服務的私人連線。 Private Link 可消除公用因特網暴露,以簡化網路架構,並保護 Azure 端點之間的連線。
  • Azure Cache for Redis 會將快速快取層新增至應用程式架構,以高速處理大型磁碟區。 Azure Cache for Redis 會以完全受控服務的優點,以簡單且符合成本效益的方式調整效能。
  • Azure 儲存體 可調整、保護所有數據、應用程式和工作負載的雲端記憶體。
    • Azure 磁碟記憶體 是商務關鍵應用程式的高效能、持久區塊記憶體。 Azure 受控磁碟是 Azure VM 上由 Azure 管理的區塊層級記憶體磁碟區。 可用的磁碟記憶體類型為 Ultra 磁碟記憶體、進階 SSD、標準 SSD 和標準 HDD。 此架構會使用進階 SSD 或 Ultra 磁碟記憶體。
    • Azure 檔案儲存體 提供雲端中完全受控的檔案共用,可透過業界標準伺服器消息塊 (SMB) 通訊協定存取。 雲端和內部部署 Windows、Linux 和 macOS 部署可以同時掛接檔案共用。
    • Azure NetApp Files 提供由 NetApp 提供的企業級 Azure 檔案共用。 Azure NetApp Files 可讓企業輕鬆地移轉及執行複雜的檔案型應用程式,而不需要變更程序代碼。
    • Azure Blob 儲存體 適用於封存、數據湖、高效能運算、機器學習和雲端原生工作負載的可調整且安全的物件記憶體。
  • Azure 資料庫 提供完全受控關係型和 NoSQL 資料庫的選擇,以符合新式應用程式的需求。 自動化基礎結構管理提供延展性、可用性和安全性。
    • Azure SQL 資料庫 是完全受控的 PaaS 資料庫引擎。 SQL 資料庫 一律會在最新穩定版本的 SQL Server 和具有高可用性的修補作業系統上執行。 內建 PaaS 資料庫管理功能包括升級、修補、備份和監視。 您可以專注於領域特定的業務關鍵資料庫管理和優化。
    • 適用於 PostgreSQL 的 Azure 資料庫 是以開放原始碼 PostgreSQL 關係資料庫引擎為基礎的完全受控資料庫。 針對需要更大規模和效能的應用程式,超大規模資料庫 (Citus) 部署選項會使用分區化,在多部計算機上調整查詢。
    • Azure Cosmos DB 是完全受控且快速的 NoSQL 資料庫,具有任何規模的開放 API。
  • 如果 Azure 數據中心失敗,Azure Site Recovery 會將 Azure VM 鏡像至次要 Azure 區域,以進行快速故障轉移和數據復原。
  • Azure Data Factory 是用於向外延展、無伺服器數據整合和數據轉換的擷取、轉換和載入 (ETL) 服務。 它提供無程式碼的 UI,可用於直覺撰寫和單一虛擬管理平台的監視與管理。

案例詳細資料

有許多原因可以尋找 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 所提供的水平和垂直延展性。
  • 支援具有災害復原選項之解決方案的企業。

考量

針對高度可用且安全的系統,併入Microsoft Azure Well-Architected Framework下列要素:

可用性

Operations

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

安全性

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

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

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

復原

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

成本最佳化

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

參與者

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

主要作者:

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

下一步