大型主機現代化: DevOps 在具有微焦點的 AWS 上 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

大型主機現代化: DevOps 在具有微焦點的 AWS 上

創建者容凱文 (AWS)

資料來源:IBM z/OS 大型主機

目標:AWS

R 類型:不適用

環境:PoC 或試點

技術: DevOps; 基礎設施

AWS 服務:Amazon EC2; AWS CloudFormation; AWS CodeBuild; AWS; AWS CodeCommit; AWS CodeDeploy; AWS Systems Manager; AWS CodePipeline

Summary

客戶挑戰

在大型主機硬體上執行核心應用程式的 Organizations,在硬體需要擴充以滿足數位創新的需求時,通常會遇到一些挑戰。這些挑戰包括以下限制。 

  • 大型主機開發與測試環境無法擴充,因為大型主機硬體元件的不靈活性,以及變更的成本高昂。

  • 大型主機開發正面臨技能短缺,因為新開發人員並不熟悉,也對傳統大型主機開發工具不感興趣。現代化技術,例如容器、持續整合/持續交付 (CI/CD) 管線,以及現代化的測試架構並不適用於大型主機開發。

模式結果

為了解決這些挑戰,Amazon Web Services (AWS) 和 AWS 合作夥伴網路 (APN) 合作夥伴 Micro Focus 已經合作建立了這種模式。該解決方案旨在幫助您實現以下結果。

  • 改善開發人員生產力 開發人員可以在幾分鐘內獲得新的大型主機開發實例。

  • 使用 AWS 雲端建立具有幾乎無限容量的新大型主機測試環境。

  • 快速佈建新的大型主機 CI/CD 基礎架構。使用 AWS 和 AWS 系統管理員可在一小時內完 CloudFormation 成 AWS 上的佈建。

  • AWS DevOps 工具的原生用於大型主機開發,包括 AWS CodeBuild、AWS CodeCommit CodePipeline CodeDeploy、AWS 和亞馬遜彈性容器登錄 (Amazon ECR)。

  • 將傳統的瀑布式開發轉變為大型主機專案的敏捷開發。

技術摘要

在這種模式中,目標堆棧包含以下組件。

邏輯元件

實作方案

描述

源代碼存儲庫

微焦點 AccuRev 服務器 CodeCommit, Amazon ECR

源代碼管理-該解決方案使用兩種類型的源代碼。 

  • 大型機源代碼,例如 COBOL,JCL 等 

  • AWS 基礎設施範本和自動化腳本 

這兩種類型的源代碼都需要版本控制,但它們在不同的 SCM 中進行管理。部署到大型主機或 Micro Focus 企業伺服器的原始程式碼是在 Micro Focus 伺服器中進行管理。 AccuRev AWS 範本和自動化指令碼在中管理 CodeCommit。Amazon ECR 用於碼頭映像存儲庫。

企業開發者實例

Amazon Elastic Compute Cloud (Amazon EC2),微焦點企業 Eclipse 開發人員

大型主機開發人員可以使用適用於 Eclipse 的微焦點企業開發人員,在 Amazon EC2 中開發程式碼。這樣就不需要依賴大型主機硬體來撰寫和測試程式碼。 

微焦點授權管理

微焦點 License Manager

針對集中式 Micro Focus 授權管理和管理,此解決方案會使用 Micro Focus License Manager 來代管所需的授權。

CI/CD 管道

CodePipeline,, CodeBuild CodeDeploy, 微焦點企業開發人員在一個容器, 微焦點企業測試服務器在一個容器, 微焦點企業服務器

大型主機開發團隊需要 CI/CD 管線來執行程式碼編譯、整合測試和回歸測試。在 AWS 中, CodePipeline 並且 CodeBuild 可以在容器中與 Micro Focus 企業開發人員和企業測試服務器原生合作。

先決條件和限制

先決條件

名稱

描述

py3270

是一個 Python 接口,它是一個 IBM 3270 終端仿真器。它為 x3270 或 s3270 子進程提供了一個 API。

X3270

x3270 是一款適用於 X 視窗系統和視窗的 IBM 3270 終端模擬器。 這可以由開發人員在本地進行單元測試。

機器人框架-大型主機 -3270 圖書館

大型機 3270 是一個基於 py3270 項目的機器人框架庫。

微焦點攝影

Micro Focus Verastream 是一個整合平台,可讓您以行動應用程式、網路應用程式和 SOA 網路服務的測試方式來測試大型主機資產。

微焦點統一功能測試(UFT)安裝程序和許可證

Micro Focus 統一功能測試是為軟體應用程式和環境提供功能和回歸測試自動化的軟體。

微焦點企業伺服器安裝程式和授權

企業服務器為大型主機應用程序提供了運行時環境。

微焦點企業測試伺服器安裝程式和授權

微焦點企業測試伺服器是 IBM 大型主機應用程式測試環境

適用於 Windows 和 Linux 作業系統的伺服器的微焦點 AccuRev 安裝程式和授權,以及微焦點安裝程式和授權 AccuRev

AccuRev 提供源代碼管理(SCM)。該 AccuRev 系統是專為開發一組文件的團隊使用而設計的。

微焦點企業開發 Eclipse 安裝程式、修補程式和授權

企業開發人員為大型主機開發人員提供一個平台,以開發和維護核心大型主機線上和批次應用程式。

限制

  • 在 CodeBuild中不支援建置視窗泊塢視窗映像檔。這個回報的問題需要 Windows 核心 /HC 和碼頭群組的支援。解決方法是通過使用 Systems Manager 創建 Docker 映像構建手冊。此模式使用因應措施來構建 Eclipse 和微焦點企業測試服務器容器映像的微焦點企業開發人員。 

  • Windows 尚未支援虛擬私人雲端 (VPC) 連線,因此該病毒碼不會使用 Micro Focus License Manager 來管理 Micro Focus 企業開發人員和 Micro Focus 企業測試伺服器容器中的授權。 CodeBuild

產品版本

  • 微焦點企業開發者 5.5 或更新版本

  • 微焦點企業測試伺服器 5.5 或更新版本

  • 微焦點企業伺服器 5.5 或更新版本

  • 微對焦 AccuRev 7.x 或更新版本

  • 微焦點企業開發人員和企業測試服務器的 Windows 碼頭基礎映像:微軟/點網絡框架 -4.7.2 運行時

  • AccuRev 客戶端的 Linux 碼頭基礎映像:亞馬遜:2

架構

大型主機環境

在傳統的大型主機開發中,開發人員需要使用大型主機硬體來開發和測試程式。它們面臨容量限制,例如,開發/測試環境的每秒限制百萬個指令 (MIPS),而且必須仰賴大型主機電腦上可用的工具。

在許多組織中,大型主機開發遵循瀑布式開發方法,團隊仰賴長週期來發佈變更。這些發行週期通常比數位產品開發更長。  

下圖顯示共用大型主機硬體進行開發的多個大型主機專案。在大型主機硬體中,向外擴充開發和測試環境以進行更多專案的成本很高。

 

 

AWS 架構

此模式將大型主機開發延伸到 AWS 雲端。首先,它使用 Micro Focus AccuRev SCM 在 AWS 上託管大型主機原始程式碼。然後,Micro Focus 企業開發人員和 Micro Focus 企業測試伺服器可用於在 AWS 上建立和測試大型主機程式碼。 

下列各節說明樣式的三個主要元件。

1。供應鏈

在 AWS 中,該模式使用 Micro Focus AccuRev 為大型主機原始程式碼建立一組 SCM 工作區和版本控制。其以串流為基礎的架構可讓多個團隊進行 parallel 大型主機開發。若要合併變更,請 AccuRev 使用推進概念。若要將該變更新增至其他工作區,請 AccuRev 使用更新概念。

在專案層級,每個團隊都可以在中建立一或多個串流, AccuRev 以追蹤專案層級的變更。這些稱為專案串流。這些專案串流是從相同的父資料流繼承而來。父流用於合併來自不同項目流的更改。

每個專案串流都可以將程式碼提升至 AccuRev,而且會設定促銷後觸發器來啟動 AWS CI/CD 管道。項目流更改的成功構建可以提升到其父流以進行更多回歸測試。 

通常情況下,父流被稱為系統集成流。當從專案串流升級至系統整合串流時,促銷後觸發程序會啟動另一個 CI/CD 管線以執行回歸測試。

除了大型主機程式碼之外,此模式還包括 AWS CloudFormation 範本、Systems Manager 自動化文件和指令碼。遵循 infrastructure-as-code 最佳實務,它們在 AWS 中受到版本控制。 CodeCommit 

如果您需要將大型主機程式碼同步回大型主機環境以進行部署,Micro Focus 提供企業同步解決方案,該解決方案可將 AccuRev SCM 的程式碼同步回大型主機供應鏈管理。

2. 開發人員和測試環境

在大型組織中,擴充超過一百個甚至超過一千個大型主機開發人員具有挑戰性。為了解決此限制,該模式使用 Amazon EC2 Windows 執行個體進行開發。在實例上,微焦點企業開發人員 Eclipse 工具已安裝。開發人員可以在執行個體本機上執行所有大型主機程式碼測試和偵錯。 

AWS Systems Manager 狀態管理員和自動化文件可用來自動化開發人員執行個體佈建。建立開發人員執行個體的平均時間在 15 分鐘內。準備好下列軟體和組態。

  • AccuRev 用於簽出並提交源代碼的 Windows 客戶端 AccuRev

  • 適用於 Eclipse 的微焦點企業開發人員工具,可在本機撰寫、測試和偵錯大型主機程式碼

  • 開源測試框架 Python 行為驅動開發(BDD)測試框架行為,py3270 和 x3270 模擬器,用於創建腳本來測試應用程序

  • Docker 開發人員工具,用於構建企業測試服務器 Docker 映像並在企業測試服務器 Docker 容器中測試應用程序 

在開發週期中,開發人員使用 EC2 執行個體在本機開發和測試大型主機程式碼。成功測試本地更改後,開發人員將更改升級到 AccuRev 服務器中。 

3. CI/CD 管道

在該模式中,CI/CD 管道在部署到生產環境之前用於集成測試和回歸測試。 

如 SCM 一節所述, AccuRev 使用兩種類型的串流:專案串流和整合串流。每個流都與 CI/CD 管道連接起來。為了執行 AccuRev 伺服器和 AWS 之間的整合 CodePipeline,該模式使用推廣 AccuRev 後指令碼建立事件以啟動 CI/CD。

例如,當開發人員提升對專案資料流的變更時 AccuRev,它會啟動推廣後指令碼,以便在 AccuRev Server 中執行。然後指令碼會將變更的中繼資料上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體,以建立 Amazon S3 事件。此事件將啟動要執行的 CodePipeline 已設定管線。 

整合串流及其相關聯管線會使用相同的事件起始機制。 

在 CI/CD 管道中,搭配 Micro Focus AccuRev Linux CodePipeline CodeBuild 用戶端容器搭配使用,從串流中檢出最新的 AccuRev 程式碼。然後管道開始使 CodeBuild 用 Micro Focus 企業開發人員 Windows 容器來編譯原始程式碼,並使用 Micro Focus 企業測試伺服器 Windows 容器中 CodeBuild 測試大型主機應用程式。

CI/CD 管道是使用 AWS CloudFormation 範本建立的,而藍圖將用於新專案。透過使用範本,專案在 AWS 中建立新的 CI/CD 管道需要不到一個小時的時間。

為了在 AWS 上擴展您的大型主機測試能力,該模式建立了 Micro Focus DevOps 測試套件、微焦點遠端流和 Micro Focus UFT 伺服器。透過使用現代 DevOps 工具,您可以根據需要在 AWS 上執行任意數量的測試。

下圖顯示了 AWS 上採用 Micro Focus 的大型主機開發環境範例。

 

目標技術堆疊

本節將詳細介紹樣式中每個元件的架構。

1。源代碼存儲庫 — AccuRev 供應鏈多

微焦點 AccuRev 供應鏈管理設置為管理大型主機源代碼版本。為了獲得高可用性, AccuRev 支援主要和複本模式。在主要節點上執行維護時,操作員可容錯移轉至複本。 

為了加快 CI/CD 管道的回應速度,該模式會使用 Amazon E CloudWatch vents 偵測原始程式碼變更並啟動管道。

  1. CodePipeline 已設定為使用 Amazon S3 來源。

  2. CloudWatch 事件規則設定為從來源 S3 儲存貯體擷取 S3 事件。

  3. 「 CloudWatch 事件」規則會將目標設定至管線。

  4. AccuRev SCM 設定為在推廣完成後在本機執行推廣後指令碼。

  5. AccuRev SCM 會產生包含促銷中繼資料的 XML 檔案,而指令碼會將 XML 檔案上傳至來源 S3 儲存貯體。

  6. 上傳之後,來源 S3 儲存貯體會傳送符合 CloudWatch 事件規則的事件,而 CloudWatch 事件規則會啟動執 CodePipeline 行。 

當管道運行時,它會啟動一個 CodeBuild 項目,使用 AccuRev Linux 客戶端容器從關聯的流中檢出最新的大型主機代碼。 AccuRev   

下圖顯示 AccuRev 伺服器設定。

2. 企業開發者範本 

該模式使用 Amazon EC2 範本來簡化開發人員執行個體的建立。通過使用狀態管理器,它可以將軟件和許可證設置一致地應用於 EC2 實例。

Amazon EC2 範本根據其 VPC 內容設定和預設執行個體設定建立,並遵循企業標記要求。透過使用範本,專案團隊可以建立自己的新開發實例。 

當開發人員執行個體啟動時,Systems Manager 員會透過與標籤建立關聯,使用狀態管理員來套用自動化。自動化包括下列一般步驟。

  1. 安裝 Micro Focus 企業開發者軟體並安裝修補程式。

  2. 安裝微焦點 AccuRev 用戶端。

  3. 安裝預先設定的指令碼,供開發人員加入 AccuRev 串流。初始化日食工作區。

  4. 安裝開發工具,包括 x3270、3270 和泊塢視窗。

  5. 設定授權設定以指向 Micro Focus License Manager 負載平衡器。

下圖顯示 Amazon EC2 範本建立的企業開發人員執行個體,其中包含由狀態管理員套用到執行個體的軟體和組態。企業開發人員執行個體會連線到 Micro Focus License Manager 以啟用授權。

 

3.  CI/CD 管道

如 AWS 架構一節所述,在模式中,有專案層級的 CI/CD 管道和系統整合管道。每個大型主機專案團隊都會建立管線或多個 CI/CD 管線,以建置他們在專案中開發的程式。這些項目 CI/CD 管道從關聯 AccuRev 的流檢出源代碼。 

在專案團隊中,開發人員會在相關 AccuRev 資料流中宣傳其程式碼。然後,促銷活動會啟動專案管道以建置程式碼並執行和整合測試。 

每個 CodeBuild 項目 CI/CD 管道都使用微焦點企業開發人員工具 Amazon ECR 圖像和微焦點企業測試服務器工具 Amazon ECR 圖像的項目。 

CodePipeline 並 CodeBuild 用於建立 CI/CD 管線。因為 CodeBuild 沒 CodePipeline 有預付費用或承諾,您只需按實際用量付費。相較於大型主機硬體,AWS 解決方案可大幅縮短硬體佈建前置時間,並降低測試環境的成本。

在現代開發中,使用多種測試方法。例如,測試驅動開發(TDD),BDD 和機器人框架。透過這種模式,開發人員可以使用這些現代工具進行大型主機測試。例如,通過使用 x3270,py3270 和行為 python 測試工具,您可以定義在線應用程序的行為。您也可以在這些 CI/CD 管線中使用建置大型主機 3270 機器人架構。

下圖顯示了團隊流 CI/CD 管道。 

下圖顯示了 CodePipeline 在大型機器人 3270 機器人框架中生成的項目 CI/CD 測試報告。

下圖顯示了由 CodePipeline 在 Py3270 和行為 BDD 生成的項目 CI/CD 測試報告。

成功通過項目級測試後,測試的代碼被手動升級到 AccuRev SCM 中的集成流。在團隊對其項目管道的測試覆蓋範圍有信心之後,您可以自動執行此步驟。

當程式碼升級時,系統整合 CI/CD 管線會檢查合併的程式碼,並執行回歸測試。合併的程式碼會從所有 parallel 專案串流推進。

根據測試環境所需的精細晶粒度,客戶可以在不同的環境中擁有更多系統整合的 CI/CD 管線,例如 UAT、預生產。 

在模式中,在系統集成管道中使用的工具是微焦點企業測試服務器,微聚焦 UFT 服務器和微焦點 Verastream。所有這些工具都可以部署到 Docker 容器中,並與 CodeBuild.

成功測試大型主機程式之後,成品會透過版本控制存放在 S3 儲存貯體中。 

下圖顯示了一個系統集成的 CI/CD 管道。

 

在系統整合 CI/CD 管線中成功測試成品之後,即可將其升級以進行生產部署。 

如果您需要將原始程式碼部署回大型主機,Micro Focus 提供企業同步解決方案,讓原始程式碼從 AccuRev 回到大型主機努力同步。

下圖顯示將成品部署到 Micro Focus 企業伺服器的生產 CI/CD 管線。在此範例中, CodeDeploy 協調已測試的大型主機成品部署到 Micro Focus 企業伺服器中。

除了 CI/CD 管道的架構說明之外,您還可以閱讀 AWS DevOps 部落格文章使用 Micro Focus 企業套件在 AWS 上自動執行數千個大型主機測試,以取得有關在和中測試大型主機應用程式的詳細資訊。 CodeBuild CodePipeline如需在 AWS 上進行大型主機測試的最佳實務和詳細資訊,請參閱部落格文章。

工具

工具

AWS 自動化工具

Micro Focus 工具

其他工具

史诗

任務描述所需技能
使用 AWS 部署主要 AccuRev SCM 伺服器 CloudFormation。AWS CloudFormation
建立 AccuRev 管理員使用者。

登入 AccuRev SCM 伺服器,然後執行 CLI 命令以建立系統管理員使用者。

AccuRev SCM 伺服器管理
建立 AccuRev 串流。

創建 AccuRev 按順序從上層流繼承的流:生產,系統集成,團隊流。

AccuRev 供應鏈管理
建立開發人員 AccuRev 登入帳戶。

使用 AccuRev SCM CLI 命令為大型主機開發人員建立使用 AccuRev 者登入帳戶。

AccuRev 供應鏈管理
任務描述所需技能
使用 AWS 部署 Amazon EC2 啟動範本 CloudFormation。

使用 AWS CloudFormation 為微型焦點企業開發人員執行個體部署 Amazon EC2 啟動範本。此範本包含 Micro Focus 企業開發人員執行個體的 Systems Manager 員自動化文件。

AWS CloudFormation
從 Amazon EC2 範本建立企業開發人員執行個體。AWS 主控台登入和大型主機開發人員技能
任務描述所需技能
創建微焦點企業開發人員工具 Docker 映像。

使用 Docker 命令和微焦點企業開發人員工具 Docker 文件來創建 Docker 映像。

Docker
在 Amazon ECR 中創建碼頭存儲庫。

在 Amazon ECR 主控台上,為微型焦點企業開發人員泊塢視窗映像建立存放庫。

Amazon ECR
將微焦點企業開發人員工具 Docker 映像推送到 Amazon ECR。

執行 Docker 推送命令,以推送企業開發人員工具 Docker 映像檔,將其儲存在 Amazon ECR 的 Docker 儲存庫中。

Docker
任務描述所需技能
建立微焦點企業測試伺服器 Docker 影像。

使用 Docker 命令和微焦點企業測試伺服器 Docker 檔案來建立 Docker 映像檔。

Docker
在 Amazon ECR 中創建碼頭存儲庫。

在 Amazon ECR 主控台上,為微焦點企業測試伺服器泊塢視窗映像建立 Amazon ECR 儲存庫。

Amazon ECR
將微焦點企業測試伺服器泊塢視窗映像推送至 Amazon ECR。

執行 Docker 推送命令,以在 Amazon ECR 中推送並儲存企業測試伺服器泊塢視窗映像檔。

Docker
任務描述所需技能
建立 AWS CodeCommit 儲存庫。

在 CodeCommit 主控台上,為基礎設施和 AWS CloudFormation 程式碼建立以 Git IT 為基礎的儲存庫。

AWS CodeCommit
將 AWS CloudFormation 範本和自動化程式碼上傳到 CodeCommit 存放庫。

執行 Git push 命令,將 AWS CloudFormation 範本和自動化程式碼上傳到儲存庫。

Git
透過以下方式部署團隊串流 CI/CD 管線。 CloudFormation

使用準備好的 AWS CloudFormation 範本部署團隊串流 CI/CD 管道。

AWS CloudFormation
任務描述所需技能
創建微型聚焦 UFT 泊塢視窗圖像。

使用碼頭命令和微焦點 UFT 碼頭文件來創建微焦點泊塢窗圖像。

Docker
在 Amazon ECR 中為微焦點 UFT 映像創建碼頭存儲庫。

在 Amazon ECR 主控台上,為微型聚焦 UFT 映像檔建立碼頭儲存庫。

Amazon ECR
將微焦 UFT 泊塢視窗圖像推送到 Amazon ECR。

執行 Docker 推送命令,以在 Amazon ECR 中推送並儲存企業測試伺服器泊塢視窗映像檔。

Docker
創建微焦點真正的泊塢視窗圖像。

使用碼頭命令和微焦點真正碼頭文件來創建碼頭圖像。

Docker
在 Amazon ECR 中為微焦點真正流圖像創建碼頭存儲庫。

在 Amazon ECR 主控台上,為微型焦點真人影像建立碼頭儲存庫。

Amazon ECR
透過以下方式部署系統整合 CI/CD 管線。 CloudFormation

使用準備好的 AWS CloudFormation 範本部署系統整合 CI/CD 管道。

AWS CloudFormation
任務描述所需技能
使用 AWS 快速入門部署微焦點企業伺服器。

若要使用 AWS 部署 Micro Focus 企業伺服器 CloudFormation,請在 AWS 快速入門啟動 Micro Focus 企業伺服器。

AWS CloudFormation
部署生產部署 CI/CD 管線。

在 AWS 主 CloudFormation 控台上,使用 AWS CloudFormation 範本部署生產部署 CI/CD 管道。

AWS CloudFormation

相關資源

參考

AWS Marketplace

AWS 快速入門