使用 Astadia 重構大型主機應用程式

Azure ExpressRoute
Azure Bastion
Azure Load Balancer
Azure Private Link
Azure Site Recovery

Astadia 的自動化 COBOL 重構解決方案提供雲端式應用程式和資料庫,這些應用程式和資料庫會執行與舊版對應專案相同的動作。 重構的應用程式會在 Azure 虛擬機器 提供的虛擬機中以 Azure 應用程式的形式執行。 Azure ExpressRoute 可讓使用者使用,而 Azure Load Balancer 會分散負載。

大型主機架構

以下是大型主機架構,代表適合 Astadia 重構解決方案的系統種類。

適用於 Astadia 重構的大型主機架構圖表。

下載此架構的 Visio 檔案

資料流程

  1. TN3270 和 HTTP(S) 使用者輸入會透過 TCP/IP 抵達。
  2. 大型主機輸入使用標準大型主機通訊協定。
  3. 有批次和在線應用程式。
  4. 以 COBOL、PL/I、Assembler 和其他語言撰寫的應用程式會在啟用的環境中執行。
  5. 數據會保留在檔案和階層式、網路和關係資料庫中。
  6. 常用的服務包括程式執行、I/O 作業、錯誤偵測,以及環境中的保護。
  7. 中間件和公用程式服務會管理磁帶記憶體、佇列、輸出和 Web 活動。
  8. 每個作業系統都會在其自己的分割區中執行。
  9. 分割區會隔離不同的工作負載或工作類型。

Azure 架構

以下是將大型主機功能取代為重構應用程式的 Azure 架構。

Astadia 重構解決方案的架構圖表。

下載此架構的 Visio 檔案

資料流程

  1. 輸入來自遠端用戶端,以及透過 ExpressRoute 的其他使用者。 TCP/IP 是連線到系統的主要方式。
    • 內部部署用戶會透過傳輸層安全性 (TLS) 埠 443 存取 Web 應用程式。 使用者介面維持不變,以將終端使用者重新定型降至最低。
    • 內部部署系統管理存取會使用 Azure Bastion 主機。
    • Azure 使用者會透過虛擬網路對等互連連線到系統。
  2. Load Balancer 會管理應用程式計算叢集的存取權。 Load Balancer 支援向外延展計算資源來處理輸入。 它會根據應用程式輸入,在層級 7、應用層級或層級 4、網路層級運作。
  3. Astadia 執行時間連結庫會在 Azure 虛擬機器 上執行重構的應用程式。 計算資源會使用具有加速網路的 Azure 進階版 SSD 或 Azure Ultra 磁碟 儲存體 受控磁碟。
  4. 應用程式叢集中的數據服務支援對永續性數據源的多個連線。 Azure Private Link 提供從虛擬網路內部到 Azure 服務的私人連線。 數據源包括 Azure SQL 資料庫 和 Azure PostgreSQL 等數據服務。
  5. 數據記憶體是本機備援或異地備援,視使用量而定。 這是混合的:
    • 高效能記憶體:
      • 進階 SSD
      • Ultra 磁碟儲存體
    • Azure 標準 SSD,包括 Blob、封存和備份記憶體
  6. Azure 資料服務提供可調整且高可用性的數據記憶體,可計算叢集共用。 記憶體可以是異地備援。
    • Azure Blob 儲存體 做為外部數據源數據的登陸區域。
    • Azure Data Factory 會擷取數據,並同步處理多個 Azure 和外部數據源。
  7. Azure Site Recovery 可為虛擬機(VM)和容器叢集元件提供災害復原。
  8. Microsoft Entra ID、Azure 網路、Azure DevOps、Azure 串流分析、Azure Databricks、GitHub 和 Power BI 等服務很容易與現代化系統整合。

元件

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

案例詳細資料

公司應該取代 COBOL 和大型主機系統的重要原因如下:

  • 網域體驗不足: 瞭解 COBOL 和大型主機技術的開發人員即將淘汰,且很少有開發人員經過訓練來取代它們。 人才庫穩步減少,依賴COBOL上升的成本和風險。
  • 彈性有限: COBOL 和支援它的基礎系統不是針對新式雲端式應用程式所設計。 它們不靈活,難以整合。
  • 成本過高: IBM 大型主機硬體和軟體成本很高。 輔助大型主機應用程式和資料庫的授權和維護費用正在增加。

COBOL 和大型主機系統有前進的方向。 Astadia 的自動化 COBOL 重構解決方案提供雲端式應用程式和資料庫,這些應用程式和資料庫會執行與舊版對應專案相同的動作。 重構的應用程式會在 Azure 虛擬機器 所提供的虛擬機中,以 Azure 應用程式的形式執行。 Azure ExpressRoute 可讓使用者使用,而 Azure Load Balancer 會分散負載。

重構可降低成本,並允許更深入的整合和自定義,以符合商務需求。 COBOL 和大型主機的麻煩和成本讓位給新的品質和延展性世界,包括:

  • 自動化測試和質量保證。
  • 用於容器化部署和協調流程的 Docker 和 Kubernetes。

重構解決方案會建立下列應用程式:

  • 在功能上相當於其原始對應專案。
  • 是以您選擇的 Java 或 C# 撰寫。
  • 遵循面向物件的概念和範例。
  • 易於維護。
  • 執行以及它們所取代的應用程式,或更好。
  • 雲端就緒。
  • 使用標準 DevOps 工具鏈和最佳做法來傳遞。

重構程式包括流程正規化、程式代碼重組、數據層擷取、數據重建,以及用於重建的封裝。 它會識別複製的程序代碼,並將它取代為共享物件,以簡化維護和管理性。 此程式也會藉由分析數據和控制相依性來識別並移除無效的程序代碼。

Java 和 C# 開發人員會使用標準 DevOps 工具和持續整合和持續傳遞 (CI/CD) 概念,來調整重構的應用程式以進行雲端優化。 這類工具和方法不適用於大型主機應用程式。 優化可提供效率與業務優勢,例如彈性、細微的服務定義,以及與雲端原生服務輕鬆整合。

潛在的使用案例

自動化重構適用於大多數 COBOL 方言和平臺,包括 z/OS、OpenVMS 和 VME。 使用它的候選專案包括尋求:

  • 將基礎結構現代化,並逃避大型主機系統的高成本、限制和僵化。
  • 避免 COBOL 和大型主機開發人員短缺的風險。
  • 降低營運成本和資本支出。
  • 將大型主機工作負載移至雲端,而不需要長時間手動重寫的成本和風險。
  • 將任務關鍵性應用程式移轉至雲端,同時與其他內部部署應用程式維持持續性。
  • 將其系統水準和垂直調整。
  • 實作災害復原技術。

考量

本節中以 Microsoft Well-Architected Framework 為基礎的考慮適用於此解決方案。

DevOps

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

可靠性

  • 架構會使用 Site Recovery 將 VM 鏡像到次要 Azure 區域,以在 Azure 數據中心失敗時快速故障轉移和災害復原。
  • SQL 資料庫 的自動故障轉移群組功能會藉由管理資料庫復寫和故障轉移至次要區域來提供數據保護。 如需詳細資訊,請參閱自動故障轉移群組概觀和最佳做法(Azure SQL 資料庫)。
  • 復原功能內建於此解決方案中,方法是使用Load Balancer。 如果某個簡報或交易伺服器失敗,其他伺服器會執行工作負載。
  • 建議您為 VM 建立可用性設定組,以提高可用性。 如需詳細資訊,請參閱 可用性設定組概觀
  • 建議您使用異地復寫來提升可靠性。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。

延展性

此解決方案支援在容器、VM 或 虛擬機器擴展集 中部署。 容器和 虛擬機器擴展集,與 VM 不同,相應放大和快速相應放大。 將調整單位轉移到容器會優化基礎結構使用率。

安全性

  • 此解決方案會使用 Azure 網路安全組來管理來自 Azure 資源的流量。 如需詳細資訊,請參閱網路安全性群組
  • Azure SQL 資料庫 的 Private Link 提供與 Azure 網路骨幹隔離的私人直接連線,並在 VM 與 SQL 資料庫 之間執行。
  • Azure Bastion 藉由將開啟的埠降到最低,將系統管理員存取安全性最大化。 它可直接透過 TLS 從 Azure 入口網站,對虛擬網路 VM 提供安全且順暢的 RDP/SSH 連線。

成本最佳化

  • Azure 可藉由識別正確的資源類型數目、分析一段時間的花費,以及事先調整以符合商務需求而不需要超支,來避免不必要的成本。
  • Azure 藉由在 VM 上執行,將成本降至最低。 您可以關閉未使用的 VM,並提供已知使用模式的排程。 如需 VM 成本優化的詳細資訊,請參閱 虛擬機器
  • 此架構中的 VM 會使用 進階版 SSD 或 Ultra 磁碟 儲存體。 如需磁碟選項和定價的詳細資訊,請參閱 受控磁碟 定價
  • SQL 資料庫 使用自動調整的無伺服器計算和超大規模資料庫記憶體資源,將成本優化。 如需 SQL 資料庫 選項和定價的詳細資訊,請參閱 Azure SQL 資料庫 定價
  • 使用定價計算機來預估此解決方案實作的成本。

參與者

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

主體作者:

其他參與者:

下一步

  • 如需詳細資訊,請聯絡 legacy2azure@microsoft.com。

Azure

Astadia 網站

其他