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

6-29-23 - [DevNation] - Quarkus for Spring Developers

6-29-23 - [DevNation] - Quarkus for Spring Developers

Are you familiar with Spring and like learning new things?

In this session, I will show concepts and conventions familiar to Spring developers and how those same concepts and conventions can be implemented in Quarkus, all while highlighting similarities and differences between them. Additionally, I will show similarities and differences in how testing is done, highlighting Quarkus Dev Services and continuous testing.

This session will be mostly live coding while minimizing the number of slides. I will introduce an existing Spring application with a full test suite and build a Quarkus equivalent version of it, live. Content will come from my book, "Quarkus for Spring Developers." (https://red.ht/quarkus-spring-devs)

Eric Deandrea

June 22, 2023
Tweet

More Decks by Eric Deandrea

Other Decks in Technology

Transcript

  1. @edeandrea • How Quarkus enables modern Java development & the

    Kubernetes-native experience 
 • Introduce familiar Spring concepts, constructs, & conventions and how they map to Quarkus 
 • Emphasis on testing patterns & practices https://red.ht/quarkus-spring-devs
  2. @edeandrea The Warmup Issue with Java Simon Ritter - Azul

    Systems - https://youtu.be/bWmuqh6wHgE (first 13 minutes)
  3. @edeandrea Build Time Runtime Packaging 
 (maven, etc) gradle…) Load

    config file from file system Parse it Classpath scanning to find annotated classes Attempt to load class to enable/disable features Build its model of 
 the world. Start the management (thread, pool…) @ 
 @ </> How Does a Framework Start?
  4. @edeandrea JVM Build Time @ 
 @ </> Package 


    model Native The Quarkus Way enables Native Compilation
  5. @edeandrea JVM Quarkus Spring Boot Ratio (Quarkus / SB) Framework

    version 3.1.2.Final 3.1.1 Build time (s) 7.1 4.2 169.02% Av. RSS after startup (MB) 173.58 295.3 58.78% Av. time to 1st req (ms) 2,505.33 5,578.33 44.91% Av. RSS after 1st req (MB) 230.73 301.15 76.62% Av. throughput (req/sec) 28,307.17 7,466.97 379.1% Av. RSS for max throughput (MB) 438.93 484.49 90.6% Max throughput density (req/sec/ MB) 67.4 15.8 426.5% Native Quarkus Spring Boot Ratio (Quarkus / SB) Framework version 3.1.2.Final 3.11 Build time (s) 127.38 212.95 59.82% Av. RSS after startup (MB) 65.44 154.98 42.22% Av. time to 1st req (ms) 50.67 250 20.27% Av. RSS after 1st req (MB) 72.9 158.95 45.86% Av. throughput (req/sec) 17,140.27 6,441.99 266.07% Av. RSS for max throughput (MB) 328.54 434.06 75.69% Max throughput density (req/sec/ MB) 53.1 16 331.85% Don’t Take My Word For It! Some real numbers (8 cores, 12GB RAM, GraalVM 22.3.1.r17)