

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon 上从 IBM WebSphere 应用程序服务器迁移到 Apache Tomcat EC2
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2"></a>

*Neal Ardeljan 和 Afroz Khan，Amazon Web Services*

## Summary
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-summary"></a>

此模式将引导您完成从运行 IBM WebSphere 应用程序服务器 (WAS) 的本地红帽企业 Linux (RHEL) 6.9 或更高版本系统迁移到在亚马逊弹性计算云 (Amazon) 实例上运行 Apache Tomcat 的 RHEL 8 的步骤。 EC2 

该模式可以应用于以下源和目标版本： 
+ WebSphere 应用程序服务器 7.x 到 Apache Tomcat 8（使用 Java 7 或更高版本） 
+ WebSphere 应用服务器 8.x 到 Apache Tomcat 8（使用 Java 7 或更高版本） 
+ WebSphere 应用程序服务器 8.5.5.x 到 Apache Tomcat 9（使用 Java 8 或更高版本） 
+ WebSphere 应用程序服务器 8.5.5.x 到 Apache Tomcat 10（使用 Java 8 或更高版本） 

## 先决条件和限制
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-prereqs"></a>

**先决条件**** **
+ 一个有效的 Amazon Web Services account 
+ Java 源代码，假定如下：
  + 使用 Java Development Kit (JDK)，版本的 Java 7 或更高版本 
  + 使用 Spring 或 Apache Struts 框架 
  + 不使用企业 Java Beans (EJB) 框架或任何其他不适合 Tomcat 的 WebSphere 服务器功能
  + 主要使用 servlet 或 Java 服务器页面 () JSPs 
  + 使用 Java Database Connectivity (JDBC) 连接器连接到数据库  
+ 来源 IBM WebSphere 应用程序服务器 7.x 或更高版本 
+ 目标 Apache Tomcat 8.5 或更高版本  

## 架构
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-architecture"></a>

**源技术堆栈****  **
+ 使用 Apache Struts Model-View-Controller (MVC) 框架构建的 Web 应用程序 
+ 在 IBM WebSphere 应用服务器 7.x 或 8.x 版本上运行的 Web 应用程序
+ 使用轻型目录访问协议 (LDAP) 连接器连接至 LDAP 目录 (iPlanet/eTrust) 的 Web 应用程序 
+ 使用 IBM Tivoli Access Manager (TAM) 连接更新 TAM 用户密码的应用程序（在本实现中，应用程序使用 PD.jar）

** ****本地数据库**
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)
+ Oracle Database 12c 第 2 版 (12.2.0.1)
+ Oracle Database 12c 第 1 版 (12.1.0.2)

**目标技术堆栈**
+ Apache Tomcat 版本 8（或更高版本）在实例上的 RHEL 上运行 EC2 
+ Amazon Relational Database Service (Amazon RDS) for Oracle

有关 Amazon RDS 支持的 Oracle 版本的更多信息，请参阅 [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 网站。

**目标架构**

![在亚马逊上从 IBM WebSphere 迁移到 Apache Tomcat 的架构 EC2](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/96f91201-e0a6-4d3f-a94e-7bd68a59cc4e/images/11afe7c0-b400-423b-9dfe-02a915fe47ff.png)


## 工具
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-tools"></a>
+ 应用程序层：将 Java 应用程序重建至 WAR 文件。
+ 数据库层：Oracle 本机备份与还原。
+ 适用于 Jakarta EE 的 Apache Tomcat 迁移工具。该工具采用为在 Apache Tomcat 9 上运行的 Java EE 8 编写的 Web 应用程序，然后自动将其转换为实现 Jakarta EE 9 的 Apache Tomcat 10 上运行。

## 操作说明
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-epics"></a>

### 计划迁移
<a name="plan-the-migration"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 完成应用程序发现、当前状态占用空间与性能基准。 |  | BA，迁移主管 | 
| 验证源数据库和目标数据库版本。 |  | 数据库管理员 | 
| 确定目标服务器 EC2 实例的硬件要求。 |  | 数据库管理员， SysAdmin | 
| 识别存储需求（存储类型和容量）。 |  | 数据库管理员， SysAdmin | 
| 根据容量、存储功能和网络功能选择正确的 EC2 实例类型。 |  | 数据库管理员， SysAdmin | 
| 确定源数据库和目标数据库的网络访问安全要求。 |  | 数据库管理员， SysAdmin | 
| 确定应用程序迁移策略与工具。 |  | 数据库管理员，迁移主管 | 
| 完成应用程序迁移设计与迁移指南。 |  | 构建主管，迁移主管 | 
| 完成应用程序迁移运行手册。 |  | 构建主管，割接主管，测试主管，迁移主管 | 

### 配置基础设施
<a name="configure-the-infrastructure"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建虚拟私有云（VPC）。 |  | SysAdmin | 
| 创建安全组。 |  | SysAdmin | 
| 配置和启动 Amazon RDS for Oracle。 |  | 数据库管理员， SysAdmin | 

### 迁移数据
<a name="migrate-data"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建或获取对端点访问权限，以获取数据库备份文件。 |  | 数据库管理员 | 
| 使用原生数据库引擎或第三方工具迁移数据库对象和数据。 | 有关详细信息，请参阅*其他信息*部分中的“迁移数据库对象和数据”。 | 数据库管理员 | 

### 迁移应用程序
<a name="migrate-the-application"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 提交变更申请 (CR)。以进行迁移。 |  | 割接主管 | 
| 获得 CR 批准，以进行迁移。 |  | 割接主管 | 
| 遵循应用程序迁移运行手册的应用程序迁移策略。 | 有关详细信息，请参阅*其他信息*部分中的设置应用程序层。 | 数据库管理员，迁移工程师，应用程序所有者 | 
| 升级应用程序（如有必要）。 |  | 数据库管理员，迁移工程师，应用程序所有者 | 
| 完成功能测试、非功能测试、数据验证、SLA 与性能测试。 |  | 测试负责人、应用程序所有者、应用程序用户 | 

### 割接
<a name="cut-over"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 获得应用程序所有者或企业主的签名。 |  | 割接主管 | 
| 将应用程序客户端切换至新基础设施。 |  | 数据库管理员，迁移工程师，应用程序所有者 | 

### 关闭项目
<a name="close-the-project"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 关闭临时 AWS 资源。 |  | DBA，迁移工程师， SysAdmin | 
| 审核和验证项目文档。 |  | 迁移主管 | 
| 收集关于迁移时间、手动任务与自动任务的百分比以及成本节省等指标。 |  | 迁移主管 | 
| 关闭项目并提供反馈。 |  | 迁移主管，应用程序所有者 | 

## 相关资源
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-resources"></a>

**参考**
+ [Apache Tomcat 10.0 文档](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
+ [Apache Tomcat 9.0 文档](https://tomcat.apache.org/tomcat-9.0-doc/index.html)
+ [Apache Tomcat 8.0 文档](https://tomcat.apache.org/tomcat-8.0-doc)
+ [Apache Tomcat 8.0 安装指南](https://tomcat.apache.org/tomcat-8.0-doc/setup.html)
+ [Apache Tomcat JNDI 文档](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)
+ [Amazon RDS for Oracle 网站](https://aws.amazon.com/rds/oracle/) 
+ [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/) 
+ [Oracle 和 Amazon Web Services](https://aws.amazon.com/oracle/) 
+ [Amazon RDS 上的 Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS Multi-AZ 部署](https://aws.amazon.com/rds/details/multi-az/) 

**教程和视频**
+ [Amazon RDS 入门](https://aws.amazon.com/rds/getting-started/) 

## 附加信息
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-additional"></a>

**迁移数据库对象与数据**

例如，如果您使用的是本机 Oracle backup/restore 实用程序：

1. 为数据库备份文件创建 Amazon Simple Storage Service (Amazon S3) 备份（可选）。

1. 将 Oracle Database 数据备份到网络共享文件夹。

1. 登录迁移暂存服务器，以映射网络共享文件夹。

1. 将数据从网络共享文件夹复制到 S3 存储桶。

1. 申请 Amazon RDS Multi-AZ 部署。

1. 将本地数据库备份恢复至 Amazon RDS for Oracle。

**设置应用程序层**

1. 从 Apache Tomcat 网站安装 Tomcat 8（或 9/10）。

1. 将应用程序和共享库打包至 WAR 文件。

1. 在 Tomcat 中部署 WAR 文件。

1. 监控启动日志，查看`Linux cat`所有缺少的共享库 WebSphere。

1. 观看`Linux cat`任何 WebSphere特定部署描述符扩展的起始记录。

1. 从 WebSphere 服务器收集所有缺失的依赖 Java 库。

1. 使用与 Tomc WebSphere at 兼容的等效项修改特定部署描述符元素。

1. 使用依赖 Java 库和更新的部署描述符重建 WAR 文件。

1. 更新 LDAP 配置、数据库配置和测试连接（请参阅 Apache Tomcat 文档中的 [Realm Configuration HOW-TO](https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html) 以及 [JNDI Datasource HOW-TO](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)）。

1. 针对还原的 Amazon RDS for Oracle Database 测试已安装的应用程序。

1. 从该 EC2 实例创建适用于 Linux 的亚马逊系统映像 (AMI)。

1. 使用应用程序负载均衡器和自动扩缩组启动已完成的架构。

1. 更新 URLs （使用 WebSEAL 连接点）以指向 Application Load Balancer。

1. 配置管理数据库 (CMDB) 