Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Native Serverless Java with Quarkus & GraalVM on AWS Lambda

Cloud Native Serverless Java with Quarkus & GraalVM on AWS Lambda

395d9a1bac6f64d04bbd713d5b6bc433?s=128

Niko Köbler

May 26, 2020
Tweet

Transcript

  1. CLOUD NATIVE SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS

    LAMBDA NIKO KÖBLER (@DASNIKO)
  2. 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
  3. THE APPLICATION

  4. SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA THE

    APPLICATION
  5. SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA JUG

    DA SERVERLESS REGISTRATION (BEFORE)
  6. SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA THE

    LEGACY CODE
  7. QUARKUS quarkus.io

  8. GRAALVM graalvm.org

  9. AWS LAMBDA aws.amazon.com/lambda

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

  11. QUARKUS HIGHLANDER MODE

  12. LET’S GET FUNQY API to write functions deployable to various

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

    FaaS environments (like AWS Lambda, Azure Functions, Knative, …)
  14. YATE!? Yet Another Templating Engine

  15. QUARKUS QUTE QUarkus Templating Engine

  16. QUARKUS QUTE QUarkus Templating Engine

  17. SECURITY AWS Lambda w/ API Gateway = HTTP(S) handling in

    API Gateway, Lambda knows only „Events“
  18. SECURITY Thank you, Mr. Highlander… Polyglott programming to the rescue!

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

  20. GOING NATIVE AWS Lib for DynamoDB - Quarkus Extension \o/

    (AWS API v2) AWS Lib for Simple-Email-Service - no Quarkus Extension :-(
  21. WORKS ON MY MACHINE!?

  22. AWS LAMBDA LAMBDA LAYERS CUSTOM RUNTIME API

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

  24. REFLECTION!!! reflection-config.json

  25. 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
  26. SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA JUG

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

    DA SERVERLESS REGISTRATION (AFTER)
  28. SERVERLESS JAVA W/ QUARKUS & GRAALVM ON AWS LAMBDA CONCLUSION

  29. 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