Book Image

Hands-On Cloud-Native Applications with Java and Quarkus

By : Francesco Marchioni
Book Image

Hands-On Cloud-Native Applications with Java and Quarkus

By: Francesco Marchioni

Overview of this book

Quarkus is a new Kubernetes-native framework that allows Java developers to combine the power of containers, microservices, and cloud-native to build reliable applications. The book is a development guide that will teach you how to build Java-native applications using Quarkus and GraalVM. We start by learning about the basic concepts of a cloud-native application and its advantages over standard enterprise applications. Then we will quickly move on to application development, by installing the tooling required to build our first application on Quarkus. Next, we’ll learn how to create a container-native image of our application and execute it in a Platform-as-a-Service environment such as Minishift. Later, we will build a complete real-world application that will use REST and the Contexts and Dependency injection stack with a web frontend. We will also learn how to add database persistence to our application using PostgreSQL. We will learn how to work with various APIs available to?Quarkus?such as Camel, Eclipse MicroProfile, and Spring DI. Towards the end, we will learn advanced development techniques such as securing applications, application configuration, and working with non-blocking programming models using Vert.x. By the end of this book, you will be proficient with all the components of Quarkus and develop-blazing fast applications leveraging modern technology infrastructure.
Table of Contents (15 chapters)
Free Chapter
1
Section 1: Getting Started with Quarkus
5
Section 2: Building Applications with Quarkus
10
Section 3: Advanced Development Tactics

To get the most out of this book

Hands-On Cloud-Native Applications with Java and Quarkus is a complete end-to-end development guide that will give you hands-on experience with building Kubernetes-native applications in serverless environments. To get the most out of this book, we recommend using a development environment that is integrated with Apache Maven (such as IntelliJ IDEA or Eclipse) and import it into our example code files. That will help you to follow our projects step-by-step and, when needed, to debug them.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com.
  2. Select the Support tab.
  3. Click on Code Downloads.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Hands-On-Cloud-Native-Applications-with-Java-and-Quarkus. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

Code in Action

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "An index.html page is provided as a marker in our project, as shown in the project's hierarchy."

A block of code is set as follows:

 // Create new JSON for Order #1
objOrder = Json.createObjectBuilder()
.add("id", new Long(1))
.add("item", "mountain bike")
.add("price", new Long(100))

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

@POST
@RolesAllowed("admin")
public Response create(Customer customer)

Any command-line input or output is written as follows:

$ tree src

Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Once you have some data, other actions (such as Edit and Delete) will be available."

Warnings or important notes appear like this.
Tips and tricks appear like this.