SlideShare a Scribd company logo
BuildingCloud-NativeApplications
withQUARKUS
Rich Lee
Taipei, November 2020
About Me
Rich Lee
• Integration Architect at Cathay Financial Holdings
• Microservices
• Event-driven
• Cloud Native App Development
• Kafka & Event-driven consultant
rich04230@gmail.com RICH0423 @rich04230
The Evolution Of Application Architecture
Monolith Cloud-Native Microservices Serverless Event-driven
Autonomy / Scale
The Evolution Of Deployment
https://quarkus.io/blog/quarkus-for-spring-developers/
Quarkus is a Kubernetes-native Java framework introduced by
Red Hat in 2019.
QUARKUS
Supersonic Subatomic Java
Why Quarkus?
• How to get streaming data
https://quarkus.io/assets/images/quarkus_metrics_graphic_bootmem_wide.png
What it is?
Quarkus is a Kubernetes-native Java framework
introduced by Red Hat in 2019.
• Container First
• Cloud Native
• Kubernetes Native
Best of Breed Frameworks & Standards
Developer Joy
• Based on standards, but not limited
• Zero config & live reload
• Unified configuration
• No hassle native executable generation
Creating Quarkus Application
JCConf.tw 2020 - Building cloud-native applications with Quarkus
Demo - Quarkus DataSource
Database kind JDBC driver XA driver
db2 com.ibm.db2.jcc.DBDriver com.ibm.db2.jcc.DB2XADataSource
derby org.apache.derby.jdbc.ClientDriver org.apache.derby.jdbc.ClientXADataS
ource
h2 org.h2.Driver org.h2.jdbcx.JdbcDataSource
mariadb org.mariadb.jdbc.Driver org.mariadb.jdbc.MySQLDataSource
mssql com.microsoft.sqlserver.jdbc.SQLServ
erDriver
com.microsoft.sqlserver.jdbc.SQLServ
erXADataSource
mysql com.mysql.cj.jdbc.Driver com.mysql.cj.jdbc.MysqlXADataSourc
e
postgresql org.postgresql.Driver org.postgresql.xa.PGXADataSource
https://quarkus.io/guides/datasource
Quarkus
on Kubernetes
Quarkus on Kubernetes
Deployment
ReplicaSet
Pod
Docker
Service
NodePort / LoadBalancer
ConfigMap / Secret
Kubernetes Resources
Quarkus on Kubernetes
Quarkus provides extensions for building container images.
• Jib
• Docker
• S2I
To add the Jib extension
./mvnw quarkus:add-extension -Dextensions="container-image-
jib"
To build and push the image
./mvnw clean package Dquarkus.container-image.push=true
Quarkus on Kubernetes
Quarkus offers the ability to automatically generate Kubernetes
resources.
• Kubernetes
• OpenShift
• Knative
To add the Kubernetes extension
./mvnw quarkus:add-extension -Dextensions=”quarkus-
kubernetes"
To generate different resources by property
# Possible values are kubernetes, openshift and knative.
# The default value is kubernetes.
quarkus.kubernetes.deployment-target=openshift
application.properties
kubernetes.yml
JCConf.tw 2020 - Building cloud-native applications with Quarkus
Messaging with Quarkus
Messaging with Quarkus
kafkaJMS
Messaging with Quarkus
MicroProfile Reactive Messaging is based around 3 main
concepts:
• Message
– A message is an envelope wrapping a payload
– org.eclipse.microprofile.reactive.messaging.Message
• Channel
– Messages transit on channel
– A channel is a virtual destination identified by a name
• Connector
– are extensions managing the communication with a specific transport technology
Messaging with Quarkus
MicroProfile Reactive Messaging is based around 3 main
concepts:
• Message
• Channel
• Connector
Application
Broker
Connector
incoming
outgoing
Building Event-driven App with Kafka
The Kafka connector adds support for Kafka to Reactive
Messaging.
• is based on the Vert.x Kafka Client
• name is: smallrye-kafka
• to indicate a channelmp.messaging.[outgoing|incoming].{channel-name}.property=value
Building Event-driven App with Kafka
To add the Kafka connector extension
./mvnw quarkus:add-extension -Dextensions="smallrye-
reactive-messaging-kafka"
To configure your application to receive Kafka records
kafka.bootstrap.servers=kafka:9092
mp.messaging.incoming.prices.connector=smallrye-kafka
mp.messaging.incoming.prices.value.deserializer=org.apache.kafka.common.
serialization.DoubleDeserializer
Building Event-driven App with Kafka
Producer
Broker
@Outgoing("iot-out")
public double produce() {
return sensor.currentTemperature();
}
@Outgoing("iot-out") iot-topic
publishes to iot-topic
connector
smallrye-
kafka
Building Event-driven App with Kafka
Broker@Incoming("iot-in")
public void consume(Event event) {
logger.info("Received event: {}", event);
processEvent(event);
}
Consumer
@Incoming("iot-in") iot-topic
consumes from iot-topic
connector
smallrye-
kafka
JCConf.tw 2020 - Building cloud-native applications with Quarkus
Quarkus and Observability
Observability
Logs TracingMetrics
• Observability is the ability to watch the state of a
system/application based on some external outputs.
Quarkus and Observability
Resources
• Quarkus.io https://code.quarkus.io/
• Quarkus Guides https://quarkus.io/guides/
• QuarkusWorkshop https://quarkus.io/quarkus-workshops/super-
heroes/
• Quarkus Cheat Sheets https://lordofthejars.github.io/quarkus-cheat-
sheet/
• RedHat Learning Portal
https://learn.openshift.com/middleware/courses/middleware-
quarkus/
Books
Thank You

More Related Content

PDF
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
PDF
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
PPTX
OpenSlava 2014 - CloudFoundry inside-out
PDF
A sail in the cloud
PDF
Scaling Gilt: from monolith ruby app to micro service scala service architecture
PPTX
Autoscaling in Kubernetes
PDF
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
PDF
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
GDG Taipei 2020 - Cloud and On-premises Applications Integration Using Event-...
Make Java Microservices Resilient with Istio - Mangesh - IBM - CC18
OpenSlava 2014 - CloudFoundry inside-out
A sail in the cloud
Scaling Gilt: from monolith ruby app to micro service scala service architecture
Autoscaling in Kubernetes
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019

What's hot (20)

PPTX
Building Cloud Native Applications Using Spring Boot and Spring Cloud
PDF
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
PDF
Stateless and Stateful Services in Kubernetes - Mohit Saxena - Citrix - CC18
PPTX
Azure dev ops integrations with Jenkins
PPTX
Microservices architecture
PPTX
Ibm cloud nativenetflixossfinal
PDF
Andrea Tosatto - Kubernetes Beyond - Codemotion Milan 2017
PDF
12 Ways to Supercharge Your Connect Add-on
PDF
#JaxLondon keynote: Developing applications with a microservice architecture
PDF
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
PDF
SRE & Kubernetes
PDF
Making Sense of Serverless Computing
PPTX
Java PaaS Vendor Survey - September 2011
PPTX
The Microservices world in. NET Core and. NET framework
PPTX
AngularJS Anatomy & Directives
PDF
Build a JIRA Server Add-on as a Microservice - You Can Do It!
PDF
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
PDF
Azure functions
PPTX
Microservices pros and cons dark
PPTX
MS Insights Brazil 2015 containers and devops
Building Cloud Native Applications Using Spring Boot and Spring Cloud
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Stateless and Stateful Services in Kubernetes - Mohit Saxena - Citrix - CC18
Azure dev ops integrations with Jenkins
Microservices architecture
Ibm cloud nativenetflixossfinal
Andrea Tosatto - Kubernetes Beyond - Codemotion Milan 2017
12 Ways to Supercharge Your Connect Add-on
#JaxLondon keynote: Developing applications with a microservice architecture
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
SRE & Kubernetes
Making Sense of Serverless Computing
Java PaaS Vendor Survey - September 2011
The Microservices world in. NET Core and. NET framework
AngularJS Anatomy & Directives
Build a JIRA Server Add-on as a Microservice - You Can Do It!
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Azure functions
Microservices pros and cons dark
MS Insights Brazil 2015 containers and devops
Ad

Similar to JCConf.tw 2020 - Building cloud-native applications with Quarkus (20)

PDF
Top 10 Kubernetes Native Java Quarkus Features
PDF
Quarkus - a next-generation Kubernetes Native Java framework
PDF
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
PDF
Devoxx France 2023 - 1,2,3 Quarkus.pdf
PDF
Quarkus - a shrink ray to your Java Application
PDF
Meetup 2022 - APIs with Quarkus.pdf
PDF
Quarkus@Code Garden
PDF
Let's be real. Quarkus in the wild.
PDF
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
PDF
Download full Quarkus Cookbook Kubernetes Optimized Java Solutions 1st Editio...
PDF
Y. Tsesmelis, Uni Systems: Quarkus use cases and business value
PDF
Immediate download Quarkus Cookbook Kubernetes Optimized Java Solutions 1st E...
PPSX
Kubernetes Native Microservices with Quarkus and MicroProfile
PDF
Reactive Microservices with Quarkus
PDF
Exploring Quarkus on JDK 17
PDF
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
PPTX
Knative with .NET Core and Quarkus with GraalVM
PDF
Quarkus Denmark 2019
PDF
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
PDF
Top 10 Kubernetes Native Java Quarkus Features
Quarkus - a next-generation Kubernetes Native Java framework
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Devoxx France 2023 - 1,2,3 Quarkus.pdf
Quarkus - a shrink ray to your Java Application
Meetup 2022 - APIs with Quarkus.pdf
Quarkus@Code Garden
Let's be real. Quarkus in the wild.
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Download full Quarkus Cookbook Kubernetes Optimized Java Solutions 1st Editio...
Y. Tsesmelis, Uni Systems: Quarkus use cases and business value
Immediate download Quarkus Cookbook Kubernetes Optimized Java Solutions 1st E...
Kubernetes Native Microservices with Quarkus and MicroProfile
Reactive Microservices with Quarkus
Exploring Quarkus on JDK 17
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
Knative with .NET Core and Quarkus with GraalVM
Quarkus Denmark 2019
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
Ad

More from Rich Lee (10)

PDF
COSCUP 2023 Building Portable and Reliable Applications on Google Cloud
PDF
2021 JCConf 使用Dapr簡化Java微服務應用開發
PDF
Redis Cache design
PDF
Couchbase & FTS
PPTX
Centralized log-management-with-elastic-stack
PDF
Microservice Architecture
PPTX
Apache Spark Introduction
PPTX
AWS IoT in action
PPTX
Realtime web development
PPTX
Event sourcing
COSCUP 2023 Building Portable and Reliable Applications on Google Cloud
2021 JCConf 使用Dapr簡化Java微服務應用開發
Redis Cache design
Couchbase & FTS
Centralized log-management-with-elastic-stack
Microservice Architecture
Apache Spark Introduction
AWS IoT in action
Realtime web development
Event sourcing

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Nekopoi APK 2025 free lastest update
PDF
Website Design Services for Small Businesses.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Complete Guide to Website Development in Malaysia for SMEs
PPTX
assetexplorer- product-overview - presentation
PDF
Download FL Studio Crack Latest version 2025 ?
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Design an Analysis of Algorithms I-SECS-1021-03
Monitoring Stack: Grafana, Loki & Promtail
Salesforce Agentforce AI Implementation.pdf
AutoCAD Professional Crack 2025 With License Key
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Computer Software and OS of computer science of grade 11.pptx
Autodesk AutoCAD Crack Free Download 2025
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Nekopoi APK 2025 free lastest update
Website Design Services for Small Businesses.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Advanced SystemCare Ultimate Crack + Portable (2025)
Design an Analysis of Algorithms II-SECS-1021-03
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
wealthsignaloriginal-com-DS-text-... (1).pdf
Complete Guide to Website Development in Malaysia for SMEs
assetexplorer- product-overview - presentation
Download FL Studio Crack Latest version 2025 ?
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM

JCConf.tw 2020 - Building cloud-native applications with Quarkus

  • 2. About Me Rich Lee • Integration Architect at Cathay Financial Holdings • Microservices • Event-driven • Cloud Native App Development • Kafka & Event-driven consultant rich04230@gmail.com RICH0423 @rich04230
  • 3. The Evolution Of Application Architecture Monolith Cloud-Native Microservices Serverless Event-driven Autonomy / Scale
  • 4. The Evolution Of Deployment https://quarkus.io/blog/quarkus-for-spring-developers/
  • 5. Quarkus is a Kubernetes-native Java framework introduced by Red Hat in 2019. QUARKUS Supersonic Subatomic Java
  • 6. Why Quarkus? • How to get streaming data https://quarkus.io/assets/images/quarkus_metrics_graphic_bootmem_wide.png
  • 7. What it is? Quarkus is a Kubernetes-native Java framework introduced by Red Hat in 2019. • Container First • Cloud Native • Kubernetes Native
  • 8. Best of Breed Frameworks & Standards
  • 9. Developer Joy • Based on standards, but not limited • Zero config & live reload • Unified configuration • No hassle native executable generation
  • 12. Demo - Quarkus DataSource Database kind JDBC driver XA driver db2 com.ibm.db2.jcc.DBDriver com.ibm.db2.jcc.DB2XADataSource derby org.apache.derby.jdbc.ClientDriver org.apache.derby.jdbc.ClientXADataS ource h2 org.h2.Driver org.h2.jdbcx.JdbcDataSource mariadb org.mariadb.jdbc.Driver org.mariadb.jdbc.MySQLDataSource mssql com.microsoft.sqlserver.jdbc.SQLServ erDriver com.microsoft.sqlserver.jdbc.SQLServ erXADataSource mysql com.mysql.cj.jdbc.Driver com.mysql.cj.jdbc.MysqlXADataSourc e postgresql org.postgresql.Driver org.postgresql.xa.PGXADataSource https://quarkus.io/guides/datasource
  • 14. Quarkus on Kubernetes Deployment ReplicaSet Pod Docker Service NodePort / LoadBalancer ConfigMap / Secret Kubernetes Resources
  • 15. Quarkus on Kubernetes Quarkus provides extensions for building container images. • Jib • Docker • S2I To add the Jib extension ./mvnw quarkus:add-extension -Dextensions="container-image- jib" To build and push the image ./mvnw clean package Dquarkus.container-image.push=true
  • 16. Quarkus on Kubernetes Quarkus offers the ability to automatically generate Kubernetes resources. • Kubernetes • OpenShift • Knative To add the Kubernetes extension ./mvnw quarkus:add-extension -Dextensions=”quarkus- kubernetes" To generate different resources by property # Possible values are kubernetes, openshift and knative. # The default value is kubernetes. quarkus.kubernetes.deployment-target=openshift
  • 21. Messaging with Quarkus MicroProfile Reactive Messaging is based around 3 main concepts: • Message – A message is an envelope wrapping a payload – org.eclipse.microprofile.reactive.messaging.Message • Channel – Messages transit on channel – A channel is a virtual destination identified by a name • Connector – are extensions managing the communication with a specific transport technology
  • 22. Messaging with Quarkus MicroProfile Reactive Messaging is based around 3 main concepts: • Message • Channel • Connector Application Broker Connector incoming outgoing
  • 23. Building Event-driven App with Kafka The Kafka connector adds support for Kafka to Reactive Messaging. • is based on the Vert.x Kafka Client • name is: smallrye-kafka • to indicate a channelmp.messaging.[outgoing|incoming].{channel-name}.property=value
  • 24. Building Event-driven App with Kafka To add the Kafka connector extension ./mvnw quarkus:add-extension -Dextensions="smallrye- reactive-messaging-kafka" To configure your application to receive Kafka records kafka.bootstrap.servers=kafka:9092 mp.messaging.incoming.prices.connector=smallrye-kafka mp.messaging.incoming.prices.value.deserializer=org.apache.kafka.common. serialization.DoubleDeserializer
  • 25. Building Event-driven App with Kafka Producer Broker @Outgoing("iot-out") public double produce() { return sensor.currentTemperature(); } @Outgoing("iot-out") iot-topic publishes to iot-topic connector smallrye- kafka
  • 26. Building Event-driven App with Kafka Broker@Incoming("iot-in") public void consume(Event event) { logger.info("Received event: {}", event); processEvent(event); } Consumer @Incoming("iot-in") iot-topic consumes from iot-topic connector smallrye- kafka
  • 29. Observability Logs TracingMetrics • Observability is the ability to watch the state of a system/application based on some external outputs.
  • 31. Resources • Quarkus.io https://code.quarkus.io/ • Quarkus Guides https://quarkus.io/guides/ • QuarkusWorkshop https://quarkus.io/quarkus-workshops/super- heroes/ • Quarkus Cheat Sheets https://lordofthejars.github.io/quarkus-cheat- sheet/ • RedHat Learning Portal https://learn.openshift.com/middleware/courses/middleware- quarkus/
  • 32. Books