From the course: Learning Quarkus

Welcome to Quarkus

From the course: Learning Quarkus

Start my 1-month free trial

Welcome to Quarkus

- [Instructor] The Quarkus framework is a powerful set of open source tools sponsored by Red Hat that fills the needs of most Java developers operating in the cloud, in containers or on big iron systems. As a framework, I haven't been this excited since the early days of Spring. So let's talk a little bit about what Quarkus is itself. First and foremost, it's a full stack Java framework. You can build web applications, web services, standalone components all written in Java with Quarkus. Anything you can do with Java, you can obviously do with Quarkus but the extensions and configurations that we will discuss is where the power really comes in. The full stack framework concepts includes many of these extension points. Quarkus is Kubernetes native. It was designed from the ground up to operate in a containerized world and we will talk about this. One of the areas I see a huge benefit from Quarkus over other Java frameworks is size. The most popular Java framework, for instance, can be significantly bigger from a RAM utilization perspective, which is why this is very important when dealing with Kubernetes. Smaller is better, especially if you're managing the system underneath the Kubernetes nodes. Quarkus is also designed to be fully cloud native. Many of its size, efficiencies and extensions have the ability to run in many operational formats, including serverless, containerized, or VM operations. It also supports full externalized configuration, making it fit into the 12 factor application scope as well. Quarkus itself is also designed to be natively compiled with the GraalVM. Some frameworks are not yet ready for this exciting change but Quarkus is, and we see massive improvements on execution performance using the GraalVM with Quarkus. And if you're interested in that, I have a course on GraalVM itself, specifically looking at various frameworks, like Quarkus and Spring. Now, Red Hat discusses several key features of Quarkus and being designed for developers is one of the first ones that they mention. Quarkus is designed to be easy to use. Now, this isn't just words. In my opinion, I think once you start writing your first application, you will see that Quarkus is indeed cleaner and easier to pick up than many other frameworks. Part of what makes this a great choice for developers is the massive amount of choice you are given. Some frameworks really push their opinions onto the developer and while oftentimes it works fine, it doesn't really focus on the developers who use the framework from their needs perspective. Instead, telling them what they should need. A cool tool that I have used when building web-based applications for several years now is live coding. Quarkus gives you live coding out of the box. The configuration model for Quarkus is unified and it's very powerful with its own set of defaults that help you as a developer move fast and focus on what you need to focus on, which quite frankly isn't the framework itself. And finally, from a developer perspective, it's how easy and clean it is to build a native image from standard code. Quarkus was designed to be container first. Now, this philosophy is evident in all aspects of the framework itself. The entire framework was built around this mantra. Lower memory usage is one of the biggest benefits. We are seeing reduced memory footprints of nearly 90% over some of the traditional Java applications, using the most popular frameworks today. Part of being container-first development framework is acknowledging the startup time and that it matters and Quarkus has embraced that as well by improving startup times over traditional Java applications, as well as those using again the most common frameworks of today. Now, one of the coolest aspects for full stack developers today with Quarkus is the way it handles imperative code and reactive code. Quarkus combines reactive and imperative into a single runtime, as opposed to different runtimes as you'll see with other frameworks and different patterns outside the code themselves as well. To accomplish this, Quarkus uses the reactive engine for both imperative and reactive styles. This way, the develop using reactive could to get their non-blocking core, which is really what they need, whereas the developer doing imperative, they just keep doing what they're doing, regardless of the fact that the core is non-blocking, they're still writing blocking applications based on the standard RESTful endpoints, for instance. Now, by combining both of these together, this allows developers to use the same core and write the code that makes sense for their business needs and their use cases.

Contents