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
JFokus - Create AI-infused Java Apps with LangChain4j and Quarkus
kdubois
0
46
jChampions - Serverless Java in Action: Cloud Agnostic Design Patterns and Tips
kdubois
0
28
Voxxed Ticino - LangChain4J and Quarkus
kdubois
0
35
Voxxed Cern - From 0 to Production-Grade with Java
kdubois
0
83
Tampa JUG + AI - Welcome to the AI Jungle, Now What?
kdubois
0
31
Euro Info - Serverless without Lock-in
kdubois
0
31
OpenShift Commons - Automate Security on Openshift with Trusted Application Pipeline
kdubois
0
37
DevNation Day Stockholm - Inner Loop Development for Distributed Systems
kdubois
0
79
DevNation Stockholm - Getting started with Event Streaming using Apache Kafka and Camel
kdubois
0
75
Other Decks in Programming
See All in Programming
CI改善もDatadogとともに
taumu
0
180
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
230
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
220
Jakarta EE meets AI
ivargrimstad
0
160
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
410
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
110
sappoRo.R #12 初心者セッション
kosugitti
0
270
楽しく向き合う例外対応
okutsu
0
570
ARA Ansible for the teams
kksat
0
170
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
330
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
260
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
950
Featured
See All Featured
Building Applications with DynamoDB
mza
93
6.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Navigating Team Friction
lara
183
15k
Embracing the Ebb and Flow
colly
84
4.6k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
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