本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
PAC使用 Amazon A EC2 uto Scaling 和 Systems Manager 构建 Micro Focus 企业服务器
由 Kevin Yung (AWS)、Peter Woods、Abraham Rondon(Micro Focus)和 Krithika Palani Selvam () 创作 AWS
环境:生产 | 技术:大型机;基础架构 DevOps;现代化 | 工作量:IBM |
AWS服务:亚马逊 A EC2 uto Scaling;S AWS ystems ManagerEC2;亚马逊;A AWS uto Scaling AWS CodePipeline AWS CodeBuild;;Amazon Aurora CloudWatch;亚马逊 ElastiCache;亚马逊;亚马逊 EventBridge;亚马逊RDS;亚马逊 AWS CloudFormation;亚马逊 S3 |
Summary
这种模式为大型机应用程序引入了可扩展架构,在横向扩展性能和可用性集群 (PAC) 中使用 Micro Focus 企业服务器,在亚马逊网络服务 ()
注意:此模式已在 Micro Focus 企业服务器版本 6.0 中进行了测试。有关版本 8,请参阅设置 Micro Focus 运行时(在亚马逊上EC2)。
先决条件和限制
先决条件
一个活动的 AWS 账户。
Micro Focus Enterprise Server 软件和许可证。有关详细信息,请联系 Micro Focus 销售
。 了解重建和交付大型机应用程序以在 Micro Focus Enterprise Server 中运行。有关高级概述,请参阅 Micro Focus Enterprise Server 数据表
。 了解 Micro Focus Enterprise Server 横向扩展性能与可用性集群中的概念。有关更多信息,请参阅 Micro Focus Enterprise Server 文档
。 了解具有持续集成 (CI) 功能的大型机应用程序 DevOps 的总体概念。有关由 AWS and Micro Focus 开发的 AWS 规范性指导模式,请参阅大型机现代化:开 DevOps 启 Micro Foc AWS u s。
注意:此模式已在 Micro Focus 企业服务器版本 6 中进行了测试。有关版本 8,请参阅设置 Micro Focus 运行时(在亚马逊上EC2)。
限制
有关 Micro Focus Enterprise Server 支持的平台列表,请参阅 Micro Focus Enterprise Server 数据表
。 此模式中使用的脚本和测试基于亚马逊 EC2 Windows Server 2019;其他 Windows Server 版本和操作系统未针对此模式进行测试。
该模式基于 Micro Focus Enterprise Server 6.0 for Windows;在此模式的开发中没有测试早期版本或更高版本。
产品版本
Micro Focus Enterprise Server 6.0
Windows Server 2019
架构
在传统大型机环境中,必须预调配硬件来托管应用程序和公司数据。为了满足和满足季节性、每月、每季度,甚至是前所未有的或意想不到的需求,大型机用户必须通过购买额外的存储和计算容量来横向扩展。增加存储和计算容量资源的数量可提高整体性能,但扩展不是线性的。
当你开始使用 Amazon A EC2 uto Scaling 和 Micro Focus 企业服务器采用按需消费模式时,情况并非如此。AWS以下各节详细介绍了如何使用 Micro Focus Enterprise Server 横向扩展性能和可用性集群 (PAC) 和 Amazon A EC2 uto Scaling 组构建全自动、可扩展的大型机应用程序架构。
Micro Focus Enterprise Server 动缩放架构
首先,了解 Micro Focus Enterprise Server 的基本概念很重要。此环境为传统上在大型机上运行的应用程序提供了与大型机兼容的 x86 部署环境。IBM它提供在线和批处理运行以及支持以下功能的事务环境:
IBM COBOL
IBMPL/I
IBMJCL批处理作业
IBMCICS和 IMS TM 交易
Web 服务
常见的批处理工具,包括 SORT
Micro Focus Enterprise Server 使大型机应用程序能够以最少的更改运行。现有的大型机工作负载可以迁移到 x86 平台并进行现代化改造,以利用AWS云原生扩展快速扩展到新的市场或地区。
AWS规范性指导模式大型机现代化: DevOps 在 Micro Focus 的基础上AWS引入了该架构,用于在AWS使用 Micro Foc us Enterprise Developer 和 Enterprise Test Server 以及和时加快大型机应用程序的开发和测试。AWS CodePipeline AWS CodeBuild这种模式侧重于将大型机应用程序部署到AWS生产环境中,以实现高可用性和弹性。
在大型机生产环境中,您可能已经在大型机中设置了 Par IBM allel Sysplex 以实现高性能和高可用性。为了创建类似于 Sysplex 的横向扩展架构,Micro Focus 在企业服务器中引入了性能和可用性群集 (PAC)。PACs支持将大型机应用程序部署到多个企业服务器区域,作为单个映像进行管理,并在 Amazon EC2 实例中横向扩展。PACs还可根据需要支持可预测的应用程序性能和系统吞吐量。
在 a 中PAC,多个企业服务器实例作为一个逻辑实体协同工作。因此,一个企业服务器实例的故障不会中断业务连续性,因为容量与其他地区共享,而新实例则使用行业标准功能(例如 Amazon A EC2 uto Scaling 组)自动启动。这消除了单点故障,提高了对硬件、网络以及应用程序问题的恢复能力。使用企业服务器通用 Web 管理 (ESCWA) 可以操作和管理横向扩展的企业服务器实例APIs,从而简化了企业服务器的操作维护和可维护性。
注意:Micro Focus 建议性能和可用性群集 (PAC)
PAC配置需要支持的关系数据库管理服务 (RDBMS) 来管理区域数据库、跨区域数据库和可选的数据存储数据库。应使用 Micro Focus 数据库文件处理器支持使用数据存储数据库来管理虚拟存储访问方法 (VSAM) 文件,以提高可用性和可扩展性。支持的RDBMSs内容包括以下内容:
微软 SQL Server 2009 R2 及更高版本
Postgre SQL 10.x,包括亚马逊 Aurora Post SQL gre 兼容版
DB210.4 及更高版本
有关支持RDBMS和PAC要求的详细信息,请参阅 Micro Focus 企业服务器-先决条件
下图显示了 Micro Focus 的典型AWS架构设置PAC。
组件 | 描述 | |
---|---|---|
1 | Enterprise Server 实例自动扩缩组 | 在中设置使用企业服务器实例部署的自动伸缩组PAC。实例数量可以按比例扩展,也可以通过 Amazon CloudWatch 警报使用 CloudWatch 指标启动。 |
2 | 企业服务器ESCWA实例自动伸缩组 | 设置使用企业服务器常用 Web 管理部署的自动扩展组 (ESCWA)。ESCWA提供集群管理APIs。 在企业ESCWA服务器实例自动扩展事件PAC期间,服务器充当控制平面,用于添加或删除企业服务器以及启动或停止企业服务器区域。 由于该ESCWA实例仅用于PAC管理,因此其流量模式是可预测的,并且其自动扩展所需的容量要求可以设置为 1。 |
3 | 多可用区设置中的 Amazon Aurora 实例 | 设置关系数据库管理系统 (RDBMS) 以托管要在企业服务器实例之间共享的用户和系统数据文件。 |
4 | 亚马逊 ElastiCache (RedisOSS) 实例和副本 | 设置一个 ElastiCache (RedisOSS) 主实例和至少一个副本来托管用户数据,并充当企业服务器实例的扩展存储库 (SOR)。您可配置一个或多个横向扩展存储库来存储 |
5 | 网络负载均衡器 | 设置负载均衡器,为应用程序提供主机名以连接到 Enterprise Server 实例提供的服务(例如,通过 3270 仿真器访问应用程序)。 |
这些组件构成了 Micro Focus 企业服务器PAC群集的最低要求。下一部分介绍集群管理自动化。
使用 S AWS ystems Manager 自动化进行扩展
在上部署PAC群集后AWS,将PAC通过企业服务器通用 Web 管理 (ESCWA) 进行管理APIs。
要在自动扩展事件期间自动执行集群管理任务,您可以使用 Systems Manager Automation 运行手册和带有 Amazon Auto Scaling 的亚马逊 A EC2 uto Scaling。 EventBridge这些自动化架构如下图所示。
组件 | 描述 | |
---|---|---|
1 | 自动扩缩生命周期挂钩 | 设置自动扩展生命周期挂钩,并在自动扩展组中启动新实例和终止现有实例 EventBridge 时向 Amazon 发送通知。 |
2 | Amazon EventBridge | 设置 Amazon EventBridge 规则,将自动扩展事件路由到 Systems Manager 自动化运行手册目标。 |
3 | 自动化运行手册 | 设置 Systems Manager Automation 运行手册以运行 Windows PowerShell 脚本并调用ESCWAAPIs以管理。PAC有关示例,请参阅其他信息部分。 |
4 | 自动伸缩组中的企业服务器ESCWA实例 | 在自动伸缩组中设置企业服务器ESCWA实例。该ESCWA实例APIs提供管理PAC。 |
工具
Micro Focus 企业服务器
— Micro Focus 企业服务器为使用企业开发人员的任何集成开发环境 (IDE) 变体创建的应用程序提供运行环境。 Amazon A EC2 ut EC2 o Scaling — Amazon Auto Scaling 可帮助您确保有正确数量的亚马逊EC2实例可用来处理应用程序的负载。您可以创建名为 Auto Scaling 组的EC2实例集合,并指定最小和最大实例数。
亚马逊 ElastiCache (RedisOSS) — Amazon ElastiCache 是一项网络服务,用于在云中设置、管理和扩展分布式内存数据存储或缓存环境。它可以提供高性能、可扩展且具有成本效益的缓存解决方案。
亚马逊 RDS — Amazon Relational Database Service (AmazonRDS) 是一项网络服务,可以更轻松地在AWS云中设置、操作和扩展关系数据库。它为行业标准的关系数据库提供了经济高效、可调整大小的容量,并管理常见的数据库管理任务。
AWSS yst AWS ems Manager — Systems Manager 是一项可用于查看和控制基础架构的AWS服务AWS。使用 Systems Manager 控制台,您可以查看来自多个AWS服务的操作数据,并自动执行跨AWS资源的操作任务。Systems Manager 通过扫描托管实例并报告其检测到的任何策略违规行为(或采取纠正措施)来帮助您维护安全性和合规性。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
为亚马逊 Aurora 实例创建AWS CloudFormation 模板。 | 使用AWS示例代码片段制作一个用于创建亚马逊 Aurora Postgre SQL 兼容版实例的 CloudFormation 模板。 | 云架构师 |
部署 CloudFormation 堆栈以创建 Amazon Aurora 实例。 | 使用该 CloudFormation 模板创建SQL兼容 Aurora Postgre 的实例,该实例已为生产工作负载启用多可用区复制。 | 云架构师 |
为 Enterprise Server 配置数据库连接设置。 | 按照 Micro Focus 文档 | 数据工程师、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
为 Redis 实例的 Amazon ElastiCache 集群创建 CloudFormation 模板。 | 使用AWS示例代码片段创建用于为 Redis 实例创建 Amazon ElastiCache 集群的 CloudFormation 模板。 | 云架构师 |
部署 CloudFormation 堆栈以为 Redis 实例创建 Amazon ElastiCache 集群。 | 为已为生产工作负载启用多可用区复制的 Redis 实例创建 Amazon ElastiCache 集群。 | 云架构师 |
配置企业服务器PSOR连接设置。 | 按照 Micro F ocus 文档中的说明为 Micro | DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
创建 Micro Focus 企业服务器AMI。 | 创建 Amazon EC2 Windows Server 实例并在该EC2实例中安装 Micro Focus 企业服务器二进制文件。创建EC2实例的 Amazon 系统映像 (AMI)。有关更多信息,请参阅 Enterprise Server 安装文档 | 云架构师 |
为企业服务器创建 CloudFormation 模板ESCWA。 | 使用AWS示例代码片段制作一个模板,用于在自动伸缩组ESCWA中创建企业服务器的自定义堆栈。 | 云架构师 |
部署 CloudFormation 堆栈以为企业服务器创建 Amazon EC2 扩展组ESCWA。 | 使用 CloudFormation 模板部署自动扩展组,其中包含在上一篇文章中ESCWAAMI创建的 Micro Focus Enterprise Server。 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
为 Syst CloudFormation ems Manager 自动化运行手册创建模板。 | 使用 “其他信息” 部分中的示例代码片段制作一个 CloudFormation 模板,该模板将创建 Systems Manager Automation 运行手册,用于自动PAC创建、企业服务器缩小和企业服务器横向扩展。 | 云架构师 |
部署包含 Systems Manager 自动化运行手册的 CloudFormation 堆栈。 | 使用该 CloudFormation 模板部署一个堆栈,其中包含用于PAC创建、企业服务器扩展和企业服务器横向扩展的自动化运行手册。 | 云架构师 |
任务 | 描述 | 所需技能 |
---|---|---|
创建用于为 Micro Focus 企业服务器设置自动伸缩组的 CloudFormation 模板。 | 使用AWS示例代码片段制作一个用于创建自动伸缩组的 CloudFormation 模板。此模板将重复使用为 Micro Foc AMI us Enterprise Server ESCWA 实例创建的模板。 然后使用AWS示例代码段创建自动扩展生命周期事件,并将 Amazon 设置为在同一个模板中筛选横 EventBridge 向扩展和缩小事件。 CloudFormation | 云架构师 |
为 Micro Focus 企业服务器的自动扩展组部署 CloudFormation 堆栈。 | 部署包含 Micro Focus 企业服务器自动扩展组的 CloudFormation 堆栈。 | 云架构师 |
相关资源
其他信息
以下场景必须自动扩展或扩展集PAC群。
用于启动或重新创建的自动化 PAC
在PAC群集启动时,企业服务器需要调用ESCWAAPIs以创建PAC配置。这将启动并将企业服务器区域添加到PAC。要创建或重新创建PAC,请按以下步骤操作:
在中配置具有给定名称的PAC横向扩展存储库 (PSOR)
。ESCWA POST /server/v1/config/groups/sors
创建PAC具有给定名称的,并将其附加PSOR到该名称上。
POST /server/v1/config/groups/pacs
如果这是您第一次设置,请配置区域数据库和跨区域数据库。PAC
注意:此步骤使用SQL查询和 Micro Focus Enterprise Suite 命令行 dbhfhadmin 工具来创建数据库并导入初始数据。
将PAC定义安装到企业服务器区域。
POST /server/v1/config/mfds POST /native/v1/config/groups/pacs/${pac_uid}/install
在中启动企业服务器区域PAC。
POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
前面的步骤可以通过使用 Windows PowerShell 脚本来实现。
以下步骤说明了如何PAC通过重复使用 Windows PowerShell 脚本来构建用于创建的自动化。
创建亚马逊EC2启动模板,在引导过程中下载或创建 Windows PowerShell 脚本。例如,您可以使用EC2用户数据从亚马逊简单存储服务 (Amazon S3) 存储桶下载脚本。
创建 S AWS ystems Manager 自动化运行手册来调用 Windows PowerShell 脚本。
使用实例标签将运行手册与ESCWA实例关联。
使用启动模板创建ESCWA自动伸缩组。
您可以使用以下示例AWS CloudFormation 片段来创建自动化运行手册。
用于创建的 Systems Manager 自动化运行手册的示例 CloudFormation 片段 PAC
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"
有关更多信息,请参阅 Micro Focus 企业服务器-配置PAC
使用新的 Enterprise Server 实例自动进行横向扩展
扩展企业服务器实例时,必须将其企业服务器区域添加到PAC。以下步骤说明了如何调用企业服务器区域ESCWAAPIs并将其添加到PAC。
将PAC定义安装到企业服务器区域。
POST '/server/v1/config/mfds' POST /native/v1/config/groups/pacs/${pac_uid}/install
Warm Start 中的区域PAC。
POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
通过将自动扩缩组与负载均衡器关联,将 Enterprise Server 实例添加至负载均衡器。
前面的步骤可以通过使用 Windows PowerShell 脚本来实现。有关更多信息,请参阅 Micro Focus 企业服务器-配置PAC
以下步骤可用于构建事件驱动的自动化,以便PAC通过重复使用 Windows PowerShell 脚本将新启动的企业服务器实例添加到中。
为企业服务器实例创建 Amazon EC2 启动模板,以便在引导期间配置企业服务器区域。例如,您可使用 Micro Focus Enterprise Server 命令 mfds 导入区域配置。有关此命令的更多详细信息和可用选项,请参阅 Enterprise Server 参考
。 使用在上一步中创建的启动模板创建 Enterprise Server 自动扩缩组。
创建 Systems Manager 自动化运行手册来调用 Windows PowerShell 脚本。
使用实例标签将运行手册与ESCWA实例关联。
创建 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"
用于横向缩减 Enterprise Server 实例的自动化
与向外扩展类似,当企业服务器实例缩减时,会启动事件EC2实例终止生命周期操作,并且需要以下过程和API调用才能从中移除 Micro Focus Enterprise Server 实例。PAC
在终止的 Enterprise Server 实例中停止该区域。
POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
从中移除企业服务器实例PAC。
DELETE "/server/v1/config/mfds/${uid}"
发送信号以继续终止 Enterprise Server 实例。
前面的步骤可以在 Windows PowerShell 脚本中实现。有关此过程的更多详细信息,请参阅 Micro Focus Enterprise Server 文档——管理PAC
以下步骤说明了如何构建事件驱动的自动化,以便PAC通过重复使用 Windows 脚本来终止来自的企业服务器实例。 PowerShell
创建 Systems Manager 自动化运行手册来调用 Windows PowerShell 脚本。
使用实例标签将运行手册与ESCWA实例关联。
为EC2实例终止创建自动伸缩组生命周期挂钩。
创建 Amazon EventBridge 规则以筛选企业服务器自动扩展组的EC2实例终止生命周期操作事件,并创建使用自动化运行手册的目标。
您可以使用以下示例 CloudFormation 模板来创建 Systems Manager Automation 运行手册、生命周期挂钩和 EventBridge 规则。
用于在企业 CloudFormation 服务器实例中进行扩展的 Systems Manager 自动化运行手册的示例片段
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 自动扩展触发器的自动化
为 Enterprise Server 实例设置扩展策略的过程需要了解应用程序的行为。多数情况下,您可设置目标跟踪扩展策略。例如,您可以使用平均CPU利用率作为 Amazon CloudWatch 指标来设置自动扩展策略。有关更多信息,请参阅 Amazon A EC2 uto Scaling 的目标跟踪扩展政策。对于具有常规流量模式的应用程序,请考虑使用预测扩展策略。有关更多信息,请参阅 Amazon A EC2 uto Scaling 的预测性扩展。