Slide 1

Slide 1 text

CLOUD NATIVE SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA NIKO KÖBLER (@DASNIKO)

Slide 2

Slide 2 text

ABOUT ME ▸ Freelance Consultant/Architect/Developer/Trainer @ www.n-k.de ▸ Doing stuff with & without computers, writing Software, > 20 yrs ▸ Co-Lead of JUG DA (https://www.jug-da.de / @JUG_DA) ▸ Speaker at international Tech Conferences ▸ Author of „Serverless Computing in AWS Cloud“ serverlessbuch.de ▸ Twitter: @dasniko SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA

Slide 3

Slide 3 text

THE APPLICATION

Slide 4

Slide 4 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA THE APPLICATION

Slide 5

Slide 5 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA JUG DA SERVERLESS REGISTRATION (BEFORE)

Slide 6

Slide 6 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA THE LEGACY CODE

Slide 7

Slide 7 text

QUARKUS quarkus.io

Slide 8

Slide 8 text

GRAALVM graalvm.org

Slide 9

Slide 9 text

AWS LAMBDA aws.amazon.com/lambda

Slide 10

Slide 10 text

QUARKUS Tooling RESTEasy as JAX-RS Implementation AWS Lambda HTTP Extension

Slide 11

Slide 11 text

QUARKUS HIGHLANDER MODE

Slide 12

Slide 12 text

LET’S GET FUNQY API to write functions deployable to various FaaS environments (like AWS Lambda, Azure Functions, Knative, …)

Slide 13

Slide 13 text

LET’S GET FUNQY API to write functions deployable to various FaaS environments (like AWS Lambda, Azure Functions, Knative, …)

Slide 14

Slide 14 text

YATE!? Yet Another Templating Engine

Slide 15

Slide 15 text

QUARKUS QUTE QUarkus Templating Engine

Slide 16

Slide 16 text

QUARKUS QUTE QUarkus Templating Engine

Slide 17

Slide 17 text

SECURITY AWS Lambda w/ API Gateway = HTTP(S) handling in API Gateway, Lambda knows only „Events“

Slide 18

Slide 18 text

SECURITY Thank you, Mr. Highlander… Polyglott programming to the rescue!

Slide 19

Slide 19 text

GOING NATIVE $ mvn package -Pnative Compile Errors..!

Slide 20

Slide 20 text

GOING NATIVE AWS Lib for DynamoDB - Quarkus Extension \o/ (AWS API v2) AWS Lib for Simple-Email-Service - no Quarkus Extension :-(

Slide 21

Slide 21 text

WORKS ON MY MACHINE!?

Slide 22

Slide 22 text

AWS LAMBDA LAMBDA LAYERS CUSTOM RUNTIME API

Slide 23

Slide 23 text

HTTPS! -Djavax.net.ssl.trustStore=/opt/graalvm/security/cacerts -Djavax.net.ssl.trustAnchors=/opt/graalvm/security/cacerts -Djava.library.path=/opt/graalvm/amd64

Slide 24

Slide 24 text

REFLECTION!!! reflection-config.json

Slide 25

Slide 25 text

WE ARE DONE!!! 0 1000 2000 3000 4000 MEMORY ALT (MB) MEMORY NEU (MB) COLD STARTUP ALT (MS) COLD STARTUP NEU (MS) Repository: https://github.com/jugda/registration Website: https://www.jug-da.de

Slide 26

Slide 26 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA JUG DA SERVERLESS REGISTRATION (BEFORE)

Slide 27

Slide 27 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA JUG DA SERVERLESS REGISTRATION (AFTER)

Slide 28

Slide 28 text

SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA CONCLUSION

Slide 29

Slide 29 text

THANK YOU. ANY QUESTIONS? Slides: https://speakerdeck.com/dasniko Niko Köbler | www.n-k.de | niko@n-k.de | @dasniko SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA