本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
由 Richard Milner-Watts (AWS) 编写
摘要
将传统的大型机工作负载迁移至现代云架构可以消除维护大型机的成本,而这些成本只会随着环境的老化而增加。然而,从大型机迁移作业可能会带来独特挑战。内部资源可能不熟悉工作逻辑,与一般 CPUs商用相比,大型机在这些特殊任务中的高性能可能很难复制。重写这些工作可能是一项艰巨的任务,因此需要付出巨大的努力。
Blu Age 将传统的大型机工作负载转换为现代 Java 代码,然后您可将其作为容器运行。
此模式提供了示例无服务器架构,用于运行已使用 Blu Age 工具进行现代化改造的容器化应用程序。随附的 HashiCorp Terraform 文件将为编排 Blu Age 容器构建安全的架构,同时支持批处理任务和实时服务。
有关使用 Blu Age 和 Amazon Web Services 实现工作负载现代化的更多信息,请参见以下 AWS Prescriptive Guidance 出版物:
如需有关使用 Blu Age 对大型机工作负载进行现代化改造的帮助,请在 Blu Age 网站
先决条件和限制
先决条件
该示例容器化了 Blu Age 应用程序,其由对经过 Blu Age 现代化改造的大型机工作负载进行容器化模式提供。示例应用程序提供了处理现代化应用程序的输入和输出的逻辑,并且它可以与此体系结构集成。
部署此资源需要 Terraform。
限制
Amazon Elastic Container Service (Amazon ECS) 对容器可用的任务资源设定了限制。这些资源包括 CPU、RAM 和存储。例如将 Amazon ECS 与 AWS Fargate 配合使用时,任务资源限制适用。
产品版本
此解决方案已使用以下版本进行测试:
Terraform 1.3.6
Terraform AWS Provider 4.46.0
架构
源技术堆栈
Blu Age
Terraform
目标技术堆栈
Amazon Aurora PostgreSQL 兼容版
AWS Backup
Amazon Elastic Container Registry(Amazon ECR)
Amazon ECS
AWS Identity and Access Management Service (IAM)
AWS Key Management Server (AWS KMS)
AWS Secrets Manager
Amazon Simple Notification Service(Amazon SNS)
Amazon Simple Storage Service(Amazon S3)
AWS Step Functions
AWS Systems Manager
目标架构
下图显示了解决方案架构。

解决方案部署了以下 IAM 角色:
批处理任务角色
批处理任务执行角色
服务任务角色
服务任务执行角色
Step Functions 角色
AWS Backup 角色
RDS 增强型监控角色。
这些角色符合最低权限访问原则。
Amazon ECR 用于存储由此模式编排容器映像。
AWS Systems Manager Parameter Store 在运行时向 Amazon ECS 任务定义提供关于每个环境的配置数据。
AWS Secrets Manager 在运行时向 Amazon ECS 任务定义提供关于环境的敏感配置数据。这些数据通过 AWS KMS 加密。
Terraform 模块为所有实时和批处理任务创建 Amazon ECS 任务定义。
Amazon ECS 使用 AWS Fargate 作为计算引擎运行批处理任务。这是一项短暂任务,由 AWS Step Functions 按要求启动。
Amazon Aurora PostgreSQL-Compatible 提供了一个支持现代化应用程序的数据库。这取代了大型机数据库,例如 IBM Db2 或者 IBM IMS 数据库。
Amazon ECS 运行长期服务,以提供现代化的实时工作负载。这些无状态应用程序永久运行,容器分布至可用区中。
网络负载均衡器用于授予对实时工作负载访问权限。网络负载均衡器支持较早协议,例如 IBM CICS。或者,您可以将应用程序负载均衡器与基于 HTTP 的工作负载结合使用。
Amazon S3 为任务输入和输出提供对象存储。容器应处理 Amazon S3 中的拉取和推送操作,以为 Blu Age 应用程序准备工作目录。
AWS Step Functions 服务用于编排运行 Amazon ECS 任务以处理批量工作负载。
每个批处理工作负载的 SNS 主题用于将现代化应用程序与其他系统(例如电子邮件)集成,或启动其他操作,例如将输出对象从 Amazon S3 传送到 FTP。
注意
默认情况下,该解决方案无法访问互联网。此模式假设虚拟私有云(VPC)将使 AWS Transit Gateway
自动化和扩缩
在整个模式中使用无服务器资源有助于确保,通过横向扩展,此设计的规模几乎没有限制。这样可以减少邻居噪音担忧,例如在原始大型机上可能遇到的对计算资源的竞争。可以根据需要安排批处理任务同时运行。
单个容器受到 Fargate 支持的最大大小限制。有关更多信息,请参阅 Amazon ECS 文档中的任务 CPU 和内存部分。
若要水平扩展实时工作负载
工具
Amazon Web Services
Amazon Aurora PostgreSQL 兼容版是一个完全托管的、与 ACID 兼容的关系数据库引擎,可帮助您建立、运行和扩展 PostgreSQL 部署。
AWS Backup 是一项完全托管式服务,帮助您在云中以及在本地集中管理和自动执行跨 Amazon Web Services 中的数据保护。
Amazon Elastic Container Registry (Amazon ECR) 是一项安全、可扩展且可靠的托管容器映像注册表服务。
Amazon Elastic Container Service (Amazon ECS)是一项快速且可扩展的容器管理服务,可帮助运行、停止和管理集群上的容器。
AWS Identity and Access Management (AWS IAM) 通过控制验证和授权使用您 AWS 资源的用户,帮助您安全地管理对您 AWS 资源的访问。
AWS Key Management Service (AWS KMS) 可帮助您创建和控制加密密钥,以帮助保护您的数据。
AWS Secrets Manager 帮助您将代码中的硬编码凭证(包括密码)替换为对 Secrets Manager 的 API 调用,以便以编程方式检索密钥。
Amazon Simple Notification Service (Amazon SNS) 可帮助您协调和管理发布者与客户端(包括 Web 服务器和电子邮件地址)之间的消息交换。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
AWS Step Functions 是一项无服务器编排服务,可让您搭配使用 AWS Lambda 函数和其他 Amazon Web Services 来构建业务关键型应用程序。
AWS Systems Manager Parameter Store 提供安全的分层存储,用于配置数据管理和密钥管理。
其他服务
HashiCorp Terraform
是一种开源基础设施即代码 (IaC) 工具,可帮助您使用代码来配置和管理云基础架构和资源。此模式使用 Terraform 创建示例架构。
代码存储库
此模式的源代码可在 GitHub Blu Age 示例 ECS 基础架构 (Terraform) 存储
最佳实践
对于测试环境,请使用诸如配置现代化应用程序的
forceDate
选项之类的功能,以通过始终运行已知时间段来生成一致的测试结果。单独调整每个任务以消耗最佳数量的资源。您可以使用 Amazon Conta CloudWatch iner Insights 获取有关潜在瓶颈的指导。
操作说明
Task | 描述 | 所需技能 |
---|---|---|
克隆解决方案源代码。 | 从GitHub 项目 | DevOps 工程师 |
通过部署资源存储 Terraform 状态来引导环境。 |
| DevOps 工程师 |
Task | 描述 | 所需技能 |
---|---|---|
查看和更新 Terraform 配置。 | 在根目录中,打开文件
| DevOps 工程师 |
部署 Terraform 文件。 | 请从终端运行 请注意,此基础设施部署时间可能为 15 分钟以上。 | DevOps 工程师 |
Task | 描述 | 所需技能 |
---|---|---|
将 Blu Age 容器映像推送到 Amazon ECR。 | 将容器推送到上一篇操作说明中创建的 Amazon ECR 存储库。有关说明,请参阅 Amazon ECR 文档。 记下容器映像 URI。 | DevOps 工程师 |
更新 Terraform,以引用 Blu Age 容器映像。 | 更新文件 | DevOps 工程师 |
重新部署 Terraform 文件。 | 从您的终端运行 | DevOps 工程师 |