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.