▶Book Description
Businesses today are evolving rapidly, and developers now face the challenge of building applications that are resilient, flexible, and native to the cloud. To achieve this, you'll need to be aware of the environment, tools, and resources that you're coding against.
The book will begin by introducing you to cloud-native architecture and simplifying the major concepts. You'll learn to build microservices in Jakarta EE using MicroProfile with Thorntail and Narayana LRA. You'll then delve into cloud-native application x-rays, understanding the MicroProfile specification and the implementation/testing of microservices. As you progress further, you'll focus on continuous integration and continuous delivery, in addition to learning how to dockerize your services. You'll also cover concepts and techniques relating to security, monitoring, and troubleshooting problems that might occur with applications after you've written them.
By the end of this book, you will be equipped with the skills you need to build highly resilient applications using cloud-native microservice architecture.
▶What You Will Learn
⦁ Integrate reactive principles in MicroProfile microservices architecture
⦁ Explore the 12-factors-app paradigm and its implications
⦁ Get the best out of Java versions 8 and 9 to implement a microservice based on Thorntail
⦁ Understand what OpenShift is and why it is so important for an elastic architecture
⦁ Build a Linux container image using Docker and scale the application using Kubernetes
⦁ Implement various patterns such as, Circuit Breaker and bulkheads
⦁ Get to grips with the DevOps methodology using continuous integration (CI) and continuous deployment (CD)
▶Key Features
⦁ Build robust cloud-native applications using a variety of tools
⦁ Understand how to configure both Amazon Web Services (AWS) and Docker clouds for high availability
⦁ Explore common design patterns used in building and deploying microservices architecture.
▶Who This Book Is For
This book is for developers with basic knowledge of Java EE and HTTP-based application principles who want to learn how to build, test and scale Java EE microservices. No prior experience of writing microservices in Java EE is required.
▶What this book covers
⦁ Chapter 1, Jakarta EE – the New Open Source Life of Java EE, describes the evolution of the Java SE and Java EE platforms in order to help you to quickly become useful in the new cloud ecosystem. We will discuss Jakarta EE (the new Java EE) and the possible future of Java EE.
⦁ Chapter 2, Microservices and Reactive Architecture, describes what a microservice is and explains its basic principles. We will describe the differences between a monolithic application and a microservice application. In this chapter, we will also become familiar with the principles and API of the MicroProfile initiative.
⦁ Chapter 3, Cloud-Native Applications, describes the concepts and the paradigm of writing an application that's ready for the cloud. We will describe the meaning of a cloud-native application, microservices, and the Twelve-Factor App methodology. We will focus on the design and the implications for both software and architectures.
⦁ Chapter 4, Building Microservices Using Thorntail, discusses how to create a distributed microservice architecture using the Jakarta EE and MicroProfile specifications, along with Thorntail. It covers a basic example of a microservice architecture built on top of Thorntail, an implementation of the MicroProfile and Java EE specifications.
⦁ Chapter 5, Eclipse MicroProfile and Transaction – Narayana LRA, explains how to implement and handle transactions in a microservice architecture, in particular regarding the aspects related to atomicity, consistency, isolation, durability (ACID), Extended Architecture (XA) transaction, application compensations, and the saga pattern. We will implement an example of handling transactions using Narayana.
⦁ Chapter 6, Linux Containers, discusses the concept of Linux containers, using the Docker image format. We will learn how to implement a Docker file, and how to build and run a Docker image.
⦁ Chapter 7, Platform as a Service, describes the main use of the OpenShift Platform as a Service (PaaS). We will also describe how PaaS can get the best out of technologies such as Docker and Kubernetes. We will also describe how to move your microservice architecture onto the cloud.
⦁ Chapter 8, Microservices Patterns, won't describe the complete lists of patterns to use with the microservices approach, but we will concentrate on the most commonly used ones to get you started and interested in the topic of patterns.
⦁ Chapter 9, Deployment, explains how to decompose an application and let our microservice architecture take shape from it. We will implement patterns with a testing application.
⦁ Chapter 10, Monitoring, explains how to monitor your microservice architecture, benefiting from our PaaS. We will also describe and use Grafana to provide an additional monitoring system.
⦁ Chapter 11, Building Microservices Using Spring Boot 2, explains how to create, through Spring Boot, the same microservices that were developed in the previous chapters.
⦁ Chapter 12, Building Microservices Using Vert.X, explains how to realize, through Vert.x, the same microservices developed in the previous chapters.