Developing and deploying Java applications to the cloud is easy, right? Copy the über jar of your application into a directory and run it in any Java capable container. Done. Far from it! Creating well-behaving Java applications in containers in a dynamic computing environment such as the cloud that also utilizes its resources well can be challenging. Why? Because without proper thought your cloud deployment might not be tuned for low memory usage, might not use available memory efficiently, it might pick a wrong GC algorithm or it might not get properly updated when your base image receives security fixes. In this session we'll talk about common gotchas when deploying OpenJDK to containers in resource constrained environments, talk about a few GC and memory settings in order to get the most out of your Java application in the cloud, and give some guidance as to how to debug issues when things go wrong. Finally, we show how a good framework choice when developing a Java application for the cloud from scratch can make a real difference.