Microservices With Spring Boot and Spring Cloud: Build Resilient and Scalable Microservices Using Spring Cloud, Istio, and Kubernetes, 2nd Edition

Magnus Larsson

Language: English

Publisher: Packt Publishing

Published: Jul 29, 2021

Description:

A step-by-step guide to creating and deploying production-quality microservices-based applications

Key Features

  • Build cloud-native production-ready microservices with this comprehensively updated guide
  • Understand the challenges of building large-scale microservice architectures
  • Learn how to get the best out of Spring Cloud, Kubernetes, and Istio in combination

Book Description

With this book, you'll learn how to efficiently build and deploy microservices. This new edition has been updated for the most recent versions of Spring, Java, Kubernetes, and Istio, demonstrating faster and simpler handling of Spring Boot, local Kubernetes clusters, and Istio installation. The expanded scope includes native compilation of Spring-based microservices, support for Mac and Windows with WSL2, and an introduction to Helm 3 for packaging and deployment. A revamped security chapter now follows the OAuth 2.1 specification and makes use of the newly launched Spring Authorization Server from the Spring team.

Starting with a set of simple cooperating microservices, you'll add persistence and resilience, make your microservices reactive, and document their APIs using OpenAPI.

You'll understand how fundamental design patterns are applied to add important functionality, such as service discovery with Netflix Eureka and edge servers with Spring Cloud Gateway. You'll learn how to deploy your microservices using Kubernetes and adopt Istio. You'll explore centralized log management using the Elasticsearch, Fluentd, and Kibana (EFK) stack and monitor microservices using Prometheus and Grafana.

By the end of this book, you'll be confident in building microservices that are scalable and robust using Spring Boot and Spring Cloud.

What you will learn

  • Build reactive microservices using Spring Boot
  • Develop resilient and scalable microservices using Spring Cloud
  • Use OAuth 2.1/OIDC and Spring Security to protect public APIs
  • Implement Docker to bridge the gap between development, testing, and production
  • Deploy and manage microservices with Kubernetes
  • Apply Istio for improved security, observability, and traffic management
  • Write and run automated microservice tests with JUnit, testcontainers, Gradle, and bash

Who this book is for

If you are a Java or Spring Boot developer who wants to learn how to build microservice landscapes from scratch, this book is for you.

No familiarity with microservices architecture is required.

Table of Contents

  1. Introduction to Microservices
  2. Introduction to Spring Boot
  3. Creating a Set of Cooperating Microservices
  4. Deploying our Microservices using Docker
  5. Adding an API Description using OpenAPI
  6. Adding Persistence
  7. Developing Reactive Microservices
  8. Introduction to Spring Cloud
  9. Adding Service Discovery Using Netflix Eureka
  10. Using Spring Cloud Gateway to Hide Microservices Behind an Edge Server
  11. Securing Access to APIs
  12. Centralized Configuration
  13. Improving Resilience Using Resilience4j
  14. Understanding Distributed Tracing
  15. Introduction to Kubernetes
  16. Deploying Our Microservices to Kubernetes
  17. Implementing Kubernetes Features to Simplify the System Landscape
  18. Using a Service Mesh to Improve Observability and Management
  19. Centralized Logging with the EFK Stack
  20. Monitoring Microservices
  21. Installation instructions for macOS
  22. Installation Instructions for Microsoft Windows with WSL 2 and Ubuntu
  23. Native Compiled Java Microservices