Waarom Quarkus hier draaien?

  • We gebruiken Quarkus zelf: ons managementplatform Barista draait op Quarkus in productie. We hebben te maken met dezelfde framework-updates, extensie-compatibiliteit en deployment-patronen als jij.
  • Vaste maandprijs: geen AWS bandbreedte-verrassingen of NAT gateway-kosten. Elke maand dezelfde factuur.
  • Nederlandse datacenters: drie locaties, data blijft in de EU. ISO 27001-processen ingericht, certificering in voorbereiding.
  • Directe toegang tot engineers: als je app om 21:00 problemen geeft, praat je met de mensen die het cluster draaien, niet met een helpdesk.

Twee manieren om je app te draaien

Je Quarkus app is een container, een JAR, of een native binary. We hebben plek voor alle drie.

Pods CaffeineStacks
Wat je krijgt Een namespace op ons managed Kubernetes cluster Een dedicated VM met volledige root-toegang
Je deployt met kubectl, Helm, of CI/CD Docker Compose, Ansible, of CI/CD
Wij regelen Cluster, ingress, TLS, monitoring, scaling OS, firewall, backups, monitoring, SSL
Vanaf €100/maand €250/maand
Past bij Teams die vertrouwd zijn met kubectl en YAML Teams die een server willen waar ze in kunnen SSHen

Beide opties draaien op dezelfde infrastructuur: drie Nederlandse datacenters, privé backbone, ISO 27001 gecertificeerd. Het verschil zit in hoe je ermee werkt.

Quarkus in containers: waar het om draait

Quarkus is ontworpen voor containers. Dat geeft je voordelen ten opzichte van traditionele Java-frameworks, maar er zijn nog steeds dingen om goed te doen.

JVM-modus vs native

De meeste Quarkus apps draaien prima in JVM-modus. Je krijgt snelle opstart (typisch 1-3 seconden), redelijk geheugengebruik, en het volledige Java-ecosysteem. Native compilatie met GraalVM brengt opstarttijd naar milliseconden en geheugen naar een fractie, maar voegt buildcomplexiteit toe en beperkt reflection-intensieve libraries. We ondersteunen beide. Als je twijfelt, begin met JVM-modus en ga native wanneer je het nodig hebt.

Geheugen

Een typische Quarkus app in JVM-modus gebruikt 100-200 MB heap. Dat is aanzienlijk minder dan Spring Boot voor vergelijkbare functionaliteit. In native modus kan het totale RSS-gebruik onder de 50 MB zakken. Dit betekent dat je meer services kwijt kunt op kleinere pods, of een Cortado (4 GB) tier kunt gebruiken waar een Spring Boot app misschien een Espresso (8 GB) nodig heeft.

Health checks

De quarkus-smallrye-health extensie geeft je /q/health/live en /q/health/ready standaard mee. Deze mappen direct op Kubernetes liveness en readiness probes. Quarkus start snel genoeg voor agressieve initial delays.

livenessProbe:
  httpGet:
    path: /q/health/live
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 10
readinessProbe:
  httpGet:
    path: /q/health/ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 5

Dev Services

Quarkus Dev Services starten automatisch databases, Kafka-brokers en andere dependencies tijdens ontwikkeling. Dit heeft geen impact op productie, maar het betekent dat je team lokaal kan ontwikkelen zonder de productiestack exact na te bouwen. Wanneer je naar onze infrastructuur deployt, staan de echte services al geconfigureerd klaar.

Database

De meeste Quarkus apps gebruiken Hibernate ORM met Panache of Reactive SQL Clients. Op Pods maak je een PostgreSQL-instantie in je namespace via de CloudNativePG operator. Schrijf een manifest, apply het, en je hebt een beheerde database met geautomatiseerde backups en failover.

Op CaffeineStacks richten we een dedicated PostgreSQL-instantie in op je VM of op een aparte database-VM (Cortado, €50/maand). Wij regelen backups, updates en monitoring.

In beide gevallen wijst je application.properties gewoon naar een JDBC URL. Geen code-aanpassingen nodig.

Monitoring

De quarkus-micrometer-registry-prometheus extensie stelt metrics beschikbaar die we automatisch in Prometheus scrapen. Je krijgt Grafana-dashboards met:

  • JVM-metrics: heap-gebruik, GC-frequentie en pauzetijden, thread count
  • HTTP-metrics: request rate, responstijden, foutpercentages per endpoint
  • Custom metrics: alles wat je via Micrometer beschikbaar maakt verschijnt automatisch
  • Alerts: configureerbare drempels naar Slack, email of webhook

Geen agents installeren, geen configuratie nodig. Voeg de extensie toe en monitoring werkt out of the box.

Deployment

Bouw je container image in CI, push naar een registry, deploy naar je namespace of VM. Quarkus heeft ingebouwde container image support:

- name: Build and push
  run: |
    ./mvnw package -Dquarkus.container-image.build=true \
      -Dquarkus.container-image.push=true \
      -Dquarkus.container-image.image=registry/my-app:${{ github.sha }}

- name: Deploy
  run: |
    kubectl set image deployment/my-app \
      my-app=registry/my-app:${{ github.sha }}

We helpen je met het opzetten van de pipeline tijdens onboarding. Heb je er al een, dan sluiten we daarop aan.

Welke optie past bij jouw app?

Jouw situatie Onze aanbeveling
Eén Quarkus app, vertrouwd met kubectl Pods Cortado (€100/maand) of Espresso (€150/maand) als je een database nodig hebt
Quarkus app met PostgreSQL, iemand moet de server beheren CaffeineStacks Espresso (€250/maand) + Cortado database (€50/maand)
Meerdere Quarkus services, microservices-architectuur Managed Clusters vanaf €1500/maand met dedicated staging en productie

Wat we niet doen

We beheren infrastructuur, niet je applicatiecode. We debuggen je CDI-configuratie niet en schrijven je Dockerfile niet. Maar we vertellen je wel wanneer je app geheugen lekt, wanneer je connection pool uitgeput is, of wanneer je health endpoint flapt. En als je hands-on Java-expertise nodig hebt, kan ons consulting team helpen.

Vertel ons over je app

Beschrijf wat je draait, wat je nodig hebt, en waar het nu staat. We adviseren de juiste setup en geven je een duidelijke prijs. De meeste teams gaan van eerste mail naar draaiende infrastructuur binnen een week.

Neem contact op
CoffeeSprout infrastructuur