java Patterns and Practices for serverless Applications
Abstract
The idea is: how fast can we move from one cloud to another.
- start with AWS calculator beforehand
- cost driven architecture Serverless patterns:
- fat, monolithic function
- use Quarkus or Micronaute frameworks for better performance as they remove reflections
- “nano”, asynchronous / event driven function
- no framework dependency, only a POJO (e.g. s3 upload event)
- serverless archive “SAR”
- app as a function
- self-provisioned runtimes
- instead of using containers / testcontainers and co, each developer can deploy to its own cloud, and debug it, and it’s free
- cloud native services ⇒ CDK + SDK
- using CDK + SDK to generate a shared jar that is used to describe the app deployment
- opinionated infrastructure resources
- BCE for IaC
- IaC app (executable JAR)
- reusable self-contained constructions (maven modules)
- no code with Java
- cloud tests firsts