Java on AWS Special

Details
Joint meetup with AWS Vienna Meetup !
Agenda
18:00 doors open
18:20 welcome
18:30 High performance Serverless Java on AWS - Vadym Kazulkin
19:30 Break
19:55 Raffle
20:00 How to develop, run and optimize Spring Boot 3 application on AWS Lambda - Vadym Kazulkin
21:15 Networking nearby
High performance Serverless Java on AWS
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption and cold start times for Java Serverless applications on AWS Lambda including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. We'll also look into the SnapStart priming techniques which help us increase the Lambda performance and explore how AWS Lambda Profiler for Java can help us identify this potential. We'll also explore the impact of the SnapStart snapshot tiered low-latency cache on the cold start times.
I'll also provide Lambda functions performance (cold and warm start times) benchmarking for:
- Deployment package sizes
- Lambda memory settings
- Java compilation options
- Managing Lambda dependencies with Lambda layers
- Choice of garbage collection algorithm
- Choice of hardware architecture x86 vs arm64
- HTTP (a)synchronous clients
How to develop, run and optimize Spring Boot 3 application on AWS Lambda
In this talk I will present and compare several options of how to run Spring Boot 3 application on AWS Lambda using the following framework or tools:
- AWS Serverless Java Container
- AWS Lambda Web Adapter
- Spring Cloud Function
- Custom Docker Image.
I'll also discuss strategies how to optimize cold start of such Lambda function with AWS Custom Lambda Runtime based on GraalVM Native Image and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. Moreover I'll present various (SnapStart) priming techniques to reduce the cold start even further and explain the benefits of the snapshot tiered cache. Is Spring Boot native support of CRaC also a potential optimization? I'll also discuss optimization strategies for the warm start/execution time of the Lambda function.

Sponsors
Java on AWS Special