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

Quarkus 101: Intro to Java development with Qua...

Kevin Dubois
February 07, 2023

Quarkus 101: Intro to Java development with Quarkus

Java is a great programming language, however 'traditional' Java isn't so great to work with when it comes to modern, Cloud Native development. Quarkus is a (fairly) new Java stack that addresses issues such as the typical slow startup time and rather large memory usage that hinder the adoption of Java in container and/or Serverless workloads. Quarkus is not just useful for optimizing resource usage though. There is also a big focus on improving the developer experience. In this session we'll demonstrate how Quarkus is very easy to work with and allows developers to work with containers and external dependencies such as databases, Kafka clusters, Kubernetes etc without being experts in any of these technologies.

Kevin Dubois

February 07, 2023
Tweet

More Decks by Kevin Dubois

Other Decks in Programming

Transcript

  1. @kevindubois Kevin Dubois Who’s on stage today? 🤘 Principal Developer

    Advocate at Red Hat 🤘 18+ years professional software development experience 🤘 Speak English, Dutch, French, Italian 🤘 Passionate about Dev Experience & Open Source @[email protected] youtube.com/@thekevindubois linkedin.com/in/kevindubois
  2. @kevindubois Java Designed For a Different Time Traditional • Throughput

    at the expense of footprint • Long running at expense of startup speed • Rich, dynamic behaviour for mutable systems Cloud Native • Throughput solved by scaling • Ephemeral, immutable systems • Footprint and performance matter
  3. @kevindubois Supersonic Subatomic Java Quarkus + Native (via GraalVM) 12

    MB Quarkus + JVM (via OpenJDK) 73 MB Traditional Cloud-Native Stack 136 MB Quarkus + Native (via GraalVM) 0.016 Seconds Quarkus + JVM (via OpenJDK) 0.943 Seconds Traditional Cloud-Native Stack 4.3 Seconds
  4. @kevindubois 9 Cloud Native Java Stack + Containers “Lufthansa Technik

    AVIATAR experiences significant cloud resources savings by moving to Kubernetes-native Quarkus” - Quarkus.io Container Platform K8s Node EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot K8s Node NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS K8s Node Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go K8s Node Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM K8s Node Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native “We could run 3 times denser deployments without sacrificing availability and response times of services”
  5. @kevindubois 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?
  6. @kevindubois Build Time Runtime @ @ </> The Quarkus Way

    Runtime Build Time @ @ </> Package model Build Time Runtime @ @ </>
  7. @kevindubois 🤘 Based on standards 🤘 Developer productivity ◦ Zero-config

    Live coding ◦ Developer services ◦ Continuous testing ◦ Dev UI ◦ CLI 🤘 Unifies Imperative and Reactive Programming 🤘 No hassle native executable generation Enhancing Developer Joy https://quarkus.io/developer-joy
  8. @kevindubois 🤘 Red Hat sits on the GraalVM advisory board

    🤘 Red Hat contributes to GraalVM ◦ Debugging support ◦ ARM support ◦ Java Flight Recorder 🤘 Quarkus is part of the GraalVM test suite 🤘 Mandrel: direct downstream distribution of GraalVM 🤘 Combines best of GraalVM + OpenJDK to offer native builds Native Compilation
  9. @kevindubois Command Line Job Github App Cloud / Container Native

    Serverless & Functions Micro services EDA Kube Operator Traditional Apps CRUD Monoliths GitHub Actions Admin Tools Reactive Systems
  10. @kevindubois Had a good time? let everyone know! @kevindubois #quarkusrocks

    Want to know more? Links are in the jam doc below Web quarkus.io Talk quarkus.io/community Twitter @quarkusio More developers.redhat.com dn.dev/quarkus-tutorial @[email protected]