SlideShare une entreprise Scribd logo
1  sur  38
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
Java Lambda with AWS SDK
ApiGateway Integration
Authorizers
Authorizers
Layers
Layers
Micronaut vs Spring
Topic Micronaut Spring AWS SDK
Package size 9.56 Mb 12.33 Mb 691 Kb
Cold start 4,91s 11,23s 0,85s
Average Response
Time
(20 single thread
calls)
205,48ms 201,31ms 62,9ms
Small performance test
Measurement AWS SDK Micronaut Spring
data received 6.4 MB 644 kB/s 3.6 MB 357 kB/s 168 kB 17 kB/s
data sent 658 kB 66 kB/s 376 kB 38 kB/s 16 kB 1.6 kB/s
http req blocked 9.31ms 16.4ms 120.07ms
http req connecting 1.79ms 2.38ms 19.87ms
http req duration 60.19ms 118.43ms 73.67ms
http req receiving 85.44µs 41.46µs 47.94µs
http req sending 89.17µs 53.63µs 84.88µs
http req tls handshaking 7.17ms 13.98ms 96.91ms
http req waiting 60.02ms 118.34ms 73.54ms
http reqs 13965 1396.377928/s 7370 736.981504/s 149 14.899509/s
iteration duration 71.37ms 135.25ms 194.13ms
vus 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100
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 AWS SDK Micronaut Spring AWS SDK Micronaut Spring
data_received
56 MB 373
kB/s
58 MB 386 kB/s 56 MB 373 kB/s 61 MB 406 kB/s 60 MB 398 kB/s 59 MB 393 kB/s
data_sent
5.7 MB 38
kB/s
5.9 MB 39 kB/s 5.2 MB 35 kB/s 6.2 MB 41 kB/s 6.1 MB 41 kB/s 5.5 MB 36 kB/s
http_req_blocked 998.18µs 1.89ms 1.2ms 1.25ms 1.3ms 2.01ms
http_req_connecting 156.39µs 292.78µs 185.74µs 227.21µs 145.46µs 328.02µs
http_req_duration 106.01ms 106.36ms 118.46ms 101.73ms 102.05ms 107.97ms
http_req_receiving 103.07µs 81.64µs 136.71µs 76.65µs 91.26µs 102.68µs
http_req_sending 84.93µs 89.55µs 122.73µs 83.88µs 92.81µs 83.55µs
http_req_tls_handsha
king
769.24µs 1.45ms 917.39µs 1ms 986.36µs 1.66ms
http_req_waiting 105.82ms 106.19ms 118.2ms 101.57ms 101.87ms 107.79ms
http_reqs
130813
872.08/s
135511 903.40/s 119581 797.20/s 142498 949.98/s 140119 934.12/s 126040 840.26/s
iteration_duration 114.31ms 110.31ms 124.99ms 105.12ms 106.81ms 118.88ms
iterations
130813
872.08/s
135511 903.40/s 119581 797.20/s 142481 949.87/s 140091 933.93/s 126020 840.13/s
Performance test
k6 runs 100 concurrent users for 2.30 minutes
500 ms Timeout Cold start 500 ms Timeout Warm Run
Measurement AWS SDK Micronaut Spring AWS SDK Micronaut Spring
data_received 12 MB 78 kB/s 11 MB 76 kB/s 12 MB 79 kB/s 12 MB 79 kB/s 12 MB 79 kB/s 13 MB 86 kB/s
data_sent 1.2 MB 8.0 kB/s 1.2 MB 7.7 kB/s 1.1 MB 7.4 kB/s 1.2 MB 8.0 kB/ 1.2 MB 8.1 kB/s 1.2 MB 8.0 kB/s
http_req_blocke
d
1.02ms 1.19ms 1.07ms 1.63ms 1.38ms 1.28ms
http_req_connec
ting
70.17µs 49.15µs 58.27µs 100.41µs 54.86µs 68.96µs
http_req_duratio
n
547.1ms 561.11ms 593.57ms 544.9ms 548.18ms 573.55ms
http_req_receivi
ng
77.61µs 84.97µs 78.36µs 42.36µs 50.84µs 43.94µs
http_req_sendin
g
69.96µs 73.21µs 70.8µs 65.84µs 69.45µs 69.34µs
http_req_tls_han
dshaking
944.25µs 994.74µs 1ms 1.39ms 1.22ms 1.06ms
http_req_waiting 546.95ms 560.96ms 593.42ms 544.79ms 548.06ms 573.44ms
http_reqs 27260 181.73/s 26589 177.25/s 25110 167.39/s 27367 182.44/s 27218 181.45/s 26029 173.52/s
iteration_duratio
n
549.33ms 563.05ms 596.04ms 547.07ms 550.07ms 575.29ms
iterations 27260 181.73/s 26589 177.25/s 25110 167.39/s 27367 182.44/s 27218 181.45/s 26029 173.52/s
vus 100 100 100 100 100 100
Performance test summary
0 20000 40000 60000 80000 100000 120000 140000 160000
AWS SDK no timeout
Micronaut no timeout
Spring no timeout
Micronaut timeout
Spring timeout
AWS SDK timeout
Warm Cold
Logging
Log4j -> tiny log
GraalVM
Conclusions
The end
Q&A

Contenu connexe

Tendances

How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for productionconfluent
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011David Troy
 
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service  | anyninesBuilding a Production Grade PostgreSQL Cloud Foundry Service  | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service | anyninesanynines GmbH
 
Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native JavaAlex Soto
 
Determinism in finance
Determinism in financeDeterminism in finance
Determinism in financePeter Lawrey
 
Quarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java ApplicationQuarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java ApplicationCodeOps Technologies LLP
 
CLI utility in ClojureScript running on Node.js
CLI utility in ClojureScript running on Node.jsCLI utility in ClojureScript running on Node.js
CLI utility in ClojureScript running on Node.jsKarolis Labrencis
 
Solving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comSolving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comIvan Kruglov
 
Understanding HTTP & Web Performance
Understanding HTTP & Web PerformanceUnderstanding HTTP & Web Performance
Understanding HTTP & Web PerformanceFITC
 
Using SLOs for Continuous Performance Optimizations of Your k8s Workloads
Using SLOs for Continuous Performance Optimizations of Your k8s WorkloadsUsing SLOs for Continuous Performance Optimizations of Your k8s Workloads
Using SLOs for Continuous Performance Optimizations of Your k8s WorkloadsScyllaDB
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsQuest Software
 
What's new in Ansible 2.0
What's new in Ansible 2.0What's new in Ansible 2.0
What's new in Ansible 2.0Allan Denot
 
Eduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhereEduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhereStarTech Conference
 
Odoo Performance Limits
Odoo Performance LimitsOdoo Performance Limits
Odoo Performance LimitsOdoo
 

Tendances (20)

How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for production
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
 
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service  | anyninesBuilding a Production Grade PostgreSQL Cloud Foundry Service  | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
 
Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
 
Redis acl
Redis aclRedis acl
Redis acl
 
Determinism in finance
Determinism in financeDeterminism in finance
Determinism in finance
 
Quarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java ApplicationQuarkus - a shrink ray to your Java Application
Quarkus - a shrink ray to your Java Application
 
CLI utility in ClojureScript running on Node.js
CLI utility in ClojureScript running on Node.jsCLI utility in ClojureScript running on Node.js
CLI utility in ClojureScript running on Node.js
 
Lecture set 7
Lecture set 7Lecture set 7
Lecture set 7
 
Solving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.comSolving some of the scalability problems at booking.com
Solving some of the scalability problems at booking.com
 
Ha of load balancer
Ha of load balancerHa of load balancer
Ha of load balancer
 
Understanding HTTP & Web Performance
Understanding HTTP & Web PerformanceUnderstanding HTTP & Web Performance
Understanding HTTP & Web Performance
 
Using SLOs for Continuous Performance Optimizations of Your k8s Workloads
Using SLOs for Continuous Performance Optimizations of Your k8s WorkloadsUsing SLOs for Continuous Performance Optimizations of Your k8s Workloads
Using SLOs for Continuous Performance Optimizations of Your k8s Workloads
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAs
 
T.Pollak y C.Yaconi - Prey
T.Pollak y C.Yaconi - PreyT.Pollak y C.Yaconi - Prey
T.Pollak y C.Yaconi - Prey
 
What's new in Ansible 2.0
What's new in Ansible 2.0What's new in Ansible 2.0
What's new in Ansible 2.0
 
A docker love story
A docker love storyA docker love story
A docker love story
 
Eduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhereEduardo Silva - monkey http-server everywhere
Eduardo Silva - monkey http-server everywhere
 
Odoo Performance Limits
Odoo Performance LimitsOdoo Performance Limits
Odoo Performance Limits
 

Similaire à Writing Serverless Application in Java with comparison of 3 approaches: AWS SDK, Micronaut, Spring

Writing Java Serverless Application Using Micronaut
Writing Java Serverless Application Using MicronautWriting Java Serverless Application Using Micronaut
Writing Java Serverless Application Using MicronautAndrew Zakordonets
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
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
 
AF Ceph: Ceph Performance Analysis and Improvement on Flash
AF Ceph: Ceph Performance Analysis and Improvement on FlashAF Ceph: Ceph Performance Analysis and Improvement on Flash
AF Ceph: Ceph Performance Analysis and Improvement on FlashCeph Community
 
AWS SnapStart at Community Day Istanbul 2023
AWS SnapStart at Community Day Istanbul 2023AWS SnapStart at Community Day Istanbul 2023
AWS SnapStart at Community Day Istanbul 2023Goran Opacic
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with MicronautQAware GmbH
 
Cloud Performance Benchmarking
Cloud Performance BenchmarkingCloud Performance Benchmarking
Cloud Performance BenchmarkingSantanu Dey
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know Howaragavan
 
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
 
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...Henning Jacobs
 
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...HostedbyConfluent
 
Containers Auto Scaling on AWS.pdf
Containers Auto Scaling on AWS.pdfContainers Auto Scaling on AWS.pdf
Containers Auto Scaling on AWS.pdfManish Chopra
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»DataArt
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsMarcus Frödin
 
Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...IndicThreads
 
Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Szabolcs Zajdó
 
Scylla Summit 2019 Keynote - Dor Laor - Beyond Cassandra
Scylla Summit 2019 Keynote - Dor Laor - Beyond CassandraScylla Summit 2019 Keynote - Dor Laor - Beyond Cassandra
Scylla Summit 2019 Keynote - Dor Laor - Beyond CassandraScyllaDB
 
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming  Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming Tom Croucher
 

Similaire à Writing Serverless Application in Java with comparison of 3 approaches: AWS SDK, Micronaut, Spring (20)

Writing Java Serverless Application Using Micronaut
Writing Java Serverless Application Using MicronautWriting Java Serverless Application Using Micronaut
Writing Java Serverless Application Using Micronaut
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Getput suite
Getput suiteGetput suite
Getput suite
 
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 ...
 
AF Ceph: Ceph Performance Analysis and Improvement on Flash
AF Ceph: Ceph Performance Analysis and Improvement on FlashAF Ceph: Ceph Performance Analysis and Improvement on Flash
AF Ceph: Ceph Performance Analysis and Improvement on Flash
 
AWS SnapStart at Community Day Istanbul 2023
AWS SnapStart at Community Day Istanbul 2023AWS SnapStart at Community Day Istanbul 2023
AWS SnapStart at Community Day Istanbul 2023
 
Microservices with Micronaut
Microservices with MicronautMicroservices with Micronaut
Microservices with Micronaut
 
Cloud Performance Benchmarking
Cloud Performance BenchmarkingCloud Performance Benchmarking
Cloud Performance Benchmarking
 
Autoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know HowAutoscaled Distributed Automation Expedia Know How
Autoscaled Distributed Automation Expedia Know How
 
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
 
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
Ensuring Kubernetes Cost Efficiency across (many) Clusters - DevOps Gathering...
 
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
Tales from the four-comma club: Managing Kafka as a service at Salesforce | L...
 
Containers Auto Scaling on AWS.pdf
Containers Auto Scaling on AWS.pdfContainers Auto Scaling on AWS.pdf
Containers Auto Scaling on AWS.pdf
 
Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»Артем Оробец «На пути к low-latency»
Артем Оробец «На пути к low-latency»
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...Best Practices for performance evaluation and diagnosis of Java Applications ...
Best Practices for performance evaluation and diagnosis of Java Applications ...
 
Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)
 
Scylla Summit 2019 Keynote - Dor Laor - Beyond Cassandra
Scylla Summit 2019 Keynote - Dor Laor - Beyond CassandraScylla Summit 2019 Keynote - Dor Laor - Beyond Cassandra
Scylla Summit 2019 Keynote - Dor Laor - Beyond Cassandra
 
Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming  Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
 

Dernier

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 

Dernier (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Writing Serverless Application in Java with comparison of 3 approaches: AWS SDK, Micronaut, Spring

  • 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
  • 23. Java Lambda with AWS SDK
  • 29. Micronaut vs Spring Topic Micronaut Spring AWS SDK Package size 9.56 Mb 12.33 Mb 691 Kb Cold start 4,91s 11,23s 0,85s Average Response Time (20 single thread calls) 205,48ms 201,31ms 62,9ms
  • 30. Small performance test Measurement AWS SDK Micronaut Spring data received 6.4 MB 644 kB/s 3.6 MB 357 kB/s 168 kB 17 kB/s data sent 658 kB 66 kB/s 376 kB 38 kB/s 16 kB 1.6 kB/s http req blocked 9.31ms 16.4ms 120.07ms http req connecting 1.79ms 2.38ms 19.87ms http req duration 60.19ms 118.43ms 73.67ms http req receiving 85.44µs 41.46µs 47.94µs http req sending 89.17µs 53.63µs 84.88µs http req tls handshaking 7.17ms 13.98ms 96.91ms http req waiting 60.02ms 118.34ms 73.54ms http reqs 13965 1396.377928/s 7370 736.981504/s 149 14.899509/s iteration duration 71.37ms 135.25ms 194.13ms vus 100 min=100 max=100 100 min=100 max=100 100 min=100 max=100 k6 runs 100 concurrent users for 10 seconds
  • 31. Performance test k6 runs 100 concurrent users for 2.30 minutes No Timeout Cold start No Timeout Warm Run Measurement AWS SDK Micronaut Spring AWS SDK Micronaut Spring data_received 56 MB 373 kB/s 58 MB 386 kB/s 56 MB 373 kB/s 61 MB 406 kB/s 60 MB 398 kB/s 59 MB 393 kB/s data_sent 5.7 MB 38 kB/s 5.9 MB 39 kB/s 5.2 MB 35 kB/s 6.2 MB 41 kB/s 6.1 MB 41 kB/s 5.5 MB 36 kB/s http_req_blocked 998.18µs 1.89ms 1.2ms 1.25ms 1.3ms 2.01ms http_req_connecting 156.39µs 292.78µs 185.74µs 227.21µs 145.46µs 328.02µs http_req_duration 106.01ms 106.36ms 118.46ms 101.73ms 102.05ms 107.97ms http_req_receiving 103.07µs 81.64µs 136.71µs 76.65µs 91.26µs 102.68µs http_req_sending 84.93µs 89.55µs 122.73µs 83.88µs 92.81µs 83.55µs http_req_tls_handsha king 769.24µs 1.45ms 917.39µs 1ms 986.36µs 1.66ms http_req_waiting 105.82ms 106.19ms 118.2ms 101.57ms 101.87ms 107.79ms http_reqs 130813 872.08/s 135511 903.40/s 119581 797.20/s 142498 949.98/s 140119 934.12/s 126040 840.26/s iteration_duration 114.31ms 110.31ms 124.99ms 105.12ms 106.81ms 118.88ms iterations 130813 872.08/s 135511 903.40/s 119581 797.20/s 142481 949.87/s 140091 933.93/s 126020 840.13/s
  • 32. Performance test k6 runs 100 concurrent users for 2.30 minutes 500 ms Timeout Cold start 500 ms Timeout Warm Run Measurement AWS SDK Micronaut Spring AWS SDK Micronaut Spring data_received 12 MB 78 kB/s 11 MB 76 kB/s 12 MB 79 kB/s 12 MB 79 kB/s 12 MB 79 kB/s 13 MB 86 kB/s data_sent 1.2 MB 8.0 kB/s 1.2 MB 7.7 kB/s 1.1 MB 7.4 kB/s 1.2 MB 8.0 kB/ 1.2 MB 8.1 kB/s 1.2 MB 8.0 kB/s http_req_blocke d 1.02ms 1.19ms 1.07ms 1.63ms 1.38ms 1.28ms http_req_connec ting 70.17µs 49.15µs 58.27µs 100.41µs 54.86µs 68.96µs http_req_duratio n 547.1ms 561.11ms 593.57ms 544.9ms 548.18ms 573.55ms http_req_receivi ng 77.61µs 84.97µs 78.36µs 42.36µs 50.84µs 43.94µs http_req_sendin g 69.96µs 73.21µs 70.8µs 65.84µs 69.45µs 69.34µs http_req_tls_han dshaking 944.25µs 994.74µs 1ms 1.39ms 1.22ms 1.06ms http_req_waiting 546.95ms 560.96ms 593.42ms 544.79ms 548.06ms 573.44ms http_reqs 27260 181.73/s 26589 177.25/s 25110 167.39/s 27367 182.44/s 27218 181.45/s 26029 173.52/s iteration_duratio n 549.33ms 563.05ms 596.04ms 547.07ms 550.07ms 575.29ms iterations 27260 181.73/s 26589 177.25/s 25110 167.39/s 27367 182.44/s 27218 181.45/s 26029 173.52/s vus 100 100 100 100 100 100
  • 33. Performance test summary 0 20000 40000 60000 80000 100000 120000 140000 160000 AWS SDK no timeout Micronaut no timeout Spring no timeout Micronaut timeout Spring timeout AWS SDK timeout Warm Cold
  • 38. Q&A