Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jPrime - Java, Life is Short!
Search
Kevin Dubois
May 28, 2024
Programming
0
150
jPrime - Java, Life is Short!
Kevin Dubois
May 28, 2024
Tweet
Share
More Decks by Kevin Dubois
See All by Kevin Dubois
KubeCon China - Progressive Delivery made easy with Argo Rollouts
kdubois
2
49
DevTalks 25 - Create your own AI-infused Java apps with ease
kdubois
2
140
Boston JUG - From 0 to Production-Grade with Kubernetes-Native Java
kdubois
0
44
Devoxx UK 2025 - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
76
Devoxx UK - Java Meets AI: Build LLM-Powered Apps with LangChain4j
kdubois
2
130
Devoxx Greece - Create AI Infused Java Apps with LangChain4j and Quarkus
kdubois
0
21
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
1
240
JFokus - Create AI-infused Java Apps with LangChain4j and Quarkus
kdubois
1
68
jChampions - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
45
Other Decks in Programming
See All in Programming
Go1.25からのGOMAXPROCS
kuro_kurorrr
0
120
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
780
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
130
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
340
PT AI без купюр
v0lka
0
230
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
130
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
110
ワンバイナリWebサービスのススメ
mackee
10
7.7k
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
240
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
16
3.9k
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
480
人には人それぞれのサービス層がある
shimabox
3
670
Featured
See All Featured
KATA
mclloyd
29
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Writing Fast Ruby
sferik
628
61k
Facilitating Awesome Meetings
lara
54
6.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building an army of robots
kneath
306
45k
Embracing the Ebb and Flow
colly
86
4.7k
Bash Introduction
62gerente
614
210k
Transcript
@kevindubois Java, Life is Short! Kevin Dubois, Principal Developer Advocate,
Red Hat @kevindubois
@kevindubois Kevin Dubois ★ Principal Developer Advocate at Red Hat
★ Based in Belgium ★ 🗣 Speak English, Dutch, French, Italian ★ Open Source Contributor (Quarkus, Camel, Knative, ..) @
[email protected]
youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com
@kevindubois https://openjdk.org/projects/amber/ + https://openjdk.org/jeps/445
@kevindubois $ javac HelloWorld.java * $ java HelloWorld Hello World
* https://openjdk.org/jeps/330
@kevindubois $ jbang init Main.java $ jbang Main.java https://jbang.dev
@kevindubois $ jbang init --template=cli hello.java https://jbang.dev
@kevindubois GPT jbang --preview init cat.java “Print a cat” jbang
--preview init cli.java "create a currency converter from Euro to Dollars" https://jbang.dev
@kevindubois Managing multiple (Java) versions Legacy project running Java 8
“Newer projects”: Java 11 “State of the art”: Java 17 “YOLO”: Java 21 or *gasp* 22/23ea Vendor supported: Java 21 Temurin GraalVM: 21
@kevindubois https://sdkman.io $ sdk list java $ sdk install java
21.0.3-tem $ sdk install java 23.ea.23-open $ sdk use java 21.0.3-tem …. $ sdk install maven $ sdk install jbang $ sdk upgrade jbang $ sdk install quarkus
@kevindubois Code. Compile. Deploy. Run & Test. Repeat.
@kevindubois https://quarkus.io/get-started/
@kevindubois https://testcontainers.org
@kevindubois Dev Services https://quarkus.io/guides/dev-services ❤
@kevindubois Developer Flow Outer loop Inner loop Pull/Merge Request Production
Build / Package Code Push Debug Code Review Build Deploy Security Tests Compliance Inner loop Outer loop Developer Test
@kevindubois Containers! Cloud! Kubernetes! Serverless!
@kevindubois
@kevindubois $ quarkus image build <jib/docker/buildpacks> https://www.kevindubois.com/2023/04/25/build-java-container-images-in-seconds-using-quarkus-cli/ podman-desktop.io
@kevindubois Run Containers (and AI Models!) Locally with Ease Podman
Desktop https://youtu.be/Zogg2c1z1P0
@kevindubois https://developers.redhat.com/developer-sandbox
@kevindubois apiVersion: v1 kind: Service metadata: name: code-with-quarkus spec: ports:
- name: https port: 443 protocol: TCP targetPort: 8443 - name: http port: 80 protocol: TCP targetPort: 8080 selector: app.kubernetes.io/name: code-with-quarkus app.kubernetes.io/version: 1.0.0-SNAPSHOT type: ClusterIP apiVersion: apps/v1 kind: Deployment metadata: name: code-with-quarkus spec: replicas: 1 selector: matchLabels: app.kubernetes.io/version: 1.0.0-SNAPSHOT app.kubernetes.io/name: code-with-quarkus template: spec: containers: - env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace image: quay.io/kevindubois/code-with-quarkus:1.0.0 imagePullPolicy: Always name: code-with-quarkus ports: - containerPort: 8080 name: http protocol: TCP - containerPort: 8443 name: https protocol: TCP serviceAccountName: code-with-quarkus
@kevindubois “Regular Kubernetes” $ quarkus extension add kubernetes $ quarkus
deploy Serverless with Knative $ quarkus deploy knative or functions: quarkus ext add funky || kn func create
@kevindubois https://microprofile.io/
@kevindubois Release aftercare
@kevindubois Observability
@kevindubois https://opentelemetry.io/ https://github.com/kdubois/quarkus-observability
@kevindubois Metrics https://micrometer.io/ https://github.com/kdubois/quarkus-observability
@kevindubois Releasing Distributed Apps
@kevindubois JReleaser https://jreleaser.org https://github.com/kdubois/quarkus-jreleaser
@kevindubois $ jreleaser init $ jreleaser assemble $ jreleaser full-release
https://jreleaser.org https://github.com/kdubois/quarkus-jreleaser mvn -Pnative,dist package mvn -Prelease jreleaser:full-release
@kevindubois
@kevindubois tomorrow at 10am: Hands-on Lab: Build AI-powered applications with
Java (and Quarkus)
@kevindubois Free Developer e-Books! https://developers.redhat.com/eventtutorials
@kevindubois Start exploring in the OpenShift Sandbox. Learn containers, Kubernetes,
and OpenShift in your browser. developers.redhat.com/developer-sandbox Try Red Hat's products and technologies without setup or configuration.
@kevindubois Thank you! @
[email protected]
youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com