SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Goto Amsterdam
Quarkus
&
KNative
Quarkus&Kube-NativeJava
1
Maxim Burgerhout Roel Hodzelmans
Business Development Manager Sr Solution Architect
maxim@redhat.com roel@redhat.com
@MaximBurgerhout @RoelHodzelmans
Supersonic. Subatomic. Java.
2
Growth in Application Architecture Choices
Cloud Native Microservices Serverless
Event-Driven
Architecture
Monolith
3
Quarkus & Kube-Native Java
4
Monolith
Quarkus - Kubernetes Native Java
Cloud Native Microservices Serverless
Event-Driven
Architecture
Istio Knative
GraalVM
5
JVM CI
Sulong (LLVM)
Truffle
Graal Compiler
Substrate VM
Java HotSpot VM
6
“Just Enough Spring Boot” in Quarkus
Quarkus 1.0 Quarkus 1.X
In Discussion
Goal
● Partial framework
implementations
● Make Quarkus “familiar”
to Spring developers
● Lower the bar for Spring
developer adoption
Moving to Compile-Time Boot
THOUGHTS FOR THE FUTURE
7
What does a framework do at startup time
● Parse config files
● Classpath & classes scanning
○ for annotations, getters or other
metadata
● Build framework metamodel objects
● Prepare reflection and build proxies
● Start and open IO, threads etc
● Moved as much as possible to build phase
● Minimized runtime dependencies
● Maximize dead code elimination
● Introduced clear metadata contracts
● Spectrum of optimization levels
(all → some → minimal runtime reflection)
Quarkus Optimizations
A dynamic runtime on immutable infrastructure is unnecessary overhead
8
Quarkus Extensions
RESTEasy
Netty
HibernateORM
HibernateValidator
MPOpenAPI
MPJWT
EclipseVert.X
Agroal(connpool)
NarayanaJTA
MPReactive
Messaging
ApacheCamel
...
Quarkus Core
Arc (DI)
Jandex Gizmo Graal SDK
HotSpot SubstrateVM
Java…
the Enterprise
Workhorse
Microprofile
Java EEJ2 EE
Monolith Cloud-Native
Microservices
Serverless
Event-Driven
Cloud-Native
Microservices
Experts from “cloud-native” Java OS projects
Quarkus & Kube-Native Java
10
Eclipse Vert.x Hibernate Eclipse MicroProfileRESTEasy WildFly Undertow OpenJDK
Quarkus Benefits
11
Through low learning curve, developer
efficiency, extension ecosystem
Remain competitiveFaster time to market
Modern software stack focused on
containers and kube that enables fast
experimentation and rapid delivery of
changes in production
Cost Savings
.Low memory, fast startup, cloud
efficiency, low learning curve,
serverless, high density on K8s & cloud
Why Quarkus?
12
Live coding
Unified configuration
Developer joy
Over 90 extensions
“Powered by Quarkus” applications
Best of breed libraries and standards
Tailors your app for HotSpot & GraalVM
Fast boot time and low RSS memory
Serverless fit
Container first
Combines blocking and non-blocking
Built-in event bus
Unifies imperative and reactive
“Quarkus has introduced a new paradigm that puts things upside down on the way things are run under the covers - supporting native, all
reflection done at compile time and not runtime is just amazing!” - Talkdesk
13
Benefit No. 1: Container First
REST + CRUD
Quarkus + GraalVM 0.055 Seconds
Quarkus + OpenJDK 2.5 Seconds
Traditional Cloud-Native Stack 9.5 Seconds
Time to first response
REST + CRUD
Quarkus +
GraalVM
35 MB
Quarkus +
OpenJDK
130 MB
Traditional
Cloud-Native Stack
218 MB
“We went from 1-min startup times to 400 milliseconds”
14
A cohesive platform for optimized developer joy:
● Based on standards and more
● Unified configuration
● Live coding
● Streamlined code for the 80% common usages, flexible
for the 20%
● No hassle native executable generation
Benefit No. 2: Developer Joy
“Our developers used to wait 2 to 3 mins to see their changes. Live coding does away with this.”
15
Benefit No. 3: Unifies Imperative and Reactive
● Combine both Reactive and imperative development in the same application
● Inject the EventBus or the Vertx context
● Use the technology that fits your use-case
● Key for reactive systems based on event driven apps
@Inject
SayService say;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return say.hello();
}
@Inject @Stream(”kafka”)
Publisher<String> reactiveSay;
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher<String> stream() {
return reactiveSay;
}
16
Benefit No. 4: Best of Breed Frameworks & Standards
Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty
Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan
Flyway Neo4j MongoDB MQTT KeyCloak Apache Tika
“Reduced the time for developer productivity due to a small learning curve and existing expertise of the Quarkus extensions.”
Introduction to
Serverless
Quarkus&Kube-NativeJava
17
Service Microservice Function
> Single Purpose
> Stateless
> Independently Scalable
> Automated
> Single Action
> Ephemeral
> Autonomous
> Loosely-coupled
Architectural Evolution to Serverless
f( )
18
Serverless Requirements
19
“We went from 6-7 sec startup time with plain Java on AWS Lambda to 10 milliseconds with Quarkus”
Platform that can...
● Scale to 0
● Rapid scaling (up & down)
● Event mechanism
● Routing and Networking
Applications that can…
● Startup quickly
● Respond quickly
● Low on memory
● Require small disk size
20
https://serverless.com/blog/2018-serverless-community-survey-huge-growth-usage/
21
Why do we need Serverless ?
Cloud Agility
Everywhere
Event-driven
Applications
Focus On Business
Results
Consistent
Scalability
Historical Enterprise Java Stack
22
Operating System + Hardware/VM
Java Virtual Machine (Hotspot)
Application Server
App App App App App
Dynamic Application Frameworks
Architecture: Monoliths
Deployment: multi-app,
appserver
App Lifecycle: Months
Memory: 1GB+ RAM
Startup Time: 10s of sec
Modern Enterprise Java Stack
23
Java Virtual Machine (Hotspot)
Application Server
App
Dynamic Application Frameworks
Architecture: Microservices
Deployment: Single App
App Lifecycle: Days
Memory: 100MBs+
RAM
Startup Time: Seconds
No
Change
Java Serverless Stack
24
Java Virtual Machine (Hotspot)
Application Server
App
Dynamic Application Frameworks
Architecture: Microservices
Deployment: Single App
App Lifecycle: Days
Memory: 100MBs+
RAM
Startup Time: Seconds
No
Change
Quarkus - Optimizing the Stack
Quarkus & Kube-Native Java
25
App (Imperative / Reactive)
Optimized Application Frameworks
Architecture: Microservices,
Serverless
Deployment: Single App
App Lifecycle: Milliseconds
to Days
Memory: 10MBs+ RAM
Startup Time: Milliseconds
Java Virtual Machine (Hotspot)
Optional
Cloud Native Java Stack + containers
Designing a Java Stack for the future
26
26
CONTAINER ORCHESTRATION
NodeNode
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
Traditional Cloud-Native
Java Stack
Node
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
https://developers.redhat.com/blog/2017/03/14/java-inside-docker/
Cloud Native Java Stack + containers
Designing a Java Stack for the future
27
27
CONTAINER ORCHESTRATION
Node
EAP, WAS Liberty or
Spring Boot
EAP, WAS Liberty or
Spring Boot
EAP, WAS Liberty or
Spring Boot
EAP, WAS Liberty or
Spring Boot
Node
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
NodeJS
Node
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
Go Go Go
https://developers.redhat.com/blog/2017/03/14/java-inside-docker/
Node
Quarkus on JVM
Quarkus on JVM
Quarkus on JVM
Quarkus on JVM
Quarkus on JVM
Quarkus on JVM
Quarkus on JVM
Node
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
Quarkus
Native
“We could run 3 times denser deployments without sacrificing availability and response times of services”
@danieloh30 @QuarkusIO
https://quarkus.io
@QuarkusIO
https://QuarkusIO.zulipchat.com

Contenu connexe

Tendances

Tendances (20)

Back to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy ApplicationsBack to the Future: Containerize Legacy Applications
Back to the Future: Containerize Legacy Applications
 
Docker Enterprise Workshop - Intro
Docker Enterprise Workshop - IntroDocker Enterprise Workshop - Intro
Docker Enterprise Workshop - Intro
 
Enterprise Cloud Native is the New Normal
Enterprise Cloud Native is the New NormalEnterprise Cloud Native is the New Normal
Enterprise Cloud Native is the New Normal
 
How Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App ModernizationHow Docker EE is Finnish Railway’s Ticket to App Modernization
How Docker EE is Finnish Railway’s Ticket to App Modernization
 
Continuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8sContinuous (Non-)Functional Testing of Microservices on K8s
Continuous (Non-)Functional Testing of Microservices on K8s
 
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
Use Docker to Deliver Cognitive Services Running Cross Platform and Multi Clo...
 
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech TalkCloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
Cloud-Native Modernization or Death? A false dichotomy. | DevNation Tech Talk
 
Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Spring Boot Observability
Spring Boot ObservabilitySpring Boot Observability
Spring Boot Observability
 
Improving security with Istio | DevNation Tech Talk
Improving security with Istio | DevNation Tech TalkImproving security with Istio | DevNation Tech Talk
Improving security with Istio | DevNation Tech Talk
 
Clean Infrastructure as Code
Clean Infrastructure as CodeClean Infrastructure as Code
Clean Infrastructure as Code
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
Cloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CDCloud Native Dünyada CI/CD
Cloud Native Dünyada CI/CD
 
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
Overseeing Ship's Surveys and Surveyors Globally Using IoT and Docker by Jay ...
 
Enabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows ContainersEnabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows Containers
 
Scaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for EnterpriseScaling DevSecOps Culture for Enterprise
Scaling DevSecOps Culture for Enterprise
 
Cloud Platforms "demystified": Docker, Kubernetes, Knative & Cloud Foundry
Cloud Platforms "demystified": Docker, Kubernetes, Knative & Cloud FoundryCloud Platforms "demystified": Docker, Kubernetes, Knative & Cloud Foundry
Cloud Platforms "demystified": Docker, Kubernetes, Knative & Cloud Foundry
 
ThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - PerthThoughtWorks Technology Radar Roadshow - Perth
ThoughtWorks Technology Radar Roadshow - Perth
 
Cloud Native Summit 2019 Summary
Cloud Native Summit 2019 SummaryCloud Native Summit 2019 Summary
Cloud Native Summit 2019 Summary
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 

Similaire à Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro

Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
SVDevOps
 

Similaire à Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro (20)

Quarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java frameworkQuarkus - a next-generation Kubernetes Native Java framework
Quarkus - a next-generation Kubernetes Native Java framework
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of QuarkusD. Andreadis, Red Hat: Concepts and technical overview of Quarkus
D. Andreadis, Red Hat: Concepts and technical overview of Quarkus
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...OSDC 2018 | Three years running containers with Kubernetes in Production by T...
OSDC 2018 | Three years running containers with Kubernetes in Production by T...
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019Introduction to Micronaut - JBCNConf 2019
Introduction to Micronaut - JBCNConf 2019
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
 
Session 4 GCCP.pptx
Session 4 GCCP.pptxSession 4 GCCP.pptx
Session 4 GCCP.pptx
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes
 

Plus de Fabio Tiriticco

Plus de Fabio Tiriticco (13)

Intro slides - Global Reactive Meetup - Move over JDBC!
Intro slides - Global Reactive Meetup - Move over JDBC!Intro slides - Global Reactive Meetup - Move over JDBC!
Intro slides - Global Reactive Meetup - Move over JDBC!
 
Planespotting - From Zero To Deep Learning
Planespotting - From Zero To Deep Learning Planespotting - From Zero To Deep Learning
Planespotting - From Zero To Deep Learning
 
From Zero To Deep Learning With Scala
From Zero To Deep Learning With ScalaFrom Zero To Deep Learning With Scala
From Zero To Deep Learning With Scala
 
Ten Frustrations From The Community Trenches (And How To Deal With Them)
Ten Frustrations From The Community Trenches (And How To Deal With Them)Ten Frustrations From The Community Trenches (And How To Deal With Them)
Ten Frustrations From The Community Trenches (And How To Deal With Them)
 
We all need friends and Akka just found Kubernetes
We all need friends and Akka just found KubernetesWe all need friends and Akka just found Kubernetes
We all need friends and Akka just found Kubernetes
 
Cloud native akka and kubernetes holy grail to elasticity
Cloud native akka and kubernetes   holy grail to elasticityCloud native akka and kubernetes   holy grail to elasticity
Cloud native akka and kubernetes holy grail to elasticity
 
Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!Reactive Summit 2017 Highlights!
Reactive Summit 2017 Highlights!
 
Reactive Programming or Reactive Systems? (spoiler: both)
Reactive Programming or Reactive Systems? (spoiler: both)Reactive Programming or Reactive Systems? (spoiler: both)
Reactive Programming or Reactive Systems? (spoiler: both)
 
Beyond Fault Tolerance with Actor Programming
Beyond Fault Tolerance with Actor ProgrammingBeyond Fault Tolerance with Actor Programming
Beyond Fault Tolerance with Actor Programming
 
Akka Streams at Weeronline
Akka Streams at WeeronlineAkka Streams at Weeronline
Akka Streams at Weeronline
 
Reactive in Android and Beyond Rx
Reactive in Android and Beyond RxReactive in Android and Beyond Rx
Reactive in Android and Beyond Rx
 
Reactive Android: RxJava and beyond
Reactive Android: RxJava and beyondReactive Android: RxJava and beyond
Reactive Android: RxJava and beyond
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro

  • 1. Goto Amsterdam Quarkus & KNative Quarkus&Kube-NativeJava 1 Maxim Burgerhout Roel Hodzelmans Business Development Manager Sr Solution Architect maxim@redhat.com roel@redhat.com @MaximBurgerhout @RoelHodzelmans
  • 3. Growth in Application Architecture Choices Cloud Native Microservices Serverless Event-Driven Architecture Monolith 3
  • 4. Quarkus & Kube-Native Java 4 Monolith Quarkus - Kubernetes Native Java Cloud Native Microservices Serverless Event-Driven Architecture Istio Knative
  • 5. GraalVM 5 JVM CI Sulong (LLVM) Truffle Graal Compiler Substrate VM Java HotSpot VM
  • 6. 6 “Just Enough Spring Boot” in Quarkus Quarkus 1.0 Quarkus 1.X In Discussion Goal ● Partial framework implementations ● Make Quarkus “familiar” to Spring developers ● Lower the bar for Spring developer adoption
  • 7. Moving to Compile-Time Boot THOUGHTS FOR THE FUTURE 7 What does a framework do at startup time ● Parse config files ● Classpath & classes scanning ○ for annotations, getters or other metadata ● Build framework metamodel objects ● Prepare reflection and build proxies ● Start and open IO, threads etc ● Moved as much as possible to build phase ● Minimized runtime dependencies ● Maximize dead code elimination ● Introduced clear metadata contracts ● Spectrum of optimization levels (all → some → minimal runtime reflection) Quarkus Optimizations A dynamic runtime on immutable infrastructure is unnecessary overhead
  • 9. Java… the Enterprise Workhorse Microprofile Java EEJ2 EE Monolith Cloud-Native Microservices Serverless Event-Driven Cloud-Native Microservices
  • 10. Experts from “cloud-native” Java OS projects Quarkus & Kube-Native Java 10 Eclipse Vert.x Hibernate Eclipse MicroProfileRESTEasy WildFly Undertow OpenJDK
  • 11. Quarkus Benefits 11 Through low learning curve, developer efficiency, extension ecosystem Remain competitiveFaster time to market Modern software stack focused on containers and kube that enables fast experimentation and rapid delivery of changes in production Cost Savings .Low memory, fast startup, cloud efficiency, low learning curve, serverless, high density on K8s & cloud
  • 12. Why Quarkus? 12 Live coding Unified configuration Developer joy Over 90 extensions “Powered by Quarkus” applications Best of breed libraries and standards Tailors your app for HotSpot & GraalVM Fast boot time and low RSS memory Serverless fit Container first Combines blocking and non-blocking Built-in event bus Unifies imperative and reactive “Quarkus has introduced a new paradigm that puts things upside down on the way things are run under the covers - supporting native, all reflection done at compile time and not runtime is just amazing!” - Talkdesk
  • 13. 13 Benefit No. 1: Container First REST + CRUD Quarkus + GraalVM 0.055 Seconds Quarkus + OpenJDK 2.5 Seconds Traditional Cloud-Native Stack 9.5 Seconds Time to first response REST + CRUD Quarkus + GraalVM 35 MB Quarkus + OpenJDK 130 MB Traditional Cloud-Native Stack 218 MB “We went from 1-min startup times to 400 milliseconds”
  • 14. 14 A cohesive platform for optimized developer joy: ● Based on standards and more ● Unified configuration ● Live coding ● Streamlined code for the 80% common usages, flexible for the 20% ● No hassle native executable generation Benefit No. 2: Developer Joy “Our developers used to wait 2 to 3 mins to see their changes. Live coding does away with this.”
  • 15. 15 Benefit No. 3: Unifies Imperative and Reactive ● Combine both Reactive and imperative development in the same application ● Inject the EventBus or the Vertx context ● Use the technology that fits your use-case ● Key for reactive systems based on event driven apps @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } @Inject @Stream(”kafka”) Publisher<String> reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher<String> stream() { return reactiveSay; }
  • 16. 16 Benefit No. 4: Best of Breed Frameworks & Standards Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan Flyway Neo4j MongoDB MQTT KeyCloak Apache Tika “Reduced the time for developer productivity due to a small learning curve and existing expertise of the Quarkus extensions.”
  • 18. Service Microservice Function > Single Purpose > Stateless > Independently Scalable > Automated > Single Action > Ephemeral > Autonomous > Loosely-coupled Architectural Evolution to Serverless f( ) 18
  • 19. Serverless Requirements 19 “We went from 6-7 sec startup time with plain Java on AWS Lambda to 10 milliseconds with Quarkus” Platform that can... ● Scale to 0 ● Rapid scaling (up & down) ● Event mechanism ● Routing and Networking Applications that can… ● Startup quickly ● Respond quickly ● Low on memory ● Require small disk size
  • 21. 21 Why do we need Serverless ? Cloud Agility Everywhere Event-driven Applications Focus On Business Results Consistent Scalability
  • 22. Historical Enterprise Java Stack 22 Operating System + Hardware/VM Java Virtual Machine (Hotspot) Application Server App App App App App Dynamic Application Frameworks Architecture: Monoliths Deployment: multi-app, appserver App Lifecycle: Months Memory: 1GB+ RAM Startup Time: 10s of sec
  • 23. Modern Enterprise Java Stack 23 Java Virtual Machine (Hotspot) Application Server App Dynamic Application Frameworks Architecture: Microservices Deployment: Single App App Lifecycle: Days Memory: 100MBs+ RAM Startup Time: Seconds No Change
  • 24. Java Serverless Stack 24 Java Virtual Machine (Hotspot) Application Server App Dynamic Application Frameworks Architecture: Microservices Deployment: Single App App Lifecycle: Days Memory: 100MBs+ RAM Startup Time: Seconds No Change
  • 25. Quarkus - Optimizing the Stack Quarkus & Kube-Native Java 25 App (Imperative / Reactive) Optimized Application Frameworks Architecture: Microservices, Serverless Deployment: Single App App Lifecycle: Milliseconds to Days Memory: 10MBs+ RAM Startup Time: Milliseconds Java Virtual Machine (Hotspot) Optional
  • 26. Cloud Native Java Stack + containers Designing a Java Stack for the future 26 26 CONTAINER ORCHESTRATION NodeNode Traditional Cloud-Native Java Stack Traditional Cloud-Native Java Stack Traditional Cloud-Native Java Stack Traditional Cloud-Native Java Stack Node NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go https://developers.redhat.com/blog/2017/03/14/java-inside-docker/
  • 27. Cloud Native Java Stack + containers Designing a Java Stack for the future 27 27 CONTAINER ORCHESTRATION Node EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot EAP, WAS Liberty or Spring Boot Node NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS NodeJS Node Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go Go https://developers.redhat.com/blog/2017/03/14/java-inside-docker/ Node Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Quarkus on JVM Node Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native Quarkus Native “We could run 3 times denser deployments without sacrificing availability and response times of services”