Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migrating from Java EE - to SpringBoot or somet...

Migrating from Java EE - to SpringBoot or something else?

Many companies use old and expensive Java EE servers like WebSphere or WebLogic. If you're considering moving away from them, this session is for you. We'll explore three main options: widely used SpringBoot framework, modern open-source Jakarta EE servers like GlassFish, and emerging choices like Quarkus and Piranha Cloud.

We'll compare these options in terms of how easy it is to get started, how straightforward it is to migrate from Java EE, how developer-friendly they are, and what features they offer for production. We'll also look at the evolution of the Jakarta EE ecosystem and how it currently compares to SpringBoot.

Whether you're a developer, a DevOps engineer, or an architect, this session will give you practical insights and help you make informed choices about your Java stack. Join me to find out the answer to the question: Should you migrate from Java EE - to SpringBoot or something else?

OmniFish Presentations

December 02, 2024
Tweet

More Decks by OmniFish Presentations

Other Decks in Programming

Transcript

  1. Ondro Mihályi @OmniFishEE Why to move from old Java EE

    servers? WebLogic, WebSphere • Heavy and bloated • Outdated – Java 11, Java EE 8 • Require expensive license Other servers • worth to upgrade or migrate to something else?
  2. Ondro Mihályi @OmniFishEE Why to move from old Java EE

    servers? WebLogic, WebSphere • Heavy and bloated • Outdated – Java 11, Java EE 8 • Require expensive license → There must be a better way! Other servers • worth to upgrade or migrate to something else?
  3. Ondro Mihályi @OmniFishEE Apache Tomcat • The most popular Java

    server • Lightweight – Starts very fast (600ms), low memory (10MB), but not much functionality • Needs libraries or a framework – Then it’s not so simple
  4. Ondro Mihályi @OmniFishEE Apache Tomcat • The most popular Java

    server • Lightweight – Starts very fast (600ms), low memory (10MB), but not much functionality • Needs libraries or a framework – Then it’s not so simple
  5. Ondro Mihályi @OmniFishEE Spring Boot (with Tomcat) • Fast startup

    (2s), low memory (16 MB) • Most widely used framework • A lot of resources to get started • Fast dev cycle (Spring Boot dev tools) • Wide range of integrations • Uber JAR, Docker, native binary, Cloud func. • Lot of dependencies in the project
  6. Ondro Mihályi @OmniFishEE Migrate to SpringBoot? • Very good option

    for new services • Java EE 8 code requires refactoring – Only a few APIs supported natively – Some can be supported (JAX-RS, JSF) – Others not (EJB, CDI, Security) • Risk maintaining both Java EE & Spring
  7. Ondro Mihályi @OmniFishEE What about existing Java EE code? ➔Upgrade

    to a new server version (if possible) ➔Migrate to a different, modern app server ➔To a modern runtime with Jakarta EE support
  8. Ondro Mihályi @OmniFishEE Upgrade to a new version • Not

    possible with WebLogic or WebSphere, only Java EE 8 and Java 11 → Migrate to another app server • Many other app servers support Jakarta EE 10 – https://jakarta.ee/compatibility/certification/10/ 1
  9. Ondro Mihályi @OmniFishEE Migrate to a modern app server •

    Many opensource options: – GlassFish, WildFly, Payara, OpenLiberty • Eclipse GlassFish – Fastest to provide new Jakarta EE – Actively developed, monthly releases – Commercially supported by OmniFish 2
  10. Ondro Mihályi @OmniFishEE GlassFish Server • Pretty fast startup (5s),

    low memory (55 MB) • Many resources to get started with Jakarta EE • Fast dev cycle with IDE plugins • Range of Jakarta EE integrations • Simple build config (just Jakarta EE API) • Install and config server separately • Deploy from directory, Docker container • No native build or cloud functions 2
  11. Ondro Mihályi @OmniFishEE GlassFish Embedded • Fast startup (3s), low

    memory (40 MB) • Simple build config (just Jakarta EE API) • Fast dev cycle requires a build step • Run from command line, from Java app • Docker container • No native build or cloud functions 2
  12. Ondro Mihályi @OmniFishEE Migrating to GlassFish Server • Migrating from

    Java EE 8 to Jakarta EE 10 – Straightforward, few breaking changes • Many components shared with WebLogic – Supports similar features (admin UI, clustering with admin server, session replication, etc.) – Good support for Oracle DB with EclipseLink 2
  13. Ondro Mihályi @OmniFishEE javax.* jakarta.* package prefix → • Jakarta

    EE 9 same as Java EE 8 but jakarta.* prefix • Automated solutions: – Eclipse Transformer – OpenRewrite – Guides with best practices 2
  14. Ondro Mihályi @OmniFishEE Modern Jakarta EE runtimes? No app server

    Runnable JAR Flexible deployments Composable (plugins) Support some or all Jakarta EE Fast startup, low memory
  15. Ondro Mihályi @OmniFishEE Modern runtimes - Quarkus • Very fast

    startup (1s), low memory (10 MB) • Many Jakarta EE & MicroProfile APIs supported • A lot of resources to get started • Quarkus dev mode, live reload • Wide range of integrations • Runnable JAR, Docker, Cloud functions • Excellent native binary support • Lot of dependencies in the project 3
  16. Ondro Mihályi @OmniFishEE Modern runtimes – Piranha Cloud • Very

    fast startup (200ms), low memory (8 MB) • Almost all Jakarta EE Web Profile • Not many resources to get started • No dev mode • Range of integrations via Jakarta EE • Simple build config (just Jakarta EE API) • Runnable JAR, runnable from Java app • Lot of dependencies, simplified via distributions 3
  17. Ondro Mihályi @OmniFishEE Migration paths 8 SpringBoot → New code,

    huge ecosystem Modern app servers (GlassFish, WildFly) → Same code, modern engine Modern runtimes (Quarkus, Piranha) → New code, fast startup, productivity → Similar code, lightweight engine 10
  18. Ondro Mihályi @OmniFishEE Thank you! Jakarta EE Consultancy (migrations, tuning)

    Jakarta EE Application Development GlassFish Server Support Jakarta EE Training omnifish.ee OmniFish - Jakarta EE Consulting & Support