Skip to content

Commit b07079a

Browse files
committed
Quarkus as a powerful runtime - Blog post #2
Signed-off-by: Michal Maléř <[email protected]>
1 parent 64b0627 commit b07079a

10 files changed

+151
-0
lines changed
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
layout: post
3+
title: 'Quarkus: Runtime and Framework for Cloud-Native Java'
4+
date: 2025-10-22
5+
tags: quarkus runtime framework performance cloud-native
6+
synopsis: This post explores how Quarkus speeds up development, cuts costs, and makes development enjoyable for cloud-native Java.
7+
author: mmaler
8+
thumbnailimage: /assets/images/posts/mmaler-blog-posts/quarkus-as-a-powerful-runtime.jpeg
9+
---
10+
:imagesdir: /assets/images/posts/mmaler-blog-posts/2-Quarkus-as-a-powerful-runtime/
11+
ifdef::env-github,env-browser,env-vscode[:imagesdir: ../assets/images/posts/mmaler-blog-posts/2-Quarkus-as-a-powerful-runtime/]
12+
13+
= Quarkus: Runtime and Framework for Cloud-Native Java
14+
15+
image::/assets/images/posts/mmaler-blog-posts/quarkus-as-a-powerful-runtime.jpeg[alt="Quarkus: Runtime and Framework for Cloud-Native Java", width=100%]
16+
17+
In this post, “runtime” means the full execution stack in production: JVM or native, plus Quarkus and the integrated frameworks.
18+
Quarkus is a Java runtime that seamlessly integrates popular frameworks and libraries, shaping both the structure of modern applications and the developer experience behind them.
19+
20+
From a complementary perspective, “framework” denotes the higher-level layer that provides structure and APIs; in this sense, Quarkus can also be viewed as a framework.
21+
22+
== Why Quarkus stands out
23+
24+
In modern software development, runtimes and frameworks form the foundation of productivity and consistency.
25+
Frameworks promote uniformity, simplify infrastructure, and enable automation at scale.
26+
27+
image::1-history.png[alt="A brief timeline leading to modern Java and Quarkus", width=100%]
28+
29+
Quarkus, a truly cloud-native Java runtime, integrates multiple frameworks under one roof and optimizes them for developer efficiency, memory usage, and lightning-fast startup.
30+
As a result, it provides a solid foundation for building modern, cloud-native applications.
31+
32+
Quarkus integrates established Java frameworks, such as CDI, JAX-RS, and Hibernate, but it also enforces its own conventions, uses annotations to drive behavior, and defines how applications are structured.
33+
34+
In this sense, Quarkus is a framework that serves as a runtime and platform for cloud-native Java applications. It also embraces industry standards, offering compatibility with technologies such as Spring, Kafka, and Camel to support familiar and flexible development models.
35+
36+
== Quarkus as a versatile framework
37+
38+
Beyond standard traits common to modern frameworks, Quarkus introduces two platform-defining features: build-time optimization and deep extensibility.
39+
40+
* *Build-time optimization*: Quarkus shifts work from runtime to build time wherever possible.
41+
This approach reduces startup overhead and memory usage, resulting in a lean, fast, and efficient application tailored for production.
42+
+
43+
image::2-build-time-principle.png[alt="Build-time principle in Quarkus: being fast by doing less at runtime", width=100%]
44+
+
45+
image::3-BuildTimeP-Benefits-JVM.png[alt="Benefits of Quarkus build-time processing on the JVM", width=100%]
46+
+
47+
image::4-BuildTimeP-Benefits-native.png[alt="Benefits of Quarkus native image compared to JVM", width=100%]
48+
+
49+
image::5-JVM-Snapshotting-Native.png[alt="JVM snapshotting vs native images in Quarkus", width=100%]
50+
51+
* *Extensibility*: Quarkus exposes extension points for everything from startup hooks to request filters.
52+
Over 800 extensions allow seamless integration with modern technologies such as Kafka, OpenTelemetry, and OpenID Connect.
53+
54+
These extensions integrate with Quarkus and participate in its build-time and runtime lifecycle, making them first-class citizens of the Quarkus platform.
55+
56+
=== Simplified developer experience
57+
58+
Frameworks succeed when they reduce complexity without sacrificing power.
59+
Quarkus does exactly that:
60+
61+
* Preconfigures popular libraries with sensible defaults.
62+
* Offers unified configuration and developer tooling.
63+
* Provides instant feedback with live reload and continuous testing.
64+
65+
This makes Quarkus both powerful and approachable.
66+
67+
You can start with a simple REST endpoint and scale it into a production-grade service without changing your development model.
68+
69+
image::6-Frictionless.png[alt="Frictionless developer experience: live reload, dev services, continuous testing", width=100%]
70+
71+
These features reflect Quarkus’s dual role: it behaves like a framework during development, offering structure, defaults, and conventions, and it acts as a runtime during execution, delivering performance, efficiency, and operational consistency.
72+
73+
=== Performance that matters
74+
75+
As discussed in the link:https://cacm.acm.org/practice/application-frameworks/[ACM article on application frameworks], two recurring goals are fast startup and resilience against cascading failures.
76+
77+
Native image generation with GraalVM enables cold starts in milliseconds and a minimal memory footprint, allowing cost-effective deployment in containers and serverless environments.
78+
79+
Quarkus also includes structured health checks, metrics, and tracing, thereby aligning with production standards from day one.
80+
81+
image::7-success-stories.png[alt="Real-world success stories using Quarkus", width=100%]
82+
83+
84+
=== Security
85+
86+
Quarkus uses a standards-first, composable, security model.
87+
You enable what you need and configure it for your environment:
88+
89+
* **Transport:** Enable TLS for HTTPS, or terminate TLS at your ingress.
90+
* **Authentication:** Choose Basic, form-based, mTLS, or OpenID Connect (OIDC).
91+
* **Authorization:** Enforce RBAC on web endpoints with `@RolesAllowed`, `@DenyAll`, and `@PermitAll`.
92+
93+
This lets you apply the right security controls for each deployment.
94+
95+
=== Observability and control surfaces
96+
97+
Common control surfaces, such as metrics, logging, tracing, and configuration, are essential for Site Reliability Engineers (SREs) and platform teams.
98+
99+
Quarkus exposes:
100+
101+
* Unified logging with link:https://quarkus.io/guides/logging[`quarkus-logging`].
102+
* Structured metrics and tracing with link:https://quarkus.io/guides/telemetry-micrometer-to-opentelemetry[Micrometer and OpenTelemetry].
103+
* Unified configuration of all the application's aspects by using `application.properties` or environment variables.
104+
105+
This standardization enables automation and scalable monitoring.
106+
107+
=== Modular and production-ready
108+
109+
Following a lean-core, modular-at-the-edge approach, Quarkus delivers:
110+
111+
* A minimal core for fast startup.
112+
* Pluggable modules for authentication, tracing, messaging, and more.
113+
* Dev Services for automatic provisioning of databases, brokers, and containers in dev mode.
114+
115+
Whether you're building a prototype or deploying to OpenShift, Quarkus adapts.
116+
This modularity spans both the framework-level APIs developers work with and the runtime behaviors that execute beneath them.
117+
118+
Because Quarkus modularity is declarative and unified across extensions, it supports a platform-like developer experience without the rigidity of traditional frameworks.
119+
120+
=== Building your stack with Quarkus
121+
122+
Frameworks can serve as a foundation for creating higher-level abstractions.
123+
124+
Quarkus fits naturally into this model—not by becoming a platform itself, but by enabling teams to build their customized stacks and frameworks on top of it.
125+
126+
Unlike many traditional frameworks, Quarkus provides a unified extension architecture that supports deep customization.
127+
Organizations can tailor Quarkus to fit specific domains, technologies, or compliance needs.
128+
This enables the creation of organization-specific developer experiences, as seen in solutions like Amadeus’s SQube.
129+
130+
By encouraging consistency, offering build-time integration, and exposing clean extension points, Quarkus supports the creation of opinionated, scalable internal frameworks without forking or reinventing the core.
131+
132+
With Quarkus, teams can focus on business logic while the runtime handles infrastructure concerns, and the platform provides consistency across services.
133+
This is similar to Logicdrop, which refactored its entire Spring Boot stack with Quarkus, reducing container size by ~75%, achieving sub-second startup times, and significantly improving developer productivity.
134+
135+
For more information, see the link:https://quarkus.io/blog/logicdrop-customer-story/[Logicdrop customer story] and their link:https://quarkus.io/blog/logicdrop-automating-quarkus-with-gitlab/?utm_source=chatgpt.com[GitLab automation write-up].
136+
137+
== Conclusion
138+
139+
Quarkus unifies the strengths of a framework and a runtime.
140+
141+
As a framework, it provides structure, conventions, and a cohesive developer experience; as a runtime, it delivers fast startup, low memory use, and operational consistency in the cloud.
142+
143+
This dual role helps teams standardize practices, reduce costs, and ship resilient cloud-native services — while preserving developer joy.
144+
145+
image::8-expectations.png[alt="Setting expectations for performance and developer experience with Quarkus", width=100%]
146+
147+
For a closer look at how Quarkus makes Java cloud-native, see the https://quarkus.io/blog/mmaler-blogpost-1-intro/[introductory blog post].
148+
149+
== What’s next?
150+
151+
Explore more Quarkus use cases in the link:https://quarkus.io/blog/[official blog archive], or check out the link:https://quarkus.io/guides/[Quarkus guides] to start building your own cloud-native stack today.
451 KB
Loading
742 KB
Loading
508 KB
Loading
324 KB
Loading
409 KB
Loading
376 KB
Loading
410 KB
Loading
306 KB
Loading
358 KB
Loading

0 commit comments

Comments
 (0)