Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Modernizing Java Apps for IT Pros [Videos]

DZone's Guide to

Modernizing Java Apps for IT Pros [Videos]

See what role Docker containers can play in modernizing your Java apps and their infrastructure, particularly in preparation for cloud deployments.

· Java Zone ·
Free Resource

Get the Edge with a Professional Java IDE. 30-day free trial.

Today, we start releasing a new video series in Docker’s Modernize Traditional Apps (MTA) program. These are the first 4 of a 5 part video series in Docker’s Modernize Traditional Apps (MTA) program, aimed at Java IT Pros. The video series shows you how to move a Java EE app on JBoss Wildfly to a Docker container and deploy it to a scalable, highly-available environment in the cloud – without any changes to the app.

Modernizing Java Apps

Part 1 introduces the series, explaining what is meant by “traditional” apps and the problems they present. Traditional apps are built to run on a server, rather than on a modern application platform. They have common traits, like being complex to manage and difficult to deploy. A portfolio of traditional applications tends to under-utilize its infrastructure and over-utilize the humans who manage it. Docker Enterprise Edition (EE) fixes that, giving you a consistent way to package, release and manage all your apps without having to re-write them.

Part 2 shows how easy it is to move traditional apps to Docker. I start with a Java EE application running on Wildfly and package the entire monolithic application as a Docker image. Then, I run the application in a container on my MacBook Pro. I do that without changing the app and without needing to access the original source code.

Part 3 covers the upgrade workflow in Docker. I build a new version of the Docker image for my app by migrating it to a Tomcat EE image. I also replace the presentation layer implemented with Java Server faces with a JavaScript client written in React. I show how to do this using Maven and Node.js images to build them without having those toolchains on your laptop. Docker allows you to split off parts of the application and update them with modern technology.  In this case, I make use of the application’s REST interface to start moving towards a microservices architecture that’s suited to deployment in a cloud architecture.

Part 4 shows how to share the application images through a registry, in this case Docker Hub. A registry allows you to share the image publicly. In addition to sharing images, Docker Hub and Docker Trusted Registry support automating the build process. I’ll connect the GitHub repository with the application source code to the repository and configure it build a new image every time code is pushed. Updated images of the application will always be available for deployment.

In the upcoming Part 5, I’ll deploy the application as a cluster in the cloud using Docker EE. Migrating traditional apps to Docker EE gives you increased efficiency, portability and security.

For more information about modernizing traditional applications, check out these links:

Get the Java IDE that understands code & makes developing enjoyable. Level up your code with IntelliJ IDEA. Download the free trial.

Topics:
docker ee ,java ,legacy applications ,containerization

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}