How to use Quarkus

Following our release of GraalVM support, I can show you how to use Quarkus on Clever Cloud. Quarkus is a Java framework conceived with GraalVM and cloud/container support in mind. If you want to be a first class citizen in the GraalVM ecosystem, you are expected to produce native binaries. And in a nutshell, it means you will experience issues in Reflection usage because you use AOT compiling instead of JIT.

But thanks to the amazing work of the Quarkus team, this won’t be an issue. They tried to avoid reflection as mush as possible, sometimes contributing code to projects upstream, and made it very easy to use it with AOT compiling when it’s absolutely necessary.

You’ll find more details about the importance of Quarkus on Emmanuel Bernard’s blog post Why Quarkus. Now let’s find a sample to deploy and see how it works. We took the hello world available here:

It’s a maven project so to create this on Clever Cloud you use our CLI and run clever create --type maven quarkus-example. Now we need to setup the right environment variables to configure our project:

clever env set CC_JAVA_VERSION graalvm-ce # Select GraalVM as Java version
clever env set CC_MAVEN_PROFILES native # define wich maven profile to use in the default build. Here native mwans it will generate a GraalVM native image.
clever env set CC_RUN_COMMAND target/quarkus-quickstart-1.0-runner # The path to the native image we will run.

We are building a native image and this reauires a decent amount of memory. This means we’ll have to use a dedicated build instance. Open the web console and select the application (or type clever console do to this automatically), click on the Information tab and tick the Enable dedicated build instance box.

Again if you are using our CLI you can type clever deploy and that is it. You now have a Quarkus native image running on Clever Cloud. If this brings you joy please take some time to thank all the Quarkus team for their awesome work! We have been using JEE from the very beginning for many internal things and are super grateful <3.


À lire également

Our new logs interface is available in public beta

You can now discover our new log stack interface and its new features!

Deploy from GitLab or GitHub

Over the past few months, some customers have raised questions about CI/CD building to deploy…


Metrics: Offloading billions of datapoints each month

Metrics are crucial to the day-to-day running of our platform. Here's how we've automated the archiving process.