|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: 'Quarkus: Runtime and Framework for Cloud-Native Java' |
| 4 | +date: 2025-10-23 |
| 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 | +In this post, “runtime” means the full execution stack in production: JVM or native, plus Quarkus and the integrated frameworks. |
| 16 | +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. |
| 17 | + |
| 18 | +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. |
| 19 | + |
| 20 | +== Why Quarkus stands out |
| 21 | + |
| 22 | +In modern software development, runtimes and frameworks form the foundation of productivity and consistency. |
| 23 | +Frameworks promote uniformity, simplify infrastructure, and enable automation at scale. |
| 24 | + |
| 25 | +image::history.png[alt="A brief timeline leading to modern Java and Quarkus", width=100%] |
| 26 | + |
| 27 | +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. |
| 28 | +As a result, it provides a solid foundation for building modern, cloud-native applications. |
| 29 | + |
| 30 | +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. |
| 31 | + |
| 32 | +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. |
| 33 | + |
| 34 | +== Quarkus as a versatile framework |
| 35 | + |
| 36 | +Beyond standard traits common to modern frameworks, Quarkus introduces two platform-defining features: build-time optimization and deep extensibility. |
| 37 | + |
| 38 | +* *Build-time optimization*: Quarkus shifts work from runtime to build time wherever possible. |
| 39 | +This approach reduces startup overhead and memory usage, resulting in a lean, fast, and efficient application tailored for production. |
| 40 | + |
| 41 | +image::2-build-time-principle.png[alt="Build-time principle in Quarkus: being fast by doing less at runtime", width=100%] |
| 42 | +image::3-BuildTimeP-Benefits-JVM.png[alt="Benefits of Quarkus build-time processing on the JVM", width=100%] |
| 43 | +image::4-BuildTimeP-Benefits-native.png[alt="Benefits of Quarkus native image compared to JVM", width=100%] |
| 44 | +image::5-JVM-Snapshotting-Native.png[alt="JVM snapshotting vs native images in Quarkus", width=100%] |
| 45 | + |
| 46 | + |
| 47 | +* *Extensibility*: Quarkus exposes extension points for everything from startup hooks to request filters. |
| 48 | +Over 800 extensions allow seamless integration with modern technologies such as Kafka, OpenTelemetry, and OpenID Connect. |
| 49 | + |
| 50 | +These extensions integrate with Quarkus and participate in its build-time and runtime lifecycle, making them first-class citizens of the Quarkus platform. |
| 51 | + |
| 52 | +=== Simplified developer experience |
| 53 | + |
| 54 | +Frameworks succeed when they reduce complexity without sacrificing power. |
| 55 | +Quarkus does exactly that: |
| 56 | + |
| 57 | +* Preconfigures popular libraries with sensible defaults. |
| 58 | +* Offers unified configuration and developer tooling. |
| 59 | +* Provides instant feedback with live reload and continuous testing. |
| 60 | + |
| 61 | +This makes Quarkus both powerful and approachable. |
| 62 | + |
| 63 | +You can start with a simple REST endpoint and scale it into a production-grade service without changing your development model. |
| 64 | + |
| 65 | +image::6-Frictionless.png[alt="Frictionless developer experience: live reload, dev services, continuous testing", width=100%] |
| 66 | + |
| 67 | +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. |
| 68 | + |
| 69 | +=== Performance that matters |
| 70 | + |
| 71 | +As described in the ACM article on application frameworks, Google's internal framework design emphasized fast startup and resilience against cascading failures. |
| 72 | +Quarkus was built with these principles in mind. |
| 73 | + |
| 74 | +Native image generation with GraalVM enables cold starts in milliseconds and a minimal memory footprint, allowing cost-effective deployment in containers and serverless environments. |
| 75 | + |
| 76 | +Quarkus also includes structured health checks, metrics, and tracing, thereby aligning with production standards from day one. |
| 77 | + |
| 78 | +image::7-success-stories.png[alt="Real-world success stories using Quarkus", width=100%] |
| 79 | + |
| 80 | + |
| 81 | +=== Secure by default |
| 82 | + |
| 83 | +Quarkus separates application logic from infrastructure concerns. |
| 84 | +By structuring the request lifecycle with standardized handlers such as exception mappers, filters, and interceptors, it supports strong security practices: |
| 85 | + |
| 86 | +* Secure headers and CSRF protection out of the box. |
| 87 | +* Native support for role-based access control. |
| 88 | +* Seamless integration with OpenID Connect providers. |
| 89 | + |
| 90 | +Just as Google’s frameworks reduced vulnerabilities through safe APIs and typed response models, Quarkus applies similar principles by using conventions and standardized components to promote secure defaults and trusted integrations. |
| 91 | + |
| 92 | +=== Observability and control surfaces |
| 93 | + |
| 94 | +Common control surfaces, such as metrics, logging, tracing, and configuration, are essential for Site Reliability Engineers (SREs) and platform teams. |
| 95 | + |
| 96 | +Quarkus exposes: |
| 97 | + |
| 98 | +* Unified logging via quarkus-logging. |
| 99 | +* Structured metrics and tracing with Micrometer and OpenTelemetry. |
| 100 | +* Declarative configuration via application.properties or environment overrides. |
| 101 | + |
| 102 | +This standardization enables automation and scalable monitoring. |
| 103 | + |
| 104 | +=== Modular and production-ready |
| 105 | + |
| 106 | +Following Google's principle of keeping frameworks lean at the core and modular at the edge, Quarkus delivers: |
| 107 | + |
| 108 | +* A minimal core for fast startup. |
| 109 | +* Pluggable modules for authentication, tracing, messaging, and more. |
| 110 | +* Dev Services for automatic provisioning of databases, brokers, and containers in dev mode. |
| 111 | + |
| 112 | +Whether you're building a prototype or deploying to OpenShift, Quarkus adapts. |
| 113 | +This modularity spans both the framework-level APIs developers work with and the runtime behaviors that execute beneath them. |
| 114 | + |
| 115 | +Because Quarkus modularity is declarative and unified across extensions, it supports a platform-like developer experience without the rigidity of traditional frameworks. |
| 116 | + |
| 117 | +=== Building your stack with Quarkus |
| 118 | + |
| 119 | +Frameworks can serve as a foundation for creating higher-level abstractions. |
| 120 | + |
| 121 | +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. |
| 122 | + |
| 123 | +Unlike many traditional frameworks, Quarkus provides a unified extension architecture that supports deep customization. |
| 124 | +Organizations can tailor Quarkus to fit specific domains, technologies, or compliance needs. |
| 125 | +This enables the creation of organization-specific developer experiences, as seen in solutions like Amadeus’s SQube. |
| 126 | + |
| 127 | +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. |
| 128 | + |
| 129 | +With Quarkus, teams can focus on business logic while the runtime handles infrastructure concerns, and the platform provides consistency across services. |
| 130 | +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. |
| 131 | + |
| 132 | +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]. |
| 133 | + |
| 134 | +== Conclusion |
| 135 | + |
| 136 | +Quarkus unifies the strengths of a framework and a runtime. |
| 137 | + |
| 138 | +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. |
| 139 | + |
| 140 | +This dual role helps teams standardize practices, reduce costs, and ship resilient cloud-native services — while preserving developer joy. |
| 141 | + |
| 142 | +image::8-expectations.png[alt="Setting expectations for performance and developer experience with Quarkus", width=100%] |
| 143 | + |
| 144 | +For a closer look at how Quarkus makes Java cloud-native, see the https://quarkus.io/blog/mmaler-blogpost-1-intro/[introductory blog post]. |
| 145 | + |
| 146 | +== What’s next? |
| 147 | + |
| 148 | +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. |
0 commit comments