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
47
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
89
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
DevNation Stockholm - Getting started with Event Streaming using Apache Kafka and Camel
kdubois
0
77
Other Decks in Programming
See All in Programming
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
190
技術を改善し続ける
gumioji
0
120
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
Unity Android XR入門
sakutama_11
0
180
GoとPHPのインターフェイスの違い
shimabox
2
210
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
800
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
150
15分で学ぶDuckDBの可愛い使い方 DuckDBの最近の更新
notrogue
3
510
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
860
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.2k
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.5k
Navigating Team Friction
lara
183
15k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Unsuck your backbone
ammeep
669
57k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
A Tale of Four Properties
chriscoyier
158
23k
A better future with KSS
kneath
238
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Applications with DynamoDB
mza
93
6.2k
Bash Introduction
62gerente
611
210k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
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