Skip to content

Azure-Samples/migrate-javaee-app-to-azure-training

 
 

Repository files navigation

page_type languages products description urlFragment
sample
java
app-service
PostgreSQL
MySQL
azure-sql-database
Application-Insights
Migrate Java EE apps to Azure
migrate-javaee-app-to-azure-training

Migrate Java EE App to Azure

You will find here a full training workshop on migrating an existing Java EE application to Azure, including guides and demos. You will migrate:

  • Java EE application to App Service Linux and
  • Application's data to Azure Database for PostgreSQL, MySQL and or SQL Database.

What you should expect

This is not the official documentation but an opinionated training.

It is a hands-on training, and it will use the command line extensively. The idea is to get coding very quickly and play with the platform, from a simple demo to far more complex examples.

After completing all the guides, you should have a fairly good understanding of everything that Azure offers for running Java EE applications on PaaS without worrying about the underlying infrastructure or monitoring applications.

You will migrate the famous Sun's 2003 Java EE Blue Print sample application. The most recent incarnation of the sample application uses:

  • Java SE 8
  • Java EE 7
  • JSR 338 Java Persistence API (JPA 2.2)
  • JSR 346 Context and Dependency Injection (CDI 1.1)
  • JSR 345 Enterprise Java Beans 3.2 (EJB 3.2)
  • JSR 344 Java Server Faces (JSF 2.2)
  • JSR 339 Java API for RESTful Web Services (JAX-RS 2.0)
  • Twitter Bootstrap (Bootstrap 3.x, JQuery 2.x, PrimeFaces 6.x)

Upon migration, you will power the app using Azure Database for PostgreSQL, MySQL and or SQL Database.

Symbols

🛑 - Manual Modification Required. When this symbol appears in front of one or more commands, you will need to modify the commands as indicated prior to running them.

🚧 - Preview-specific. This symbol indicates steps that are only necessary while JBoss EAP on App Service is in preview.

💡 - Frustration Avoidance Tip. These will help you avoid potential pitfalls.

Prerequisites and environment setup.

Deploy a Java EE application to Azure.

Create a database - PostgreSQL or MySQL or SQL Database.

Bind the Java EE application to the database.

Configure and monitor Java EE application and its dependencies using Azure Monitor.

Create a GitHub Actions workflow file to continuously deploy a Java EE application.

Conclusion (5 minutes)


Petstore is back!

This Java EE Petstore sample is forked from agoncal/agoncal-application-petstore-ee7 - see Petstore README.

When you create something and give it away, you lose control of what you've created and then, anything can happen.

I created this Petstore application years ago to show how Java EE components would work all together. I used this application in many talks, workshops, demos... and then, time passed, I forgot about it and never updated it. I've written this code when monoliths were a thing, when the cloud was just starting, and when the only CI/CD tool we had was called Hudson.

Today, thanks to the Azure team, my Petstore application is built with GitHub actions and deployed to the cloud. Without changing the original code, and with only a few commands and some configuration, you can deploy the application to Azure. What a journey!

Thank you,

Antonio Goncalves

Contributors

Thank you and congratulations to many contributors for making this training repo available millions of Java developers:

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.