As we’ve seen previously, running our microservices in JVM mode means packaging and running them as executable JARs. But Quarkus also allows us to compile them into machine code and run them as native processes. This has the advantage of dramatically improving the application start-up time and memory usage. Hence, the native mode is the preferred execution mode of the Quarkus applications in production.
All the whys and wherefores of the native mode are explained in a very clear and detailed manner in the Quarkus documentation. To resume, in order to compile Java code into machine one, a so-called “C native compilation environment” is required, as well as a GraalVM distribution. However, given the relative complexity of the GraalVM installation and configuration process, Quarkus is able to avoid it to us and offers the possibility to create Linux executable code without having to install and configure GraalVM. This is the modus operandi that we’ll be adopting here.