SlideShare a Scribd company logo
1 of 37
How we were building microservices with
AWS Step functions, Java and Micronaut
Andrew Zakordonets
• Software Engineer in Test
• 10+ years in Software Testing and
Automation
• Working on building tools and test
automation
Contact:
http://biercoff.com
What are we gonna talk about
What we wanted to build
Why serverless java
Why serverless java
Why serverless java
Challenges while building java serverless
Slow cold start
Challenges while building java serverless
Slow cold start
Package size
Java 11 and Jlink
AWS Reality
Custom runtime
Maybe solution : ghadishayban/lambdaclj-jdk11
Partial solution : andthearchitect/aws-lambda-java-runtime
What is cool about Micronaut ?
What is cool about Micronaut ?
What is cool about Micronaut ?
What is cool about Micronaut ?
What is cool about Micronaut ?
What is cool about Micronaut ?
Micronaut
Java Lambda 101
Java Lambda 101
Java Lambda with Micronaut
ApiGateway Integration
Authorizers
Authorizers
Layers
Layers
Micronaut vs Spring
Topic Micronaut Spring
Package size 9.56 Mb 12.33 Mb
Cold start 4,91s 11,23s
Average Response Time
(20 single thread calls)
205,48ms 201,31ms
Small performance test
Measurement Micronaut Spring
data received 3.6 MB 357 kB/s 168 kB 17 kB/s
data sent 376 kB 38 kB/s 16 kB 1.6 kB/s
http req blocked avg=16.4ms avg=120.07ms
http req connecting avg=2.38ms avg=19.87ms
http req duration avg=118.43ms avg=73.67ms
http req receiving avg=41.46µs avg=47.94µs
http req sending avg=53.63µs avg=84.88µs
http req tls handshaking avg=13.98ms avg=96.91ms
http req waiting avg=118.34ms avg=73.54ms
http reqs 7370 736.981504/s 149 14.899509/s
iteration duration avg=135.25ms avg=194.13ms
iterations 7370 736.981504/s 149 14.899509/s
vus 100 min=100 max=100 100 min=100 max=100
x21
x49
x7
x7.5
x8
x49
k6 runs 100 concurrent users for 10 seconds
Performance test
k6 runs 100 concurrent users for 2.30 minutes
No Timeout Cold start No Timeout Warm Run
Measurement Micronaut Spring Micronaut Spring
data_received 135 MB 899 kB/s 132 MB 879 kB/s 138 MB 921 kB/s 140 MB 934 kB/s
data_sent 14 MB 92 kB/s 12 MB 82 kB/s 14 MB 94 kB/s 13 MB 87 kB/s
http_req_blocked avg=90.18µs avg=100.01µ avg=98.48µs avg=98.28µs
http_req_connecting avg=3.67µs avg=4.93µs avg=4.07µs avg=3.75µs
http_req_duration avg=44.97ms avg=49.72ms avg=42.78ms avg=43.64ms
http_req_receiving avg=65.62µs avg=57.91µs avg=77.16µs avg=72.14µs
http_req_sending avg=56.01µs avg=52.19µs avg=62.69µs avg=59.51µs
http_req_tls_handshakin
g
avg=74.99µs avg=82.54µs avg=82.71µs avg=82.77µs
http_req_waiting avg=44.85ms avg=49.61ms avg=42.64ms avg=43.51ms
http_reqs 320282 2135.211415/s 285380 1902.533106/s 328002 2186.679027/s 302944 2019.625563/s
iteration_duration avg=46.76ms avg=52.49ms avg=45.65ms avg=49.44ms
iterations 320268 2135.118082/s 285374 1902.493106/s 328002 2186.679027/s 302941 2019.605563/s
vus 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100
Performance test
k6 runs 100 concurrent users for 2.30 minutes
500 ms Timout Cold start 500 ms Timout Warm Run
Measurement Micronaut Spring Micronaut Spring
data_received 12 MB 77 kB/s 12 MB 80 kB/s 12 MB 80 kB/s 15 MB 103 kB/s
data_sent 1.2 MB 7.9 kB/s 1.1 MB 7.5 kB/s 1.2 MB 8.1 kB/s 1.5 MB 9.8 kB/s
http_req_blocked avg=1.08ms avg=1.12ms avg=1.14ms avg=1.67ms
http_req_connecting avg=32.11µs avg=36.52µs avg=57.22µs avg=210.13µs
http_req_duration avg=571.38ms avg=601.53ms avg=552.47ms avg=549.94ms
http_req_receiving avg=56.38µs avg=43.47µs avg=39.4µs avg=43.73µs
http_req_sending avg=67.63µs avg=56.32µs avg=51.9µs avg=62µs
http_req_tls_handshakin
g
avg=972.25µs avg=988.19µs avg=946.87µs avg=1.38ms
http_req_waiting avg=571.26ms avg=601.43ms avg=552.37ms avg=549.83ms
http_reqs 26127 174.17983/s 24833 165.553143/s 27010 180.06652/s 27102 180.679695/s
iteration_duration avg=572.95ms avg=603.03ms avg=554.27ms avg=552.36ms
iterations 26127 174.17983/s 24833 165.553143/s 27010 180.06652/s 27102 180.679695/s
vus
100 min=100
max=100
100 min=100
max=100
100 min=100
max=100
100 min=100
max=100
Performance test summary
Logging
Log4j -> tiny log
GraalVM
Conclusions
The end
Q&A

More Related Content

What's hot

Altitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkAltitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkFastly
 
Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Fastly
 
Avatar Maven
Avatar MavenAvatar Maven
Avatar Mavenjlorenzen
 
How to cache your static resources
How to cache your static resourcesHow to cache your static resources
How to cache your static resourcesWesley Smits
 
Altitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeAltitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeFastly
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»DataArt
 
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and ClusteringAltitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and ClusteringFastly
 
WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019Anam Ahmed
 
Using Server-Timing for App and CDN Monitoring
Using Server-Timing for App and CDN MonitoringUsing Server-Timing for App and CDN Monitoring
Using Server-Timing for App and CDN MonitoringAkamai Developers & Admins
 
Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsNGINX, Inc.
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2Fastly
 
Tips for going fast in a slow world: Michael May at OSCON 2015
Tips for going fast in a slow world: Michael May at OSCON 2015Tips for going fast in a slow world: Michael May at OSCON 2015
Tips for going fast in a slow world: Michael May at OSCON 2015Fastly
 
Dynomite at Erlang Factory
Dynomite at Erlang FactoryDynomite at Erlang Factory
Dynomite at Erlang Factorymoonpolysoft
 

What's hot (20)

Understanding
Understanding Understanding
Understanding
 
Altitude SF 2017: The power of the network
Altitude SF 2017: The power of the networkAltitude SF 2017: The power of the network
Altitude SF 2017: The power of the network
 
Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101Altitude SF 2017: Debugging Fastly VCL 101
Altitude SF 2017: Debugging Fastly VCL 101
 
Avatar Maven
Avatar MavenAvatar Maven
Avatar Maven
 
How to cache your static resources
How to cache your static resourcesHow to cache your static resources
How to cache your static resources
 
Load Testing with JMeter, BlazeMeter, New Relic
Load Testing with JMeter, BlazeMeter, New RelicLoad Testing with JMeter, BlazeMeter, New Relic
Load Testing with JMeter, BlazeMeter, New Relic
 
Caching for Cash - Part 4
Caching for Cash - Part 4Caching for Cash - Part 4
Caching for Cash - Part 4
 
Altitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/placeAltitude SF 2017: Reddit - How we built and scaled r/place
Altitude SF 2017: Reddit - How we built and scaled r/place
 
Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009
 
Frontend Caching - The "new" frontier
Frontend Caching - The "new" frontierFrontend Caching - The "new" frontier
Frontend Caching - The "new" frontier
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»
 
Altitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and ClusteringAltitude SF 2017: Advanced VCL: Shielding and Clustering
Altitude SF 2017: Advanced VCL: Shielding and Clustering
 
WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019WordPress At Scale. WordCamp Dhaka 2019
WordPress At Scale. WordCamp Dhaka 2019
 
Load testing Java & Docker
Load testing Java & DockerLoad testing Java & Docker
Load testing Java & Docker
 
Using Server-Timing for App and CDN Monitoring
Using Server-Timing for App and CDN MonitoringUsing Server-Timing for App and CDN Monitoring
Using Server-Timing for App and CDN Monitoring
 
Benchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and ResultsBenchmarking NGINX for Accuracy and Results
Benchmarking NGINX for Accuracy and Results
 
Coping with Cyber Monday
Coping with Cyber MondayCoping with Cyber Monday
Coping with Cyber Monday
 
Revisiting HTTP/2
Revisiting HTTP/2Revisiting HTTP/2
Revisiting HTTP/2
 
Tips for going fast in a slow world: Michael May at OSCON 2015
Tips for going fast in a slow world: Michael May at OSCON 2015Tips for going fast in a slow world: Michael May at OSCON 2015
Tips for going fast in a slow world: Michael May at OSCON 2015
 
Dynomite at Erlang Factory
Dynomite at Erlang FactoryDynomite at Erlang Factory
Dynomite at Erlang Factory
 

Similar to Writing Java Serverless Application Using Micronaut

Writing Serverless Application in Java with comparison of 3 approaches: AWS S...
Writing Serverless Application in Java with comparison of 3 approaches: AWS S...Writing Serverless Application in Java with comparison of 3 approaches: AWS S...
Writing Serverless Application in Java with comparison of 3 approaches: AWS S...Andrew Zakordonets
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsPerrin Harkins
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Tales from Taming the Long Tail
Tales from Taming the Long TailTales from Taming the Long Tail
Tales from Taming the Long TailHBaseCon
 
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...Amazon Web Services
 
Nginx Scalable Stack
Nginx Scalable StackNginx Scalable Stack
Nginx Scalable StackBruno Paiuca
 
"Load Testing Distributed Systems with NBomber 4.0", Anton Moldovan
"Load Testing Distributed Systems with NBomber 4.0",  Anton Moldovan"Load Testing Distributed Systems with NBomber 4.0",  Anton Moldovan
"Load Testing Distributed Systems with NBomber 4.0", Anton MoldovanFwdays
 
DevoxxUK: Optimizating Application Performance on Kubernetes
DevoxxUK: Optimizating Application Performance on KubernetesDevoxxUK: Optimizating Application Performance on Kubernetes
DevoxxUK: Optimizating Application Performance on KubernetesDinakar Guniguntala
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on KubernetesBruno Borges
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsConcentric Sky
 
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017Jelastic Multi-Cloud PaaS
 
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet
 
Docker tips-for-java-developers
Docker tips-for-java-developersDocker tips-for-java-developers
Docker tips-for-java-developersAparna Chaudhary
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with KeptnJenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with KeptnAndreas Grabner
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 

Similar to Writing Java Serverless Application Using Micronaut (20)

Writing Serverless Application in Java with comparison of 3 approaches: AWS S...
Writing Serverless Application in Java with comparison of 3 approaches: AWS S...Writing Serverless Application in Java with comparison of 3 approaches: AWS S...
Writing Serverless Application in Java with comparison of 3 approaches: AWS S...
 
Introduction to performance tuning perl web applications
Introduction to performance tuning perl web applicationsIntroduction to performance tuning perl web applications
Introduction to performance tuning perl web applications
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Tales from Taming the Long Tail
Tales from Taming the Long TailTales from Taming the Long Tail
Tales from Taming the Long Tail
 
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
 
Nginx Scalable Stack
Nginx Scalable StackNginx Scalable Stack
Nginx Scalable Stack
 
"Load Testing Distributed Systems with NBomber 4.0", Anton Moldovan
"Load Testing Distributed Systems with NBomber 4.0",  Anton Moldovan"Load Testing Distributed Systems with NBomber 4.0",  Anton Moldovan
"Load Testing Distributed Systems with NBomber 4.0", Anton Moldovan
 
DevoxxUK: Optimizating Application Performance on Kubernetes
DevoxxUK: Optimizating Application Performance on KubernetesDevoxxUK: Optimizating Application Performance on Kubernetes
DevoxxUK: Optimizating Application Performance on Kubernetes
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
 
Run Node Run
Run Node RunRun Node Run
Run Node Run
 
Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)Aerospike & GCE (LSPE Talk)
Aerospike & GCE (LSPE Talk)
 
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017
Automated scaling of microservice stacks for JavaEE applications - JEEConf 2017
 
JEEconf 2017
JEEconf 2017JEEconf 2017
JEEconf 2017
 
Optimizing Uptime in SOA
Optimizing Uptime in SOAOptimizing Uptime in SOA
Optimizing Uptime in SOA
 
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollectivePuppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
Puppet Camp DC 2015: Distributed OpenSCAP Compliance Validation with MCollective
 
Docker tips-for-java-developers
Docker tips-for-java-developersDocker tips-for-java-developers
Docker tips-for-java-developers
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with KeptnJenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 

Recently uploaded

Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Recently uploaded (20)

Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 

Writing Java Serverless Application Using Micronaut

  • 1. How we were building microservices with AWS Step functions, Java and Micronaut
  • 2. Andrew Zakordonets • Software Engineer in Test • 10+ years in Software Testing and Automation • Working on building tools and test automation Contact: http://biercoff.com
  • 3. What are we gonna talk about
  • 4. What we wanted to build
  • 8. Challenges while building java serverless Slow cold start
  • 9. Challenges while building java serverless Slow cold start Package size
  • 10. Java 11 and Jlink
  • 12. Custom runtime Maybe solution : ghadishayban/lambdaclj-jdk11 Partial solution : andthearchitect/aws-lambda-java-runtime
  • 13.
  • 14. What is cool about Micronaut ?
  • 15. What is cool about Micronaut ?
  • 16. What is cool about Micronaut ?
  • 17. What is cool about Micronaut ?
  • 18. What is cool about Micronaut ?
  • 19. What is cool about Micronaut ? Micronaut
  • 22. Java Lambda with Micronaut
  • 28. Micronaut vs Spring Topic Micronaut Spring Package size 9.56 Mb 12.33 Mb Cold start 4,91s 11,23s Average Response Time (20 single thread calls) 205,48ms 201,31ms
  • 29. Small performance test Measurement Micronaut Spring data received 3.6 MB 357 kB/s 168 kB 17 kB/s data sent 376 kB 38 kB/s 16 kB 1.6 kB/s http req blocked avg=16.4ms avg=120.07ms http req connecting avg=2.38ms avg=19.87ms http req duration avg=118.43ms avg=73.67ms http req receiving avg=41.46µs avg=47.94µs http req sending avg=53.63µs avg=84.88µs http req tls handshaking avg=13.98ms avg=96.91ms http req waiting avg=118.34ms avg=73.54ms http reqs 7370 736.981504/s 149 14.899509/s iteration duration avg=135.25ms avg=194.13ms iterations 7370 736.981504/s 149 14.899509/s vus 100 min=100 max=100 100 min=100 max=100 x21 x49 x7 x7.5 x8 x49 k6 runs 100 concurrent users for 10 seconds
  • 30. Performance test k6 runs 100 concurrent users for 2.30 minutes No Timeout Cold start No Timeout Warm Run Measurement Micronaut Spring Micronaut Spring data_received 135 MB 899 kB/s 132 MB 879 kB/s 138 MB 921 kB/s 140 MB 934 kB/s data_sent 14 MB 92 kB/s 12 MB 82 kB/s 14 MB 94 kB/s 13 MB 87 kB/s http_req_blocked avg=90.18µs avg=100.01µ avg=98.48µs avg=98.28µs http_req_connecting avg=3.67µs avg=4.93µs avg=4.07µs avg=3.75µs http_req_duration avg=44.97ms avg=49.72ms avg=42.78ms avg=43.64ms http_req_receiving avg=65.62µs avg=57.91µs avg=77.16µs avg=72.14µs http_req_sending avg=56.01µs avg=52.19µs avg=62.69µs avg=59.51µs http_req_tls_handshakin g avg=74.99µs avg=82.54µs avg=82.71µs avg=82.77µs http_req_waiting avg=44.85ms avg=49.61ms avg=42.64ms avg=43.51ms http_reqs 320282 2135.211415/s 285380 1902.533106/s 328002 2186.679027/s 302944 2019.625563/s iteration_duration avg=46.76ms avg=52.49ms avg=45.65ms avg=49.44ms iterations 320268 2135.118082/s 285374 1902.493106/s 328002 2186.679027/s 302941 2019.605563/s vus 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100
  • 31. Performance test k6 runs 100 concurrent users for 2.30 minutes 500 ms Timout Cold start 500 ms Timout Warm Run Measurement Micronaut Spring Micronaut Spring data_received 12 MB 77 kB/s 12 MB 80 kB/s 12 MB 80 kB/s 15 MB 103 kB/s data_sent 1.2 MB 7.9 kB/s 1.1 MB 7.5 kB/s 1.2 MB 8.1 kB/s 1.5 MB 9.8 kB/s http_req_blocked avg=1.08ms avg=1.12ms avg=1.14ms avg=1.67ms http_req_connecting avg=32.11µs avg=36.52µs avg=57.22µs avg=210.13µs http_req_duration avg=571.38ms avg=601.53ms avg=552.47ms avg=549.94ms http_req_receiving avg=56.38µs avg=43.47µs avg=39.4µs avg=43.73µs http_req_sending avg=67.63µs avg=56.32µs avg=51.9µs avg=62µs http_req_tls_handshakin g avg=972.25µs avg=988.19µs avg=946.87µs avg=1.38ms http_req_waiting avg=571.26ms avg=601.43ms avg=552.37ms avg=549.83ms http_reqs 26127 174.17983/s 24833 165.553143/s 27010 180.06652/s 27102 180.679695/s iteration_duration avg=572.95ms avg=603.03ms avg=554.27ms avg=552.36ms iterations 26127 174.17983/s 24833 165.553143/s 27010 180.06652/s 27102 180.679695/s vus 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100
  • 37. Q&A