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
130
jPrime - Java, Life is Short!
Kevin Dubois
May 28, 2024
Tweet
Share
More Decks by Kevin Dubois
See All by Kevin Dubois
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
110
JFokus - Create AI-infused Java Apps with LangChain4j and Quarkus
kdubois
0
50
jChampions - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
29
Voxxed Ticino - LangChain4J and Quarkus
kdubois
0
36
Voxxed Cern - From 0 to Production-Grade with Java
kdubois
0
90
Tampa JUG + AI - Welcome to the AI Jungle, Now What?
kdubois
0
32
Euro Info - Serverless without Lock-in
kdubois
0
32
OpenShift Commons - Automate Security on Openshift with Trusted Application Pipeline
kdubois
0
38
DevNation Day Stockholm - Inner Loop Development for Distributed Systems
kdubois
0
80
Other Decks in Programming
See All in Programming
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
340
Ça bouge du côté des animations CSS !
goetter
2
150
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
PRレビューのお供にDanger
stoticdev
1
240
GoとPHPのインターフェイスの違い
shimabox
2
210
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
8
1.5k
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
160
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
170
Unity Android XR入門
sakutama_11
0
180
JAWS Days 2025のインフラ
komakichi
1
110
自力でTTSモデルを作った話
zgock999
0
110
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.4k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
How GitHub (no longer) Works
holman
314
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Become a Pro
speakerdeck
PRO
26
5.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Visualization
eitanlees
146
15k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
Building Applications with DynamoDB
mza
93
6.2k
Code Review Best Practice
trishagee
67
18k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
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, ..) @kevindubois@mastodon.social 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! @kevindubois@mastodon.social youtube.com/@thekevindubois linkedin.com/in/kevindubois github.com/kdubois @kevindubois.com