Practising Quarkus


Book Description

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.




Understanding Quarkus


Book Description

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 learn Quarkus but also its ecosystem. You will discover Quarkus internals and how you can use it to build REST and reactive microservices, bind and process JSON or access datastores in a transactional way. With Cloud Native and GraalVM in mind, Quarkus makes packaging and orchestrating your microservices with Docker and Kubernetes easy.This fascicle has a good mix of theory and practical examples. It is the companion book of Practising Quarkus 1.x where you learn how to develop an entire microservice architecture.




DevOps Culture and Practice with OpenShift


Book Description

A practical guide to making the best use of the OpenShift container platform based on the real-life experiences, practices, and culture within Red Hat Open Innovation Labs Key FeaturesLearn how modern software companies deliver business outcomes that matter by focusing on DevOps culture and practicesAdapt Open Innovation Labs culture and foundational practices from the Open Practice LibraryImplement a metrics-driven approach to application, platform, and product, understanding what to measure and how to learn and pivotBook Description DevOps Culture and Practice with OpenShift features many different real-world practices - some people-related, some process-related, some technology-related - to facilitate successful DevOps, and in turn OpenShift, adoption within your organization. It introduces many DevOps concepts and tools to connect culture and practice through a continuous loop of discovery, pivots, and delivery underpinned by a foundation of collaboration and software engineering. Containers and container-centric application lifecycle management are now an industry standard, and OpenShift has a leading position in a flourishing market of enterprise Kubernetes-based product offerings. DevOps Culture and Practice with OpenShift provides a roadmap for building empowered product teams within your organization. This guide brings together lean, agile, design thinking, DevOps, culture, facilitation, and hands-on technical enablement all in one book. Through a combination of real-world stories, a practical case study, facilitation guides, and technical implementation details, DevOps Culture and Practice with OpenShift provides tools and techniques to build a DevOps culture within your organization on Red Hat's OpenShift Container Platform. What you will learnImplement successful DevOps practices and in turn OpenShift within your organizationDeal with segregation of duties in a continuous delivery worldUnderstand automation and its significance through an application-centric viewManage continuous deployment strategies, such as A/B, rolling, canary, and blue-greenLeverage OpenShift’s Jenkins capability to execute continuous integration pipelinesManage and separate configuration from static runtime softwareMaster communication and collaboration enabling delivery of superior software products at scale through continuous discovery and continuous deliveryWho this book is for This book is for anyone with an interest in DevOps practices with OpenShift or other Kubernetes platforms. This DevOps book gives software architects, developers, and infra-ops engineers a practical understanding of OpenShift, how to use it efficiently for the effective deployment of application architectures, and how to collaborate with users and stakeholders to deliver business-impacting outcomes.




Reactive Systems in Java


Book Description

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




Java Concurrency in Practice


Book Description

Threads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice, the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them. However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant. This book covers: Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model




Quarkus Cookbook


Book Description

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




Hibernate Tips


Book Description

When you use Hibernate in your projects, you quickly recognize that you need to do more than just add @Entity annotations to your domain model classes. Real-world applications often require advanced mappings, complex queries, custom data types and caching. Hibernate can do all of that. You just have to know which annotations and APIs you need to use. Hibernate Tips - More than 70 solutions to common Hibernate problems shows you how to efficiently implement your persistence layer with Hibernate's basic and advanced features. Each Hibernate Tip consists of one or more code samples and an easy to follow step-by-step explanation. You can also download an example project with executable test cases for each Hibernate Tip. Throughout this book, you will get more than 70 ready-to-use solutions that show you how to: - Define standard mappings for basic attributes and entity associations. - Implement your own attribute mappings and support custom data types. - Use Hibernate's Java 8 support and other proprietary features. - Read data from the database with JPQL, Criteria API, and native SQL queries. - Call stored procedures and database functions. This book is for developers who are already working with Hibernate and who are looking for solutions for their current development tasks. It's not a book for beginners who are looking for extensive descriptions of Hibernate's general concepts. The tips are designed as self-contained recipes which provide a specific solution and can be accessed when needed. Most of them contain links to related tips which you can follow if you want to dive deeper into a topic or need a slightly different solution. There is no need to read the tips in a specific order. Feel free to read the book from cover to cover or to just pick the tips that help you in your current project.




Practicing Quarkus


Book Description

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.




Designing Hexagonal Architecture with Java


Book Description

A practical guide for software architects and Java developers to build cloud-native hexagonal applications using Java and Quarkus to create systems that are easier to refactor, scale, and maintain Key FeaturesLearn techniques to decouple business and technology code in an applicationApply hexagonal architecture principles to produce more organized, coherent, and maintainable softwareMinimize technical debts and tackle complexities derived from multiple teams dealing with the same code baseBook Description Hexagonal architecture enhances developers' productivity by decoupling business code from technology code, making the software more change-tolerant, and allowing it to evolve and incorporate new technologies without the need for significant refactoring. By adhering to hexagonal principles, you can structure your software in a way that reduces the effort required to understand and maintain the code. This book starts with an in-depth analysis of hexagonal architecture's building blocks, such as entities, use cases, ports, and adapters. You'll learn how to assemble business code in the Domain hexagon, create features by using ports and use cases in the Application hexagon, and make your software compatible with different technologies by employing adapters in the Framework hexagon. Moving on, you'll get your hands dirty developing a system based on a real-world scenario applying all the hexagonal architecture's building blocks. By creating a hexagonal system, you'll also understand how you can use Java modules to reinforce dependency inversion and ensure the isolation of each hexagon in the architecture. Finally, you'll get to grips with using Quarkus to turn your hexagonal application into a cloud-native system. By the end of this hexagonal architecture book, you'll be able to bring order and sanity to the development of complex and long-lasting applications. What you will learnFind out how to assemble business rules algorithms using the specification design patternCombine domain-driven design techniques with hexagonal principles to create powerful domain modelsEmploy adapters to make the system support different protocols such as REST, gRPC, and WebSocketCreate a module and package structure based on hexagonal principlesUse Java modules to enforce dependency inversion and ensure isolation between software componentsImplement Quarkus DI to manage the life cycle of input and output portsWho this book is for This book is for software architects and Java developers who want to improve code maintainability and enhance productivity with an architecture that allows changes in technology without compromising business logic, which is precisely what hexagonal architecture does. Intermediate knowledge of the Java programming language and familiarity with Jakarta EE will help you to get the most out of this book.




Keycloak - Identity and Access Management for Modern Applications


Book Description

Learn to leverage the advanced capabilities of Keycloak, an open-source identity and access management solution, to enable authentication and authorization in applications Key Features Get up to speed with Keycloak, OAuth 2.0, and OpenID Connect using practical examples Configure, manage, and extend Keycloak for optimized security Leverage Keycloak features to secure different application types Book DescriptionImplementing authentication and authorization for applications can be a daunting experience, often leaving them exposed to security vulnerabilities. Keycloak is an open-source solution for identity management and access management for modern applications, which can make a world of difference if you learn how to use it. Keycloak, helping you get started with using it and securing your applications. Complete with hands-on tutorials, best practices, and self-assessment questions, this easy-to-follow guide will show you how to secure a sample application and then move on to securing different application types. As you progress, you will understand how to configure and manage Keycloak as well as how to leverage some of its more advanced capabilities. Finally, you'll gain insights into securely using Keycloak in production. By the end of this book, you will have learned how to install and manage Keycloak as well as how to secure new and existing applications.What you will learn Understand how to install, configure, and manage Keycloak Secure your new and existing applications with Keycloak Gain a basic understanding of OAuth 2.0 and OpenID Connect Understand how to configure Keycloak to make it ready for production use Discover how to leverage additional features and how to customize Keycloak to fit your needs Get to grips with securing Keycloak servers and protecting applications Who this book is for Developers, sysadmins, security engineers, or anyone who wants to leverage Keycloak and its capabilities for application security will find this book useful. Beginner-level knowledge of app development and authentication and authorization is expected.