使用 Amazon EC2 Auto Scaling 和 Systems Manager 建置微焦點企業伺服器 PAC - AWS 方案指引

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

使用 Amazon EC2 Auto Scaling 和 Systems Manager 建置微焦點企業伺服器 PAC

創建者:凱文容(AWS),彼得·伍茲(微焦點),亞伯拉罕·朗登(微焦點)和克里希卡·帕拉尼·塞爾瓦姆(AWS)

環境:生產

技術:現代化;雲端原生; DevOps基礎架構

Summary

此模式為大型主機應用程式引入可擴展架構,在橫向擴充效能和可用性叢集 (PAC) 中使用 Micro Focus 企業伺服器,以及 Amazon Web 服務 (AWS) 上的亞馬遜彈性運算雲端 (Amazon EC2) Auto Scaling 展群組。使用 AWS Systems Manager 和 Amazon EC2 自動擴展生命週期掛鉤,完全自動化解決方案。藉由使用此模式,您可以設定大型主機線上和批次處理應用程式,根據您的容量需求自動進出擴充,以達到高彈性。

先決條件和限制

先決條件

限制

  • 如需 Micro Focus 企業伺服器支援的平台清單,請參閱 Micro Focus 企業伺服器資料表

  • 此模式中使用的指令碼和測試是以 Amazon EC2 視窗伺服器 2019 年為基礎;其他 Windows 伺服器版本和作業系統並未針對此模式進行測試。

  • 此病毒碼是以適用於 Windows 的 Micro Focus 企業伺服器 6.0 為基礎;舊版或更新版本並未在此病毒碼的開發過程中進行測試。

產品版本

  • 微焦點企業伺服器 6.0

  • Windows Server 2019

架構

在傳統的大型主機環境中,您必須佈建硬體來託管應用程式和公司資料。為了滿足季節性、每月、每季甚至前所未有或意外的需求,大型主機使用者必須購買額外的儲存裝置和運算容量來擴充規模。增加儲存體和運算容量資源的數量可改善整體效能,但擴展不是線性的。

當您開始使用 Amazon EC2 Auto Scaling 和微焦點企業伺服器在 AWS 上採用隨需消費模式時,情況並非如此。以下各節詳細說明如何使用 Micro Focus 企業伺服器向外擴充效能和可用性叢集 (PAC) 搭配 Amazon EC2 Auto Scaling 群組,建立完全自動化、可擴展的大型主機應用程式架構。 

微焦點企業伺服器自動擴充架構

首先,了解 Micro Focus 企業伺服器的基本概念非常重要。此環境為傳統在 IBM 大型主機上執行的應用程式提供與大型主機相容的 x86 部署環境。它提供線上和批次執行,以及支援下列項目的交易環境:

  • IBM 聯盟

  • IBM PL/I

  • 批次工作

  • IBM CICS 和 IMS TM 交易

  • Web 服務

  • 常見的批次工具,包括 SORT

Micro Focus 企業伺服器可讓大型主機應用程式以最少的變更執行。現有的大型主機工作負載可移至 x86 平台並進行現代化,以利用 AWS 雲端原生擴充功能快速擴展至新市場或地理位置。 

AWS Prescriptive Guidance 模式大型主機現代化: DevOps 在使用 Micro Focus 的 AWS 上引入了架構,使用 Micro Focus 企業開發人員和企業測試伺服器搭配 AWS 和 AWS,加速 AWS 上大型主機應用程式的開發和測試。 CodePipeline CodeBuild此模式著重於將大型主機應用程式部署到 AWS 生產環境,以達到高可用性和彈性。

在大型主機生產環境中,您可能已經在大型主機中設定 IBM Parallel Sysplex,以達到高效能和高可用性。為了建立類似於 Sysplex 的向外延展架構,Micro Focus 將效能與可用性叢集 (PAC) 引入企業伺服器。PAC 支援將大型主機應用程式部署到以單一映像形式管理的多個企業伺服器區域,並在 Amazon EC2 執行個體中向外擴充。PAC 也可視需求支援可預測的應用程式效能和系統輸送量。 

在 PAC 中,多個企業伺服器執行個體一起運作,做為單一邏輯實體。因此,一個企業伺服器執行個體故障不會中斷業務連續性,因為容量會與其他區域共用,而使用產業標準功能 (例如 Amazon EC2 Auto Scaling 群組) 自動啟動新執行個體。這消除了單點故障,提高了硬件,網絡和應用程序問題的恢復能力。向外延展的企業伺服器執行個體可以使用企業伺服器通用 Web 管理 (ESCWA) API 來操作和管理,簡化企業伺服器的作業維護和可維護性。 

注意:Micro Focus 建議「效能和可用性叢集」(PAC) 至少應包含三個企業伺服器區域,以便在企業伺服器區域發生故障或需要維護時,可用性不會受到影響。

PAC 組態需要支援的關聯式資料庫管理服務 (RDBMS) 來管理區域資料庫、跨區域資料庫和選用的資料倉庫資料庫。資料存放區資料庫應該用來管理虛擬儲存存取方法 (VSAM) 檔案,使用 Micro Focus 資料庫檔案處理常式支援來改善可用性和延展性。支援的 RDBMS 包括下列項目:

  • Microsoft SQL 服務器 2009 R2 及更高版本

  • 10.x PostgreSQL,包括 Amazon Aurora 兼容版

  • DB2 10.4 及更新版本

如需支援的 RDBMS 和 PAC 需求的詳細資訊,請參閱微焦點企業伺服器-必要條件微焦點企業伺服器-建議的 PAC 組態。

下圖顯示微型聚焦 PAC 的典型 AWS 架構設定。 

元件

Description

1

企業伺服器執行個體自動調整

設定 PAC 中使用企業伺服器執行個體部署的自動調整資源調整群組。Amazon CloudWatch 警示可以使用指標向外擴充或啟動執行個體數 CloudWatch 量。

2

企業伺服器 ESCWA 執行個體自動調整資源組 

設定使用企業伺服器通用網頁管理 (ESCWA) 部署的自動調整資源調整群組。ESCWA 提供叢集管理 API。  在企業伺服器執行個體自動調整規模事件期間,ESCWA 伺服器充當控制平面,以新增或移除企業伺服器,以及啟動或停止 PAC 中的企業伺服器區域。  由於 ESCWA 執行個體僅用於 PAC 管理,因此其流量模式是可預測的,並且其自動調整所需容量需求可設定為 1。 

3

異地同步備份設定中的 Amazon Aurora 執

設定關聯式資料庫管理系統 (RDBMS),以主控要跨企業伺服器執行個體共用的使用者和系統資料檔案。

4

Amazon ElastiCache 適用於 Redis 的實例和複本

設定 ElastiCache Redis 主執行個體和至少一個複本來託管使用者資料,並做為企業伺服器執行個體的向外延展存放庫 (SOR)。您可以設定一或多個向外延展儲存庫來儲存特定類型的使用者資料。  企業服務器使用 Redis 的 NoSQL 數據庫作為 SOR,這是維護 PAC 完整性的要求

5

Network Load Balancer

設定負載平衡器,提供應用程式連線至 Enterprise Server 執行個體所提供之服務的主機名稱 (例如,透過 3270 模擬器存取應用程式)。

這些元件構成微焦點企業伺服器 PAC 叢集的最低需求。下一節將說明叢集管理自動化。

使用 AWS Systems Manager Automation 進行擴展

在 AWS 上部署 PAC 叢集之後,PAC 就會透過企業伺服器通用網頁管理 (ESCWA) API 進行管理。 

若要在自動擴展事件期間自動執行叢集管理任務,您可以使用 Systems Manager 自動化手冊和 Amazon EC2 Auto Scaling 搭配 Amazon EventBridge。這些自動化的體系結構顯示在下圖中。

元件

Description

1

自動調整生命週期鉤

設定自動擴展生命週期勾點,並在啟動新執行個體且現有執行個體在自動擴展群組中終止 EventBridge 時傳送通知給 Amazon。

2

Amazon EventBridge

設定 Amazon EventBridge 規則,將自動擴展事件路由到 Systems Manager 自動化工作流程簿目標。

3

自動化手冊

設定 Systems Manager 自動化手冊以執行 Windows PowerShell 指令碼,並呼叫 ESCWA API 來管理 PAC。如需範例,請參閱其他資訊一節。

4

自動調度資源群組中的企業伺服器 ESCWA 執行個體

在自動調整資源調整群組中設定企業伺服器 ESCWA 執行個體。ESCWA 執行個體提供用於管理 PAC 的 API。 

工具

  • Micro Focus 企業伺服器 — Micro Focus 企業伺服器為使用企業開發人員的任何整合式開發環境 (IDE) 變體所建立的應用程式提供執行環境。

  • Amazon EC2 Auto Scaling — Amazon EC2 Auto Scaling 可協助您確保擁有正確數量的 Amazon EC2 執行個體可用來處理應用程式的負載。您可以建立 EC2 執行個體的集合 (稱為 Auto Scaling 群組),並指定執行個體的最小和最大數量。

  • Amazon ElastiCache for Redis — Amazon ElastiCache 是一種網路服務,用於在雲端中設定、管理和擴展分散式記憶體內資料存放區或快取環境。它提供高效能、可擴展且符合成本效益的快取解決方案。

  • Amazon RDS — Amazon Relational Database Service 服務 (Amazon RDS) 是一種網路服務,可讓您更輕鬆地在 AWS 雲端中設定、操作和擴展關聯式資料庫。它為關聯式資料庫提供符合成本效益且可調整大小的容量,並管理常見的資料庫管理工作。 

  • AWS Systems Manager — AWS Systems Manager 是一項 AWS 服務,可讓您在 AWS 上檢視和控制基礎設施。您可以使用 Systems Manager 主控台檢視來自多個 AWS 服務的操作資料,並自動化 AWS 資源的操作任務。Systems Manager 透過掃描您的受管執行個體並報告 (或採取修正動作) 其偵測的任何政策違規,協助您保持安全與合規。

史诗

任務描述所需技能
為 Amazon Aurora 執行個體建立 AWS CloudFormation 範本。

使用 AWS 範例程式碼片段建立範 CloudFormation 本,以建立與 Amazon Aurora PostgreSQL 相容的版本執行個體。

雲端架構師
部署 CloudFormation 堆疊以建立 Amazon Aurora 執行個體。

使用此 CloudFormation 範本建立 Aurora PostgreSQL 相容的執行個體,該執行個體已針對生產工作負載啟用異地同步備份複寫。

雲端架構師
設定企業伺服器的資料庫連線設定。

請遵循 Micro Focus 文件中的指示,為 Micro Focus 企業伺服器準備連線字串和資料庫組態。

數據工程師, DevOps 工程師
任務描述所需技能
為 Redis 執行個體的 Amazon ElastiCache 叢集建立 CloudFormation 範本。

使用 AWS 範例程式碼片段建立範 CloudFormation 本,以便為 Redis 執行個體建立 Amazon ElastiCache 叢集。

雲端架構師
部署 CloudFormation 堆疊以建立 Redis 執行個體的 Amazon ElastiCache 叢集。

針對已針對生產工作負載啟用異地同步備份複寫的 Redis 執行個體建立 Amazon ElastiCache 叢集。

雲端架構師
設定企業伺服器 PSOR 連線設定。

遵循微焦點文件中的指示,準備微焦點企業伺服器 PAC 的 PAC 向外延展儲存庫 (PSOR) 連線組態。

DevOps 工程師
任務描述所需技能
創建微焦點企業服務器 AMI。

建立 Amazon EC2 Windows 伺服器執行個體,並在 EC2 執行個體中安裝微焦點企業伺服器二進位檔案。創建 EC2 實例的 Amazon 機器映像(AMI)。如需詳細資訊,請參閱企業伺服器安裝說明文件

雲端架構師
建立企業伺服器 ESCWA 的 CloudFormation 範本。

使用 AWS 範例程式碼片段建立範本,以便在自動擴展群組中建立自訂企業伺服器 ESCWA 堆疊。

雲端架構師
部署 CloudFormation 堆疊以建立適用於企業伺服器 ESCWA 的 Amazon EC2 擴展群組。

使用 CloudFormation 範本來部署自動調整資源群組與微型焦點企業伺服器 ESCWA AMI 在先前的故事中建立。

雲端架構師
任務描述所需技能
建立 Systems Manager 自動化手冊的 CloudFormation 範本。

使用 [其他資訊] 區段中的範例程式碼片段,建立可建立 Systems Manager 自動化執行手冊的 CloudFormation 範本,以自動建立 PAC 建立、企業伺服器擴充,以及企業伺服器向外延展。

雲端架構師
部署包含 Systems Manager 自動化手冊的 CloudFormation 堆疊。

使用此 CloudFormation 範本部署包含用於建立 PAC、企業伺服器擴充以及企業伺服器向外擴充的自動化 Runbook 的堆疊。

雲端架構師
任務描述所需技能
建立 CloudFormation 範本,以便為 Micro Focus 企業伺服器設定自動調度資源調度群組。

使用 AWS 範例程式碼片段建立可建立自動擴展群組的範 CloudFormation 本。此範本將重複使用為微焦點企業伺服器 ESCWA 執行個體所建立的相同 AMI。 

然後使用 AWS 範例程式碼片段建立自動擴展生命週期事件,並設 EventBridge 定 Amazon 篩選相同範本中的向外擴充和擴充事件。 CloudFormation

雲端架構師
為 Micro Focus 企業伺服器部署自動調整資源調整群組的 CloudFormation 堆疊。

部署包含 Micro Focus 企業伺服器之自動調整資源調度群組的 CloudFormation 堆疊。

雲端架構師

相關資源

其他資訊

必須自動執行下列案例,才能擴展或向外擴充 PAC 叢集。

啟動或重新建立 PAC 的自動化

在 PAC 叢集開始時,企業伺服器會要求 ESCWA 呼叫 API 來建立 PAC 組態。這會啟動並將企業伺服器區域新增至 PAC。若要建立或重新建立 PAC,請使用下列步驟: 

  1. 在 ESCWA 中以指定的名稱設定 PAC 向外延展儲存庫 (PSOR)

    POST /server/v1/config/groups/sors
  2. 建立具有指定名稱的 PAC,並將 PSOR 貼附至其上。

    POST /server/v1/config/groups/pacs
  3. 如果這是您第一次設定 PAC,請設定區域資料庫和跨區域資料庫。

    注意:此步驟使用 SQL 查詢和微焦點企業套件命令行 dbhfhadmin 工具來建立資料庫並匯入初始資料。

  4. 將 PAC 定義安裝到企業伺服器區域中。

    POST /server/v1/config/mfds POST /native/v1/config/groups/pacs/${pac_uid}/install
  5. 啟動 PAC 中的「企業伺服器」區域。

    POST /native/v1/regions/${host_ip}/${port}/${region_name}/start

前面的步驟可以通過使用 Windows PowerShell 腳本來實現。 

下列步驟說明如何透過重複使用 Windows PowerShell 指令碼來建立 PAC 的自動化操作。

  1. 建立 Amazon EC2 啟動範本,以便在啟動程序中下載或建立 Windows PowerShell 指令碼。例如,您可以使用 EC2 使用者資料從 Amazon Simple Storage Service (Amazon S3) 貯體下載指令碼。

  2. 建立 AWS Systems Manager Automation 執行手冊以叫用 Windows 指 PowerShell 令碼。

  3. 使用執行個體標籤,將執行手冊與 ESCWA 執行個體相關聯。

  4. 使用啟動範本建立 ESCWA 自動調度資源調度群組。 

您可以使用下列範例 AWS CloudFormation 程式碼片段來建立自動化工作流程簿。

用於建立 PAC 的 Systems Manager 自動化工作流程簿範例 CloudFormation 程式碼片段

PACInitDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to create Enterprise Server PAC mainSteps: - action: aws:runPowerShellScript name: CreatePAC inputs: onFailure: Abort timeoutSeconds: "1200" runCommand: - | C:\Scripts\PAC-Init.ps1 PacInitAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: description: Prepare Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunPACInitDocument action: aws:runCommand timeoutSeconds: 300 onFailure: Abort inputs: DocumentName: !Ref PACInitDocument Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true" PacInitDocumentAssociation: Type: AWS::SSM::Association Properties: DocumentVersion: "$LATEST" Name: !Ref PACInitDocument Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true"

如需詳細資訊,請參閱微焦點企業伺服器-設定 PAC

使用新的企業伺服器執行個體自動化擴充

當企業伺服器執行個體向外延展時,必須將其「企業伺服器」區域新增至 PAC。下列步驟說明如何呼叫 ESCWA API,並將企業伺服器區域新增至 PAC。 

  1. 將 PAC 定義安裝到企業伺服器區域中。

    POST '/server/v1/config/mfds' POST /native/v1/config/groups/pacs/${pac_uid}/install
  2. 溫啟動 PAC 中的區域。

    POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
  3. 將自動調整資源調度群組與負載平衡器建立關聯,將 Enterprise Server 執行個體新增至負載平衡器。

前面的步驟可以通過使用 Windows PowerShell 腳本來實現。如需詳細資訊,請參閱微焦點企業伺服器-設定 PAC

您可以使用下列步驟來建置事件導向的自動化,藉由重複使用 Windows PowerShell 指令碼,將新啟動的企業伺服器執行個體新增至 PAC。 

  1. 為企業伺服器執行個體建立 Amazon EC2 啟動範本,以便在啟動期間佈建企業伺服器區域。例如,您可以使用 Micro Focus 企業伺服器指令 MFD 匯入區域組態。如需此命令可用的詳細資訊和選項,請參閱企業伺服器參考

  2. 建立使用在上一個步驟中建立的啟動範本的「企業伺服器自動調整資源」群組。

  3. 建立 Systems Manager 自動化執行手冊來叫用 Windows 指 PowerShell 令碼。 

  4. 使用執行個體標籤,將執行手冊與 ESCWA 執行個體相關聯。

  5. 建立 Amazon EventBridge 規則以篩選企業伺服器自動擴展群組的 EC2 執行個體啟動成功事件,並建立目標以使用自動化執行手冊。

您可以使用下列範例 CloudFormation 程式碼片段來建立自動化工作流程簿和 EventBridge 規則。

用於向外擴充企業伺服器執行個體的 Systems Manager 範例 CloudFormation 程式

ScaleOutDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to Adding MFDS Server into an existing PAC parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" mainSteps: - action: aws:runPowerShellScript name: Add_MFDS inputs: onFailure: Abort timeoutSeconds: "300" runCommand: - | $ip = "{{InstanceIpAddress}}" if ( ${ip} -eq "Not-Available" ) { $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress" } C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}} PacScaleOutAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunScaleOutCommand action: aws:runCommand timeoutSeconds: 300 onFailure: Abort inputs: DocumentName: !Ref ScaleOutDocument Parameters: InstanceIpAddress: "{{InstanceIpAddress}}" InstanceId: "{{InstanceId}}" MfdsPort: "{{MfdsPort}}" Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true"

企業伺服器執行個體中的自動化調整

與向外擴充類似,當充企業伺服器執行個體時,會啟動 EC2 執行個體終止生命週期動作事件,並且需要執行下列程序和 API 呼叫才能從 PAC 移除 Micro Focus 企業伺服器執行個體。 

  1. 停止終止「企業伺服器」執行處理中的區域。

    POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
  2. 從 PAC 移除企業伺服器實例。

    DELETE "/server/v1/config/mfds/${uid}"
  3. 傳送訊號以繼續終止企業伺服器執行個體。

前面的步驟可以在 Windows PowerShell 腳本中實現。如需此程序的其他詳細資訊,請參閱 Micro Focus 企業伺服器文件-管理 PAC

下列步驟說明如何透過重複使用 Windows 指令碼來建置事件導向的自動化,以終止 PAC 的企業伺服器執行個體。 PowerShell  

  1. 建立 Systems Manager 自動化執行手冊來叫用 Windows 指 PowerShell 令碼。

  2. 使用執行個體標籤,將執行手冊與 ESCWA 執行個體相關聯。

  3. 為 EC2 執行個體終止建立自動調整規模群組生命週期勾點。

  4. 建立 Amazon EventBridge 規則以篩選企業伺服器自動擴展群組的 EC2 執行個體終止生命週期動作事件,並建立目標以使用自動化執行手冊。 

您可以使用下列範例 CloudFormation 範本來建立 Systems Manager 自動化工作流程簿、生命週期勾點和 EventBridge 規則。

用於在企業伺服器執行個體中調整的 Systems Manager 自動化工作流程簿的範例 CloudFormation 程式碼

ScaleInDocument: Type: AWS::SSM::Document Properties: DocumentType: Command Content: schemaVersion: '2.2' description: Operation Runbook to Remove MFDS Server from PAC parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" mainSteps: - action: aws:runPowerShellScript name: Remove_MFDS inputs: onFailure: Abort runCommand: - | $ip = "{{InstanceIpAddress}}" if ( ${ip} -eq "Not-Available" ) { $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress" } C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}} PacScaleInAutomation: Type: AWS::SSM::Document Properties: DocumentType: Automation Content: parameters: MfdsPort: type: String InstanceIpAddress: type: String default: "Not-Available" InstanceId: type: String default: "Not-Available" description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server schemaVersion: '0.3' assumeRole: !GetAtt SsmAssumeRole.Arn mainSteps: - name: RunScaleInCommand action: aws:runCommand timeoutSeconds: "600" onFailure: Abort inputs: DocumentName: !Ref ScaleInDocument Parameters: InstanceIpAddress: "{{InstanceIpAddress}}" MfdsPort: "{{MfdsPort}}" InstanceId: "{{InstanceId}}" Targets: - Key: tag:Enterprise Server - ESCWA Values: - "true" - name: TerminateTheInstance action: aws:executeAwsApi inputs: Service: autoscaling Api: CompleteLifecycleAction AutoScalingGroupName: !Ref AutoScalingGroup InstanceId: "{{ InstanceId }}" LifecycleActionResult: CONTINUE LifecycleHookName: !Ref ScaleInLifeCycleHook

Amazon EC2 自動擴展觸發器的自動化

為企業伺服器執行個體設定擴展政策的程序需要瞭解應用程式行為。在大多數情況下,您可以設定目標追蹤擴展政策。例如,您可以使用平均 CPU 使用率做為自動擴展政策設定的 Amazon CloudWatch 指標。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 的目標追蹤擴展政策。對於具有常規流量模式的應用程式,請考慮使用預測性擴展政策。如需詳細資訊,請參閱 Amazon EC2 自動擴展的預測性擴展。