Java In The Cloud with GraalVM • Alina Yurenko • GOTO 2023

Discover how GraalVM compiles Java applications into native executables for faster, more compact, and secure performance in cloud environments, and learn how to take advantage of its features for Micronaut and other frameworks.

Key takeaways
  • GraalVM allows you to take your Java application and compile it ahead of time to produce a native executable that can run on a Linux machine. This native executable can be much faster and more compact than a traditional JVM-based application.
  • Native image mode in GraalVM is a single binary that includes all dependencies required for your application, eliminating the need for runtime class loading and interpretation.
  • GraalVM native image can be used to create compact and secure native executables, which can be beneficial for cloud applications where startup time and memory usage are critical.
  • GraalVM is compatible with popular frameworks such as Micronaut and can make use of GraalVM’s native image feature to produce native executables.
  • Native executables produced by GraalVM can achieve similar peak throughput to a traditional JVM-based application.
  • Reflection and serialization are disabled by default in GraalVM native image mode, which can be beneficial for security reasons.
  • GraalVM provides a tracing agent that can be used to trace the behavior of native image applications.
  • GraalVM allows you to build native executables for multiple platforms, but cross-compilation between platforms is not currently supported.
  • GraalVM provides a centralized repository for configuration files for popular frameworks and libraries, making it easier to work with GraalVM.
  • GraalVM offers a single command to run your application in native mode, which can simplify the development process.
  • GraalVM’s native image feature can reduce the time required to start your application, as well as the memory usage during runtime.
  • GraalVM’s native image feature can be used to create smaller, more compact applications that are easier to scale and deploy in the cloud.