While Java apps are technically portable across many platforms, it can be tricky to not tightly couple them to specific deployment platforms, severely degrading their portability. Unfortunately containers alone haven’t fully isolated us the myriad of differences across platforms. This session will cover ways that we can build, package, and deploy Java applications so they remain portable. This enables scaling from cost-efficient and developer environments, to massive scale Kubernetes deployments. Using examples with Spring, you’ll learn how to:
* Abstract service configuration / binding
* Utilize Testcontainers across local dev/test & CI
* Efficiently avoid cold starts with CRaC and other techniques
* Package applications most efficiently for the target platforms