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 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: