Migration approach - AWS Prescriptive Guidance

Migration approach

This section describes an approach for containerizing traditional Java EE applications in the AWS Cloud. For more general migration guidelines, see Mobilize your organization to accelerate large-scale migrations in the AWS Prescriptive Guidance documentation.

Start the discovery and planning process

Java EE application migration requires deep application discovery. As part of the discovery and planning process, we recommend that you identify the following in your Java EE application:

  • Number of CPUs

  • Memory and disk requirements

  • Java EE, the Java Development Kit (JDK), and application server versions (such as Oracle WebLogic Server 10)

Understand clustering options for high availability and scalability

More and more traditional Java EE applications are running on vendor-specific clustering systems that improve application availability and scalability. In a containerized approach, clustering is performed by container orchestration platforms such as Amazon ECS and Amazon EKS. We recommend that you understand the difference between clustering done by container orchestration platforms and clustering done by your current application platforms.

Assess the compatibility of vendor-specific packages

Application server vendors can offer their own Java EE packages. To ensure compatibility with containerized environments, check if your application uses any Java EE packages from application server vendors.

Select a target container platform

Choosing the right container platform for Java EE depends on your business needs. Popular choices include container-friendly, open-source (and sometimes light-weight) Java EE platforms that are distributed on Docker Hub, including GlassFish Server, WildFly, and Open Liberty. We recommend that you consider a container platform that offers production-level technical support and licensing.

Prepare for automated testing

Migrating Java EE applications to a new application server requires code or configuration changes other than business logic. Without an automated test and build process for your current application, you can’t verify that your code and configuration changes won’t break existing business logic. We recommend that you establish an automated build and test pipeline in the first phase of the project, which includes modernizing manual test processes and unmaintained application build settings (such as build.xml in Apache Ant) with mainstream build tools such as Maven (Apache Maven documentation) or Gradle (Gradle documentation). For more information, see Automatically build and deploy a Java application to Amazon EKS using a CI/CD pipeline in the AWS Prescriptive Guidance documentation.