Coding in Java with Joy - A Quarkus talk
Syed M Shaaf, Tech. Evangelist
Create Java applications, easier, simpler and faster
with Quarkus
Slide 2
Slide 2 text
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
Slide 3
Slide 3 text
The fun in developing applications
Slide 4
Slide 4 text
This talk is all about development
Slide 5
Slide 5 text
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
Slide 6
Slide 6 text
The hidden truth about Java
and Containers
➔ Startup overhead
◆ # of classes, bytecode, JIT
➔ Memory overhead
◆ # of classes, metadata, compilation
Slide 7
Slide 7 text
This is how our world looks now…
Slide 8
Slide 8 text
Photo by Birmingham Museums Trust on Unsplash
Java is Dead! Long live Java
Slide 9
Slide 9 text
WHAT IS QUARKUS?
QUARK: elementary particle / US: hardest thing in computer science
Slide 10
Slide 10 text
This is how our world looks now…
Slide 11
Slide 11 text
Subatomic Java
Slide 12
Slide 12 text
Supersonic Java
REST
REST + CRUD
Slide 13
Slide 13 text
A Kubernetes Native Java stack
tailored for GraalVM & OpenJDK
HotSpot, crafted from the best of breed
Java libraries and standards
Supersonic. Subatomic. Java.
Slide 14
Slide 14 text
This is how our world looks now…
Slide 15
Slide 15 text
DEMO
Slide 16
Slide 16 text
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
Slide 17
Slide 17 text
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 reactiveSay;
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher stream() {
return reactiveSay;
}
Slide 18
Slide 18 text
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.
Slide 19
Slide 19 text
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