Serverless in Java Lessons learnt
summary
Built a serverless migration service that moves millions of users using AWS Step Functions to orchestrate workflows, AWS Lambda for steps, API Gateway, DynamoDB and Elasticsearch/Kibana, deployed with CloudFormation; it works for unpredictable peaks but one Java Lambda shows cold start spikes up to ~8 seconds so that function is rewritten in Python. Using the open source lambda power tuning tool finds 256 MB as a cost/performance sweet spot versus 128 MB. Notes: concurrent execution limit 1000, max timeout 15 minutes, /tmp 512 MB.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:25About me
- 1:55How does serverless work?
- 4:02Our use-case: migration project
- 6:40Why serverless?
- 8:39Why Java?
- 10:26Project structure
- 12:09Endpoint definition in Spring Boot
- 12:52Endpoint definition in AWS
- 15:58Debugging
- 16:20Running your code locally
- 17:17IntelliJ AWS toolkit
- 18:20Metrics and logs
- 20:56Java performance in AWS
- 23:50Performance tuning
- 30:37Decreasing cold start time
- 31:18Eliminating cold start time
- 32:43Reducing cold start time using AWS Lambda Layers
- 35:56Reusing execution context
- 37:46AWS Lambda Environment Variables
- 38:56AWS Lambda limits
- 40:28Conclusion
related talks
01h 04mMigrating to Serverless - an experience report
45mPatterns & practices for developing enterprise-scale serverless applications
54mServerless beyond Functions
54mContainerless in the cloud with AWS Lambda
01h 00mServerless - reality or BS - notes from the trenches
39mServerless in production, an experience report
29m2 Years, 0 Servers: Lessons learned from running a startup 100% on Serverless
31mA quick intro to AWS Serverless
