IBM Developer Blog

Follow the latest happenings with IBM Developer and stay in the know.

Use my Application Modernization Sample to discovery why and how to modernize your apps

I recently open sourced an application modernization sample, which demonstrates how to modernize an old (2010) Java EE application to become a modern (2021) cloud-native application.

In this sample, I address these 10 questions for modernizing applications:

  1. What does application modernization have to do with rabbits?

    You can get app updates out faster and you can isolate and repair faulty microservices without downtime. You can learn more about the benefits of app modernization in my Developer Diaries video.

  2. Why should you consider modernizing applications?

    I outline 10 reasons in my personal blog, but my top 3 are more agility, better user experiences, and reduced costs.

  3. How does IBM Cloud Transformation Advisor support modernizing applications?

    Essentially, it helps you containerize your on-premises workloads and determines the development costs for moving them to the cloud.

  4. How can the Eclipse WebSphere Migration Toolkit help developers update their code?

    The Migration Toolkit lists necessary code changes and provides suggestions and documentation how to modernize code with the latest versions of Liberty.

  5. Why should you avoid building distributed monoliths, and what is the Strangler Pattern?

    Don’t use microservices because of the hype, use micoservices to avoid monoliths because it makes sense for your app. And, the strangler pattern lets you take baby steps by splitting off on service from your monolith to experiment with.

  6. How can IBM’s Mono2Micro tool help you identify microservices?

    For more sophisticated examples than this sample app, you can use IBM’s Mono2Micro Tool to identify microservices candidates.

  7. When should you use Open Liberty and when should you use Quarkus?

    Open Liberty is the optimal target platform when modernizing JEE applications because Java EE and now Jakarta EE is upwards compatible. Quarkus allows reactive endpoints and reactive database access for more efficient resource usage (Jakarta doesn’t support this).

  8. What are the advantages of reactive programming?

    Costs of cloud-native applications depend on resources like memory and CPU. Applications that are built on reactive frameworks like Quarkus (which is based on Eclipse Vert.x) are more efficient than classic imperative Java applications.

  9. How can web applications be modernized?

    Modern frameworks like Web Components, React, and Vue.js make developers more productive and provide better user experiences (for example, responsive UIs) compared to older frameworks like Dojo.

  10. What are micro frontends and how can messaging be used for decoupling?

    You can use “micro frontends” in microservices-based architectures to modernize your web apps. Similar to using microservices in the backend, micro frontends allow de-coupling in frontends. For example, this allows separate CI/CD pipelines to update certain parts of the UI only. The de-coupling of micro frontends can be achieved via JavaScript events (RxJS) similarly to Kafka in the backend.

Are you ready to modernize your old Java apps?

Are you ready to get started with application modernization a try? I hope my sample app will help!