Containerizing traditional Java EE applications for the AWS Cloud - AWS Prescriptive Guidance

Containerizing traditional Java EE applications for the AWS Cloud

Mayuki Yamabe and Michal Urbaniak, Amazon Web Services (AWS)

April 2022 (document history)

Overview

Although Java Enterprise Edition (EE) is the dominant framework for enterprise applications, it can be challenging to migrate your Java EE applications to the Amazon Web Services (AWS) Cloud without refactoring your application’s business logic and data models. This guide helps you overcome that challenge by using a containerization strategy for migrating your Java EE application to the AWS Cloud, while preserving the application’s server-side business logic and data model. The strategy is based on refactoring your application into microservices and then running the application on a modernized container platform.

The “heart” of an application is the business logic and data model, which are tightly coupled with longstanding business rules and requirements. This tight coupling makes applications more difficult to refactor. In this guide, we recommend a strategy to preserve the server-side business logic and data model as much as possible, while modernizing your application’s underlying technologies by using Docker containers and container orchestration platforms, such as Amazon Elastic Container Service (Amazon ECS) and Amazon Elastic Kubernetes Service (Amazon EKS).

The following diagram shows a design pattern for refactoring a traditional Java EE application into a containerized application.

Refactored Java EE application