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 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.