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

Coding in Java with Joy - A Quarkus talk

Coding in Java with Joy - A Quarkus talk

You can deploy your applications to Kubernetes; that's great! You can have pipelines and a breadth of tools to do analysis, etc. But what about how you develop and what you develop, and finally, how you interact with applications deployed in Kubernetes while in the development inner loop. How can that be done easier, simpler, faster? Java has been there for a long time, and all of us have ways to develop applications and tools that we all love. So how does Quarkus do any of this differently?

Live coding, adding functionality, extensions without restarting, spinning up dev services e.g., databases, making coding and testing easier and continuous, enhancing the inner loop, etc. In this talk, I will create an application from scratch with Quarkus, add databases to it, add a front-end, stream etc. And finally, work with it while it's deployed in Kubernetes using my dev machine and effectively live code remotely. Join this talk to learn about the Java developers journey to developer Joy!

#lessslides and #morecode

https://sched.co/siJ2

98df87e65215b7f0e1a7c708f7722162?s=128

Syed M Shaaf

January 14, 2022
Tweet

Transcript

  1. Coding in Java with Joy - A Quarkus talk Syed

    M Shaaf, Tech. Evangelist Create Java applications, easier, simpler and faster with Quarkus
  2. Technical Evangelist at Red Hat. Java developer for 15 years

    Java AWT, Swing days CI/CD Struts, EE OpenStack/Kubernetes automation ..Vert.x/Quarkus Previously: Software Engineer at EnterpriseDB Java Consultant @syshaaf @sshaaf linkedin.com/in/shaaf/ About Me shaaf.dev
  3. The fun in developing applications

  4. This talk is all about development

  5. What's happening to the world.. Deployment: multi-app, appserver App Lifecycle:

    Months Memory: 1GB+ RAM Startup Time: 10s of sec Deployment: Single App App Lifecycle: Days Memory: 100MBs+ RAM Startup Time: Seconds Deployment: Single App App Lifecycle: minutes/seconds Memory: 100MBs+ RAM Startup Time: Seconds
  6. The hidden truth about Java and Containers ➔ Startup overhead

    ◆ # of classes, bytecode, JIT ➔ Memory overhead ◆ # of classes, metadata, compilation
  7. This is how our world looks now…

  8. Photo by Birmingham Museums Trust on Unsplash Java is Dead!

    Long live Java
  9. WHAT IS QUARKUS? QUARK: elementary particle / US: hardest thing

    in computer science
  10. This is how our world looks now…

  11. Subatomic Java

  12. Supersonic Java REST REST + CRUD

  13. A Kubernetes Native Java stack tailored for GraalVM & OpenJDK

    HotSpot, crafted from the best of breed Java libraries and standards Supersonic. Subatomic. Java.
  14. This is how our world looks now…

  15. DEMO

  16. What do I want? A cohesive platform for optimized developer

    joy: • Zero config, live reload in the blink of an eye • Reverse stack trace • Dev Services • Developer UI • Continuous testing • Remote Dev anywhere including K8s • Deploy functions, microservices to k8s
  17. Unifies Imperative and Reactive • Combine both Reactive and imperative

    development in the same application • Use the technology that fits your use-case • Key for reactive systems based on event driven apps @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } @Inject @Channel(”kafka”) Publisher<String> reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher<String> stream() { return reactiveSay; }
  18. Best of Breed Frameworks & Standards Quarkus provides a cohesive,

    fun to use, full-stack framework by leveraging a growing list of over fifty best-of-breed libraries that you love and use. All wired on a standard backbone.
  19. Resources from the presentation 19 Developer Sandbox How do I

    get started? • Quarkus.io • Dev Services (video) • Remote dev • Quarkus Insights • Continuous testing • Source code: demo app • Quarkus for Spring Developers E-Book https://developers.redhat.com/developer-sandbox IDC Red Hat Quarkus Lab Validation Quarkus.io