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