Building Lean Spring Boot Applications for the Cloud by Patrick Baumgartner

Building lean Spring Boot applications for the cloud with performance and scalability considerations, including optimizations with lazy Spring Beans, Buildpacks, and virtual threads.

Key takeaways

Conference Talk Summary

Building Lean Spring Boot Applications for the Cloud

Considerations regarding resources

  • Use maven-plugin for efficient pom.xml customization
  • Create a baseline for optimization experiments
  • Spring Boot 3.3 released, with improvements in startup time and memory usage

Optimizations

  • Use lazy Spring Beans to reduce memory usage and improve startup time
  • Leverage jlink for efficient JAR creation and reduced image size
  • Utilize Buildpacks for efficient container creation and streamlined deployment
  • Pin Oracle JVM version for improved performance and reliability

Benchmarking

  • Use WRK for benchmarking and comparing optimizations
  • Measure build time, startup time, resource usage, and throughput
  • Calculate container size and optimize for smaller images

Virtual Threads

  • Use virtual threads for improved performance and scalability
  • Leverage Java 17 and Java 21 for further optimizations

Pet Clinic

  • Pet Clinic is a CRUD application used for showcasing technology and testing optimizations
  • Utilize H2 as an in-memory database for testing purposes
  • Leverage Spring Boot 3.2 for improved performance and scalability

Community Cases

  • Discuss the benefits of using Buildpacks and jlink for efficient container creation and reduced image size
  • Showcase examples of leveraging Java 17 and Java 21 for improved performance and scalability

Takeaways

  • Lean Spring Boot applications can be built using Buildpacks and jlink for efficient container creation and reduced image size
  • Optimizations can be achieved by leveraging lazy Spring Beans, jlink, and Virtual Threads for improved performance and scalability
  • Pet Clinic is a useful test bed for showcasing technology and testing optimizations