Optimized for Kubernetes, Quarkus is designed to help you create Java applications that are cloud first, container native, and serverless capable. With this cookbook, authors Alex Soto Bueno and Jason Porter from Red Hat provide detailed solutions for installing, interacting with, and using Quarkus in the development and production of microservices. The recipes in this book show midlevel to senior developers familiar with Java enterprise application development how to get started with Quarkus quickly. You’ll become familiar with how Quarkus works within the wider Java ecosystem and discover ways to adapt this framework to your particular needs. You’ll learn how to: Shorten the development cycle by enabling live reloading in dev mode Connect to and communicate with Kafka Develop with the reactive programming model Easily add fault tolerance to your services Build your application as a Kubernetes-ready container Ease development with OpenAPI and test a native Quarkus application
An enterprise Java developer's guide to learning JAX-RS, context and dependency injection, JavaServer Faces (JSF), and microservices with Eclipse MicroProfile using the latest features of Jakarta EE Key FeaturesExplore Jakarta EE's latest features and API specifications and discover their benefitsBuild and deploy microservices using Jakarta EE 8 and Eclipse MicroProfileBuild robust RESTful web services for various enterprise scenarios using the JAX-RS, JSON-P, and JSON-B APIsBook Description Jakarta EE is widely used around the world for developing enterprise applications for a variety of domains. With this book, Java professionals will be able to enhance their skills to deliver powerful enterprise solutions using practical recipes. This second edition of the Jakarta EE Cookbook takes you through the improvements introduced in its latest version and helps you get hands-on with its significant APIs and features used for server-side development. You'll use Jakarta EE for creating RESTful web services and web applications with the JAX-RS, JSON-P, and JSON-B APIs and learn how you can improve the security of your enterprise solutions. Not only will you learn how to use the most important servers on the market, but you'll also learn to make the best of what they have to offer for your project. From an architectural point of view, this Jakarta book covers microservices, cloud computing, and containers. It allows you to explore all the tools for building reactive applications using Jakarta EE and core Java features such as lambdas. Finally, you'll discover how professionals can improve their projects by engaging with and contributing to the community. By the end of this book, you'll have become proficient in developing and deploying enterprise applications using Jakarta EE. What you will learnWork with Jakarta EE's most commonly used APIs and features for server-side developmentEnable fast and secure communication in web applications with the help of HTTP2Build enterprise applications with reusable componentsBreak down monoliths into microservices using Jakarta EE and Eclipse MicroProfileImprove your enterprise applications with multithreading and concurrencyRun applications in the cloud with the help of containersGet to grips with continuous delivery and deployment for shipping your applications effectivelyWho this book is for This book is for Java EE developers who want to build enterprise applications or update their legacy apps with Jakarta EE's latest features and specifications. Some experience of working with Java EE and knowledge of web and cloud computing will assist with understanding the concepts covered in this book.
Enterprise developers face several challenges when it comes to building serverless applications, such as integrating applications and building container images from source. With more than 60 practical recipes, this cookbook helps you solve these issues with Knative—the first serverless platform natively designed for Kubernetes. Each recipe contains detailed examples and exercises, along with a discussion of how and why it works. If you have a good understanding of serverless computing and Kubernetes core resources such as deployment, services, routes, and replicas, the recipes in this cookbook show you how to apply Knative in real enterprise application development. Authors Kamesh Sampath and Burr Sutter include chapters on autoscaling, build and eventing, observability, Knative on OpenShift, and more. With this cookbook, you’ll learn how to: Efficiently build, deploy, and manage modern serverless workloads Apply Knative in real enterprise scenarios, including advanced eventing Monitor your Knative serverless applications effectively Integrate Knative with CI/CD principles, such as using pipelines for faster, more successful production deployments Deploy a rich ecosystem of enterprise integration patterns and connectors in Apache Camel K as Kubernetes and Knative components
Build fast, efficient Kubernetes-based Java applications using the Quarkus framework, MicroProfile, and Java standards. In Kubernetes Native Microservices with Quarkus and MicroProfile you’ll learn how to: Deploy enterprise Java applications on Kubernetes Develop applications using the Quarkus runtime Compile natively using GraalVM for blazing speed Create efficient microservices applications Take advantage of MicroProfile specifications Popular Java frameworks like Spring were designed long before Kubernetes and the microservices revolution. Kubernetes Native Microservices with Quarkus and MicroProfile introduces next generation tools that have been cloud-native and Kubernetes-aware right from the beginning. Written by veteran Java developers John Clingan and Ken Finnigan, this book shares expert insight into Quarkus and MicroProfile directly from contributors at Red Hat. You’ll learn how to utilize these modern tools to create efficient enterprise Java applications that are easy to deploy, maintain, and expand. About the technology Build microservices efficiently with modern Kubernetes-first tools! Quarkus works naturally with containers and Kubernetes, radically simplifying the development and deployment of microservices. This powerful framework minimizes startup time and memory use, accelerating performance and reducing hosting cost. And because it's Java from the ground up, it integrates seamlessly with your existing JVM codebase. About the book Kubernetes Native Microservices with Quarkus and MicroProfile teaches you to build microservices using containers, Kubernetes, and the Quarkus framework. You'll immediately start developing a deployable application using Quarkus and the MicroProfile APIs. Then, you'll explore the startup and runtime gains Quarkus delivers out of the box and also learn how to supercharge performance by compiling natively using GraalVM. Along the way, you'll see how to integrate a Quarkus application with Spring and pick up pro tips for monitoring and managing your microservices. What's inside Deploy enterprise Java applications on Kubernetes Develop applications using the Quarkus runtime framework Compile natively using GraalVM for blazing speed Take advantage of MicroProfile specifications About the reader For intermediate Java developers comfortable with Java EE, Jakarta EE, or Spring. Some experience with Docker and Kubernetes required. About the author John Clingan is a senior principal product manager at Red Hat, where he works on enterprise Java standards and Quarkus. Ken Finnigan is a senior principal software engineer at Workday, previously at Red Hat working on Quarkus. Table of Contents PART 1 INTRODUCTION 1 Introduction to Quarkus, MicroProfile, and Kubernetes 2 Your first Quarkus application PART 2 DEVELOPING MICROSERVICES 3 Configuring microservices 4 Database access with Panache 5 Clients for consuming other microservices 6 Application health 7 Resilience strategies 8 Reactive in an imperative world 9 Developing Spring microservices with Quarkus PART 3 OBSERVABILITY, API DEFINITION, AND SECURITY OF MICROSERVICES 10 Capturing metrics 11 Tracing microservices 12 API visualization 13 Securing a microservice
Harness the power of Quarkus, the supersonic subatomic cloud-native Java platform from Red Hat. This book covers everything you need to know to get started with the platform, which has been engineered from the ground up for superior performance and cloud-native deployment. You’ll start with an overview of the Quarkus framework and its features. Next, you'll dive into building your first microservice using Quarkus, including the use of JAX-RS, Swagger, Microprofile, REST, reactive programming, and more. You’ll see how to seamlessly add Quarkus to existing Spring framework projects. The book continues with a dive into the dependency injection pattern and how Quarkus supports it, working with annotations and facilities from both Jakarta EE CDI and the Spring framework. You’ll also learn about dockerization and serverless technologies to deploy your microservice. Next you’ll cover how data access works in Quarkus with Hibernate, JPA, Spring Boot, MongoDB, and more. This will also give you an eye for efficiency with reactive SQL, microservices, and many more reactive components. You’ll also see tips and tricks not available in the official documentation for Quarkus. Lastly, you'll test and secure Quarkus-based code and use different deployment scenarios to package and deploy your Quarkus-based microservice for the cloud, using Amazon Web Services as a focus. After reading and using Beginning Quarkus Framework, you'll have the essentials to build and deploy cloud-native microservices and full-fledged applications. Author Tayo Koleoso goes to great lengths to ensure this book has up to date material including brand new and some unreleased features! What You Will Learn Build and deploy cloud-native Java applications with Quarkus Create Java-based microservices Integrate existing technologies such as the Spring framework and vanilla Java EE into the Quarkus framework Work with the Quarkus data layer on persistence with SQL, reactive SQL, and NoSQL Test code in Quarkus with the latest versions of JUnit and Testcontainers Secure your microservices with JWT and other technologies Package your microservices with Docker containers and GraalVM native image tooling Tips and techniques you won't find in the official Quarkus documentation Who This Book Is For Intermediate Java developers familiar with microservices, the cloud in general, and REST web services, but interested in modern approaches.
While containers, microservices, and distributed systems dominate discussions in the tech world, the majority of applications in use today still run monolithic architectures that follow traditional development processes. This practical book helps developers examine long-established Java-based models and demonstrates how to bring these monolithic applications successfully into the future. Relying on their years of experience modernizing applications, authors Markus Eisele and Natale Vinto walk you through the steps necessary to update your organization's Java applications. You'll discover how to dismantle your monolithic application and move to an up-to-date software stack that works across cloud and on-premises installations. Learn cloud native application basics to understand what parts of your organization's Java-based applications and platforms need to migrate and modernize Understand how enterprise Java specifications can help you transition projects and teams Build a cloud native platform that supports effective development without falling into buzzword traps Find a starting point for your migration projects by identifying candidates and staging them through modernization steps Discover how to complement a traditional enterprise Java application with components on top of containers and Kubernetes
Build robust and reliable Java applications that works on modern infrastructure, such as containers and cloud, using the new features in Quarkus 1.0 Key FeaturesBuild apps with faster boot time and low RSS memory using the latest Quarkus 1.0 featuresSeamlessly integrate imperative and reactive programming models to build modern Java applicationsDiscover effective solutions for running Java on serverless apps, microservices, containers, FaaS, and the cloudBook Description 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. What you will learnBuild a native application using Quarkus and GraalVMSecure your applications using Elytron and the MicroProfile JWT extensionManage data persistence with Quarkus using PostgreSQLUse a non-blocking programming model with QuarkusLearn how to get Camel and Infinispan working in native modeDeploy an application in a Kubernetes-native environment using MinishiftDiscover Reactive Programming with Vert.xWho this book is for The book is for Java developers and software architects who are interested in learning a promising microservice architecture for building reliable and robust applications. Knowledge of Java, Spring Framework, and REST APIs is assumed.
With the rise of DevOps, low-cost cloud computing, and container technologies, the way Java developers approach development today has changed dramatically. This practical guide helps you take advantage of microservices, serverless, and cloud native technologies using the latest DevOps techniques to simplify your build process and create hyperproductive teams. Stephen Chin, Melissa McKay, Ixchel Ruiz, and Baruch Sadogursky from JFrog help you evaluate an array of options. The list includes source control with Git, build declaration with Maven and Gradle, CI/CD with CircleCI, package management with Artifactory, containerization with Docker and Kubernetes, and much more. Whether you're building applications with Jakarta EE, Spring Boot, Dropwizard, MicroProfile, Micronaut, or Quarkus, this comprehensive guide has you covered. Explore software lifecycle best practices Use DevSecOps methodologies to facilitate software development and delivery Understand the business value of DevSecOps best practices Manage and secure software dependencies Develop and deploy applications using containers and cloud native technologies Manage and administrate source control repositories and development processes Use automation to set up and administer build pipelines Identify common deployment patterns and antipatterns Maintain and monitor software after deployment
Microservices is an architectural style that structures an application as a collection of distributed services. Microservices are certainly appealing but there are many questions that should be asked prior to diving into this architectural style: How do I deal with an unreliable network in a distributed architecture? How do I test my services? How do I monitor them? How do I package and execute them? That's when Quarkus comes into play. In this fascicle you will develop an entire microservice application using Quarkus as well as MicroProfile. You will expose REST endpoints using JAX-RS and OpenAPI, customise the JSON output thanks to JSON-B and deal with persistence and transaction with Hibernate ORM with Panache and JTA. Having distributed microservices, you will implement health checks and add some metrics so you can monitor your microservice architecture. Finally, thanks to GraalVM you will build native executables, and package and execute them with Docker. This fascicle is very practical. It is the companion book of the more theoretical Understanding Quarkus 1.x where you'll learn more about Quarkus, MicroProfile, REST and reactive microservices, as well as Cloud Native and GraalVM.
Reactive systems and event-driven architecture are becoming indispensable to application design, and companies are taking note. Reactive systems ensure that applications are responsive, resilient, and elastic no matter what failures or errors may be occurring, while event-driven architecture offers a flexible and composable option for distributed systems. This practical book helps Java developers bring these approaches together using Quarkus 2.x, the Kubernetes-native Java framework. Clement Escoffier and Ken Finnigan show you how to take advantage of event-driven and reactive principles to build robust distributed systems, reducing latency and increasing throughput, particularly in microservices and serverless applications. You'll also get a foundation in Quarkus to help you create true Kubernetes-native applications for the cloud. Understand the fundamentals of reactive systems and event-driven architecture Learn how to use Quarkus to build reactive applications Combine Quarkus with Apache Kafka or AMQP to build reactive systems Develop microservices that utilize messages with Quarkus for use in event-driven architectures Learn how to integrate external messaging systems, such as Apache Kafka, with Quarkus Build applications with Quarkus using reactive systems and reactive programming concepts