Migrate from IBM WebSphere Application Server to Apache Tomcat on Amazon EC2 - AWS Prescriptive Guidance

Migrate from IBM WebSphere Application Server to Apache Tomcat on Amazon EC2

R Type: Replatform

Source: Applications

Target: Apache Tomcat on an Amazon EC2 instance

Created by: AWS

Environment: Production

Technology: Websites & web apps

Workload: IBM

Summary

This pattern walks you through the steps for migrating from an on-premises Red Hat Enterprise Linux (RHEL) 6.9 system running IBM WebSphere to RHEL 7.4 running Apache Tomcat on an Amazon Elastic Compute Cloud (Amazon EC2) instance. 

The pattern can be applied to the following source and target versions: 

  • WebSphere 7 to Tomcat 6 (with Java 1.6) 

  • WebSphere 7 to Tomcat 7 (with Java 1.6) 

  • WebSphere 8.5.5 to Tomcat 7 (with Java 1.6 or higher) 

Prerequisites and limitations

 Prerequisites 

  • An active AWS account 

  • Source Java code, with the following assumptions:

    • Uses the Java Development Kit (JDK) version of Java 1.6 or higher

    • Uses the Spring or Apache Struts framework

    • Doesn't use the Enterprise Java Beans (EJB) framework or any other WebSphere server functionality that's not readily available for Tomcat

    • Primarily uses servlets or Java Server Pages (JSPs) 

    • Uses Java Database Connectivity (JDBC) connectors to connect to databases  

  • Source IBM WebSphere version 7 or higher 

  • Target Tomcat version 6 or higher  

Architecture

 Source technology stack

  • A web application built using the Apache Struts Model-View-Controller (MVC) framework 

  • A web application running on IBM WebSphere version 7 or 8.5.5.

  • A web application that uses a Lightweight Directory Access Protocol (LDAP) connector to connect to an LDAP directory (iPlanet/eTrust) 

  • An application that uses IBM Tivoli Access Manager (TAM) connectivity to update the TAM user password (in the present implementation, applications use PD.jar)

 On-premises databases

  • Oracle 11g Standard Edition (SE) 

  • Oracle 11g Standard Edition 1 (SE1) 

  • Oracle 11g Standard Edition 2 (SE2) 

  • Oracle 11g Enterprise Edition (EE)  

 Target technology stack

  • Apache Tomcat version 7 running on RHEL on an EC2 instance

  • Amazon Relational Database Service (Amazon RDS) for Oracle

For more information about the Oracle versions supported by Amazon RDS, see the Amazon RDS for Oracle website.

 Target architecture

Tools

  • Application tier: Rebuilding Java application into a WAR file

  • Database tier: Oracle native backup and restore

Epics

Task Description Skills required
Complete the application discovery, current state footprint, and performance baseline. BA, Migration Lead
Validate the source and target database versions. DBA
Identify the hardware requirements for the target server EC2 instance. DBA, SysAdmin
Identify storage requirements (storage type and capacity). DBA, SysAdmin
Choose the proper EC2 instance type based on capacity, storage features, and network features. DBA, SysAdmin
Identify the network access security requirements for the source and target databases. DBA, SysAdmin
Identify the application migration strategy and tooling. DBA, Migration Lead
Complete the migration design and migration guide for the application. Build Lead, Migration Lead
Complete the application migration runbook. Build Lead, Cutover Lead, Testing Lead, Migration Lead
Task Description Skills required
Create a virtual private cloud (VPC). SysAdmin
Create the security groups. SysAdmin
Configure and start Amazon RDS for Oracle. DBA, SysAdmin
Task Description Skills required
Create or obtain access to the endpoints to fetch the database backup files. DBA
Use the native database engine or a third-party tool to migrate database objects and data. For details, see "Migrating database objects and data" in the Miscellaneous section. DBA
Task Description Skills required
Lodge the change request (CR) for migration. Cutover Lead
Obtain the CR approval for migration. Cutover Lead
Follow the application migration strategy per the application migration runbook. For details, see "Setting up the application tier" in the Miscellaneous section. DBA, Migration Engineer, AppOwner
Upgrade the application (if necessary). DBA, Migration Engineer, AppOwner
Complete the functional, non-functional, data validation, SLA, and performance tests. Testing Lead, App Owner, App Users
Task Description Skills required
Obtain signoff from the application owner or business owner. Cutover Lead
Switch the application clients to the new infrastructure. DBA, Migration Engineer, AppOwner
Task Description Skills required
Shut down temporary AWS resources. DBA, Migration Engineer, SysAdmin
Review and validate the project documents Migration Lead
Gather the metrics around time to migrate, percentage of manual vs. tool, cost savings, etc. Migration Lead
Close out the project and provide feedback. Migration Lead, App Owner

References

Tutorials and videos

Additional information

Migrating database objects and data

For example, if you're using native Oracle backup/restore utilities:

  1. Create the Amazon Simple Storage Service (Amazon S3) backup for database backup files (optional).

  2. Back up the Oracle DB data to the network shared folder.

  3. Log in to the migration staging server to map the network share folder.

  4. Copy data from the network share folder to the S3 bucket.

  5. Request an Amazon RDS Multi-AZ deployment for Oracle.

  6. Restore the on-premises database backup to Amazon RDS for Oracle.

Setting up the application tier

  1. Install Tomcat 7 from the Apache Tomcat website.

  2. Package the application and shared libraries into a WAR file.

  3. Deploy the WAR file in Tomcat.

  4. Monitor the start log to Linux cat any missing shared libraries from WebSphere.

  5. Watch the start record to Linux cat any WebSphere-specific deployment descriptor extensions.

  6. Collect any missing dependent Java libraries from the WebSphere server.

  7. Amend WebSphere-specific deployment descriptor elements with Tomcat-compatible equivalents.

  8. Rebuild the WAR file with the dependent Java libraries and updated deployment descriptors.

  9. Update the LDAP configuration, database configuration, and test connections (see Realm Configuration HOW-TO and JNDI Datasource HOW-TO in the Apache Tomcat documentation).

  10. Test the installed application against the restored Amazon RDS for Oracle database.

  11. Create an Amazon Machine Image (AMI) for Linux from the EC2 instance.

  12. Launch the completed architecture with the Application Load Balancer and Auto Scaling group.

  13. Update the URLs (by using the WebSEAL junction) to point to the Application Load Balancer.

  14. Update the configuration management database (CMDB).