AWS Prescriptive Guidance
Patterns

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

R Type :RePlatform

source :IBM WebSphere

target :Apache Tomcat on an Amazon EC2 instance

tags :linux, rhel, oracle, database, rds, websphere, tomcat, apache, struts, spring, amazon ec2

categories :Independent Software Vendor, Software Infrastructure

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) 

Assumptions and Prerequisites

 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 Used

Tools

  • Application tier: Rebuilding Java application into a WAR file

  • Database tier: Oracle native backup and restore

Epics

Plan the migration

Tasks

Title Description Skills Predecessor
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

Configure the infrastructure

Tasks

Title Description Skills Predecessor
Create a virtual private cloud (VPC). SysAdmin
Create the security groups. SysAdmin
Configure and start Amazon RDS for Oracle. DBA, SysAdmin

Migrate data

Tasks

Title Description Skills Predecessor
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 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. DBA

Migrate the application

Tasks

Title Description Skills Predecessor
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. Set 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). 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

Cut over

Tasks

Title Description Skills Predecessor
Obtain signoff from the application owner or business owner. Cutover Lead
Switch the application clients to the new infrastructure. DBA, Migration Engineer, AppOwner

Close the project

Tasks

Title Description Skills Predecessor
Shut down the temporary AWS Secrets Manager 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 and Help

References

 

Tutorials and videos

Contact and help

Migration Pattern Library Support: aws-mpl@amazon.com