Index

Symbols

12-factor app

design principles 31

reference link 31

_istio_base.yaml template

content 545, 546, 547

_istio_dr_mutual_tls.yaml template

content 548, 549

A

access tokens

acquiring 324

acquiring, with authorization code grant flow 325, 326, 327, 328

acquiring, with client credentials grant flow 324, 325

used, for calling protected APIs 329, 330, 331

AdoptOpenJDK

URL 103

affinity rules 426

Ahead of Time (AOT) compilation 699

Ansible 453

API

adding 65

implementing 69, 70, 71

API client

error handling 81

API definitions

changes 378

API design

significance 31

API, Eureka server

requests, routing to 287, 288

API implementations

error handling 80

api project

adding 65

API project 66, 68

APIs

edge server, modifying 316, 317

product-composite service, modifying 316, 317

product-composite service only, modifying 318

protecting, with OAuth 2.0 315

protecting, with OpenID Connect (OIDC) 315

testing, manually 82, 83, 84, 85

test script, modifying 321

application metrics

source code, modifying for 636, 637

apt install

using, for tools installation 690, 691

authentication 300

authorization 300

authorization code grant flow

used, for acquiring access tokens 325, 326, 327, 328

authorization delegation 300

authorization grant flows 302, 303

automated microservice tests

adding, in isolation 86, 87, 88, 89

automated tests

adding 385, 386, 387, 388, 389

building 322, 362, 390

running 322, 362, 390

writing, to focus on persistence 151

automated tests, of microservice landscape

updating 181, 182

autonomous software component 4

advantages 5, 6, 7

challenges 8

auto-wiring 37

B

backward-compatible 571

Base64 462

blue/green deployment

kubectl patch command 583

performing 584, 585, 586

running 582

bounded context 66

Bounded Contexts 30

builder pattern 199

built-in objects 457

reference link 457

Buoyant

URL 529

C

canary tests

running 580, 581, 582

central configuration pattern 19

problem 19

solution 19

solution requirements 20

centralized configuration

Spring Cloud Config, using for 246, 247

centralized log analysis pattern 20

problem 20, 21

solution 21

solution requirements 22

centralized monitoring and alarms pattern 26

problem 26

solution 26

solution requirements 27

Certificate Authorities (CAs) 309

certificate object

reference link 520

certificate provisioning

automating 512, 513, 514

certificates

rotating 519, 520

cert-manager 455

reference link 513

system landscape, testing 514, 515, 516, 517, 518, 519

cgroups 50

chain of failures 8

challenges

handling, with messaging 202, 203

chart 453

chart repository 455

circuit breaker 372

closing 392, 393

configuration parameters, using 373

forcing, to open when things go wrong 391, 392

key features 372

reporting, state in actuator health endpoint 374

sample usage, in Resilience4j 249, 250, 251

verifying, under normal operations 390, 391

working, with 389

circuit breaker and time limiter, adding

annotations, adding in source code 381

configuration, adding 383

dependencies, adding to build file 380

fail-fast fallback logic, adding 382

circuit breaker pattern 24

problem 24

solution 24

solution requirements 24

client credentials grant flow

used, for acquiring access tokens 324, 325

clients

configuring, to Eureka server 267, 268

clients, Spring Cloud Configuration server (config server

configuring 359

cloud

path migration to 31

Cloud Native Buildpacks project

reference link 701

Cloud Native Computing Foundation (CNCF) 592

CNCF

reference link 10

common library chart

components charts 474, 475

ConfigMap template 459

Deployment template 468

environment charts 476, 477

naming conventions 458

Secrets template, creating 461

Service template 463, 466

components charts 474, 475

Composite API

implementing 78, 79

composite API operations

implementing 170, 172

composite health check

adding 282, 283, 284

composite microservice

adding 72

API classes 73

integration component 74, 75, 76, 77

properties 74

composite service

events, publishing in 216

composite service API

extending 166

operations, adding 167, 168

composite services

non-blocking REST APIs 197

composite service tests

updating 172, 173

ConfigMap template 459, 460

using, example 460

configuration

obtaining, with Spring Cloud Configuration server (config server) API 363, 364

configuration parameters

reference link 376

configuration repository

storage type, selecting 353

structuring 362

configuration, securing

about 354

at rest 355

in transit 354

connection information

configuring 360, 361

Consumer 48

consumer group 204, 205

containerd 427

Container Network Interface (CNI) 423

container orchestrators 10

Container Runtime Interface (CRI) 427

context 431

Control Groups (cgroups) 94

control loop pattern 25

problem 25

solution 26

solution requirements 26

control plane, components

api-server 426

controller manager 426

etcd 426

scheduler 426

convention over configuration 35

Conway's law 30

cooperating microservices, test run

troubleshooting 118, 119

cooperating microservices, tests

automating 115, 116, 117

core microservices

persistence layer, adding 145

core services

events, consuming in 211

non-blocking REST APIs 192

correlation ID 23

curl

download link 674, 685

curl command

using 691

Custom Resource Definitions (CRDs) 516, 534

D

database connection configuration 175, 176, 177

databases

adding, Docker Compose landscape 173

data plane, components

container runtime 427

kubelet 426

kube-proxy 427

Kubernetes DNS 427

Data Transfer Object (DTO) 68

dead-letter queue 205

declarative command 430

delivery pipeline 29

dependencies

adding, to build file 380

adding, to build files 402

dependency injection 34

deployment

testing 484

Deployment template 468, 469, 470, 471, 472

using, example 473, 474

DevOps

significance 29

discovery endpoint 305

discovery first bootstrap

reference link 354

discovery server

access, securing 310

discovery service

trying out 268

disruptive tests

with Eureka server 272

distributed system 13

distributed tracing

about 405

adding, to source code 401, 402

API request, sending to trigger asynchronous processing 410, 412

configuration, adding for Spring Cloud Sleuth 402, 403

configuration, adding for Zipkin 402, 403

dependencies, adding to build files 402

Kafka, using as message broker 414, 416

Spring Cloud Sleuth, using for 251, 253, 254

successful API request, sending 406, 407, 408

system landscape, with RabbitMQ queue manager 406

trace information, monitoring to Zipkin in RabbitMQ 413, 414

unsuccessful API request, sending 408, 409, 410

with Spring Cloud Sleuth 400, 401

with Zipkin 400, 401

Zipkin, adding to Docker Compose files 403, 404, 405

Zipkin, using for 251, 253, 254

distributed tracing pattern 22

problem 22

solution 23

solution requirements 23

DNS-based service discovery

issues 256, 257, 258

Docker 9, 28, 50, 51, 52, 94, 95

Spring Cloud Configuration server (config server) configuration, for using with 358

Docker commands

running 95, 96, 97

Docker Compose 52

native compiled images, testing 712, 713, 714, 715, 716, 717

tests, running with 587

using, for testing 524, 525, 526

Docker Compose commands

reference link 53

Docker Compose configuration 173, 175

Docker Compose files

changes 523, 524

Zipkin, adding to 403, 404, 405

Docker Compose landscape

databases. adding 173

Docker Desktop

installing, for Windows 688, 689

Docker Desktop for Mac

installation link 674

Docker Desktop for Windows

download link 688

installation link 684, 688

Dockerfile 51

Docker images

building 478, 479

Docker, using with one microservice 100

container detached, running 108, 109

Docker image, building 105

service, starting up 106, 107, 108

source code, changes 101, 102, 104

domain-driven design 66

Domain-Driven Design 30

dot 458

dry run 481

E

edge server

adding, to system landscape 280, 281

exposing, to outside of system landscape 291, 292

product composite API, calling 292, 293

routing rule, setting in 357

Spring Cloud Gateway, using as 245, 246

Swagger UI, calling 293, 294

trying out 290

edge server pattern 16

problem 17

solution 17

solution requirements 17

EFK stack

deploying, on Kubernetes 601

implementing 611

Kibana, initializing 612

log records, analyzing 613, 614, 615, 616, 617

log records, discovering from microservices 617, 618, 619, 620, 621, 622, 623

root cause analyses, performing 623, 624, 625, 626, 627, 628

Egress gateway 528

Elasticsearch

deploy commands, running 605, 606

deploying 603

manifest file 604, 605

reference link 603

ELK stack

reference link 592

entities 44

entity 44, 45

environment charts 476, 477

error handling

adding 79

in API client 81, 82

in API implementations 80

Eureka

calling, through edge server 294, 295

Eureka clients

access, modifying 312, 313

Eureka server

access, modifying 311, 312

clients, configuring to 267, 268

configuring 267

disruptive tests 272

extra instance, starting of product service 274

review instance, stopping 273

starting 275, 276

stopping 273

event

defining 208, 209

event-driven asynchronous services

challenges, handling with messaging 202, 203

developing 202

event, defining 208, 209

events, consuming in core services 211

events, publishing in composite services 216

modifying, in Gradle build files 210

topic, defining 208, 209

versus non-blocking synchronous APIs 186, 187

event-driven asynchronous services, challenges

guaranteed order 207

event-driven asynchronous services, challenges handling with messaging

consumer groups 204, 205

dead-letter queue 205, 206

guaranteed order 206

partitions 206, 207

retries 205, 206

events

consuming, in core services 211

publishing, in composite service 216

publishing, in integration layer 217

events, consuming in core services

configuration, adding 214, 215

message processors, declaring 211, 212

modifying, in service implementations 213

modifying, in test code 215, 216

events, publishing in composite service

configuration, adding 218

modifying, in test code 219, 220, 221, 222

external communication

protecting, with HTTPS 307, 308

external endpoints

protecting, with HTTPS and certificates 557, 558, 559, 560

external OpenID Connect provider

access tokens,acquiring with authorization code grant flow 344, 345, 346

access tokens,acquiring with client credentials grant flow 343, 344

Auth0 account, configuring 333, 334, 335, 336, 337, 338

Auth0 account, setting up 333, 334, 335, 336, 337, 338

changes, applying to use Auth0 339

OAuth resource servers configuration, modifying 339

protected APIs, calling with Auth0 access tokens 347

testing with 333

test script, modifying to acquire access tokens from Auth0 340, 342

test script, running with Auth0 342, 343

user information, obtaining 347, 348

F

fail-fast fallback logic

adding 382

fallback method 372

fat JAR file 35

files

building, to add dependencies 402

filters

used, for routing requests 288, 289

Fluentd

about 592

configuring 594, 595, 596, 597, 598, 599, 600, 601

deploy commands, running 610

deploying 606

manifest files 607, 608, 610

overview 592, 593, 594

URL 592

Fluentd configuration files

reference link 594

Flux 189

Flux objects 47

fully qualified domain name (FQDN) 547

G

Git

download link 674, 685

glob pattern 457

GraalVM project 699, 700

reference link 699

graceful shutdown

reference link 452

Spring Boot, testing 485, 486, 487, 488, 489

Spring Boot, using 451, 452

Gradle

multi-project builds, setting up 63, 64, 65

Gradle build files

modifying 210

updating 702, 703, 704

Gradle project, organizing

reference link 682, 695

Grafana 530

used, for monitoring performance metrics 634, 635

Grafana alarms

circuit breaker alarm, testing 665, 666, 667, 668, 669

mail-based notification channel, setting up 659, 661

setting up 659

setting up, on circuit breaker 661, 662, 663, 665

Grafana dashboards

creating 648

developing 647

exporting 657, 658

implementing 652

importing 645, 646, 657, 658

Kiali's built-in dashboards, using 641, 642, 643, 644

load testing 641

local mail server, installing for tests 639, 640

Prometheus metrics, examining 647, 648

used, for monitoring microservices 638

Grafana dashboards, creation

empty dashboard, creating 648, 649

panel, creating for circuit breaker metric 649

panel, creating for retry metric 650

panels, arranging 650, 652

Grafana dashboards, implemention

circuit breaker metrics, testing 652, 653, 655

retry metrics, testing 655, 656

H

half-open circuit 24

HashiCorp Vault PKI Secrets Engine

reference link 512

health group 452

health indicators

reference link 452

Helm 453, 454, 455

built-in objects 457

chart dependencies, resolving 479

chart, viewing 456

commands, running 455

installation link 674, 685

reference link 453

templates 456, 458

values 456, 457, 458

Helm commands

reference link 455

Homebrew

installation link 675

installing 675

using, to install tools 676

horizontal scaling 9

host-based routing 288

HTTPS

certificate, creating 307

edge server, configuring 307

used, for protecting external communication 307, 308

HyperKit

reference link 429

Hypervisor framework 429

I

Identity Provider (IdP) 301

imperative statements 430

Ingress

system landscape, testing 514, 515, 516, 517, 518, 519

Ingress gateway 528

Ingress object 422

install command

using 691

integrated development environment (IDE)

using 681

integration layer

events, publishing in 217

methods, adding 169

Istio 28, 529, 530, 531

deploying, in Kubernetes cluster 537, 538, 539, 540

reference link 529, 675, 692

service meshes with 528, 529

Istio API objects 534

objects 534, 535

Istioctl

download link 674, 685

Istio Ingress Gateway

Kubernetes Ingress controller, replacing with 536

Istio proxies

injecting, into microservices 531, 532, 533

Istio services

access, setting up 540, 541, 542, 543, 544

Istio's Jaeger component

Zipkin server, replacing with 536

J

Java

installation link 674, 685

Java 2 Platforms, Enterprise Edition (J2EE) 34

Java Development Kit (JDK) 97

Java execution in docker, challenges 97, 98

available CPUs, limiting 98

available memory, limiting 99, 100

Java Persistence API (JPA) 44

Java Platform, Enterprise Edition (Java EE) 35

Java Runtime Environment (JRE) 97

Java source code

native compile 698, 699

Jinja2 453

JPA 2.2

reference link 44

jq

download link 674, 685

JSON Web Key Set (jwk-set) 306

JSON Web Token (JWT) 304

JSON Web Tokens (JWTs) 535

Just in Time (JIT) compilation 698

JVM (Micrometer) 645

K

Kafka

using, with two partitions per topic 232, 233, 234, 235

key management

reference link 355

Kiali 530

Kibana

deploy commands, running 605, 606

deploying 603

manifest file 604, 605

reference link 603

kubectl 426

installation link 674, 685

kubectl contexts

working with 431, 432

kubectl patch command 583

Kubernetes 10, 28, 645

deploying, for staging and production 521

deploying to 480, 482, 494, 495

EFK stack, deploying on 601

microservices, deploying for development activity 477, 478

microservices, deploying for production 491, 492

microservices, deploying for staging 491, 492

microservices, deploying for test activity 477, 478

native compiled images, testing 718, 719, 720, 721, 722, 723

test script,changes 483

Kubernetes API objects

about 423, 424, 425

ConfigMap 424

DaemonSet 424, 425

deployment 423

ingress 424

namespace 424

node 423

pod 423

ReplicaSet 424

secret 424

service 424

Kubernetes CLI (kubectl)

about 429

working with 430

Kubernetes cluster

creating 432, 434, 435

creating, with Minikube 429

hibernating 443

Istio, deploying in 537, 538, 539, 540

managing 443

resuming 443

terminating 444

Kubernetes concepts 422, 423

Kubernetes ConfigMaps

system landscape, testing 514, 515, 516, 517, 518, 519

Kubernetes Ingress controller

replacing, with Istio Ingress Gateway 536

Kubernetes objects

using 451

Kubernetes runtime components 426, 427, 428

Kubernetes Service objects 422

Kubernetes Services

Netflix Eureka, replacing with 448, 449, 450

Kustomize 453

L

landscape of microservices, managing with Docker Compose 109

microservice landscape, starting up 112, 113, 114

source code, changes 109, 111

Let's Encrypt

reference link 512

library chart 454

Linux control groups 50

Linux distributions for WSL 2

reference link 686

Linux namespaces 50

Linux server in WSL 2, tools installation 690

curl and install command, using 691

liveness and readiness probes

Spring Boot, testing 489, 490

Spring Boot, using 452

liveness probe 422

LoadBalancer 540

local authorization server

access tokens, acquiring 324

adding, to system landscape 313, 314, 315

automated tests, building 322

automated tests, running 322

protected APIs, calling with access tokens 329, 330, 331

protected discovery server, testing 322, 324

Swagger UI, testing with OAuth 2.0 331, 332, 333

testing with 322

lockdown 491

Logback 153

loose coupling 186

M

macOS

tracing agent, installing on 707, 708

manual tests

of new APIs 178, 179, 180

of persistence layer 178, 179, 180

performing 389

MapStruct

URL 145

master nodes 426

message processor

declaring 211, 212

metacircular Java VM 699

Micrometer library

reference link 636

microservice landscape 10, 56

building 132, 133

simplifying 535, 536

microservices 4, 5

building 601, 603, 637, 638

challenges 13, 14

connecting, to Netflix Eureka server 262, 263, 264, 265

defining 11, 12

deploying 601, 603, 637, 638

information handling 57

infrastructure-related information 58

Istio proxies, injecting into 531, 532, 533

learning 9, 10

monitoring, with Grafana dashboards 638

monolithic application, decomposing into 30

traffic, initially goes to v1 version verifying 579, 580

v1 and v2 versions, deploying to v1 version with routing 577, 578, 579

microservices, design patterns 14, 15

central configuration pattern 19

centralized log analysis pattern 20

centralized monitoring and alarms pattern 26

circuit breaker pattern 24

control loop pattern 25

distributed tracing pattern 22

edge server pattern 16

reactive microservice pattern 18

service discovery pattern 15

microservices, working without Kubernetes

verifying 522, 523

Microsoft Windows

tracing agent, installing on Ubuntu under WSL 2 709, 710

Minikube

download link 685

installation link 674

profiles, working with 429

reference link 675, 692

used, for creating Kubernetes cluster 429

minikube tunnel 635

Mockito 87

MongoDB

non-blocking persistence, using Spring Data for 190, 191

MongoDB tools 177

monitor service 26

Mono 189

monolithic application

decomposing, into microservices 30

Mono objects 47

multi-project builds

setting up, in Gradle 63, 64, 65

mutual authentication (mTLS)

used, for protecting internal communication 563, 564, 565

mutual TLS (mTLS) 535

MySQL CLI tools 177

N

named templates 458

namespaces 422

native hints

providing, as annotations 704, 705

native image

source code, compiling 702

Native Image Builder

reference link 703

Native Image Compatibility and Optimization Guide

reference link 700

native-image compiler 700

native images

creating 711, 712

Netflix Eureka

configuration parameters 266

configuration, setting up for development use 265

replacing, with Kubernetes Services 448, 449, 450

using, for service discovery 243, 244

Netflix Eureka server

microservices, connecting to 262, 263, 264, 265

setting up 262

Netflix OSS 9, 28

Netty

URL 40

NGINX

deployment 435, 436, 437, 438, 439, 440, 441, 442

non-blocking persistence

modifying, in test code 191, 192

using, Spring Data for MongoDB 190, 191

non-blocking REST APIs

in composite services 197

in core services 192

non-blocking REST APIs, in composite services

modifying, in API 198

modifying, in integration layer 199, 200

modifying, in service implementation 198

modifying, in test code 201

non-blocking REST APIs, in core services

dealing, with blocking code 194, 195, 196, 197

modifying, in APIs 192

modifying, in service implementations 193

modifying, in test code 194

non-blocking synchronous APIs

versus event-driven asynchronous services 186, 187

non-blocking synchronous REST APIs

developing 188

non-blocking persistence, using Spring Data for MongoDB 190, 191

non-blocking REST APIs, in composite services 197

non-blocking REST APIs, in core services 192

Project Reactor 188, 189, 190

O

OAuth 2.0 300, 301, 303, 304

authorization grant flows 302

client credentials grant flow 303

concepts 301

implicit grant flow 303

resource owner password credentials grant flow 303

used, for protecting APIs 315

used, for testing Swagger UI 331, 332, 333

OAuth 2.0/OIDC access tokens

used for authenticating external requests 560, 561, 562, 563

one microservice

Docker, using with 100

OpenAPI documentation 133, 134, 135, 137, 138, 140

OpenAPI Initiative 42

OpenAPI Specification 42

OpenID Connect (OIDC) 300, 304, 305

used, for protecting APIs 315

OpenID Connect specification (OIDC) 535

operations

adding, in composite service API 167, 168

outlier detection 566

OWASP Top Ten Project

reference link 307

P

Package template

reference link 458

parent charts 454

performance metrics

monitoring, with Grafana 634, 635

monitoring, with Prometheus 634, 635

persistence layer

calling, from service layer 161, 162, 163

manual tests 178, 179, 180

persistence layer, adding to core microservices 145

data, storing with entity classes 146, 147, 148

dependencies, adding 145, 146

repositories, defining in Spring Data 149, 150

persistence layer, using in service layer 159

database connection URL, logging 160

Java bean mapper, declaring 163, 164

new APIs, adding 160

service tests, updating 164, 166

persistence tests

writing 154, 155, 156, 157, 158, 159

Pods 422

poisoned message 205

post-installation actions 677

Docker 678, 679

Java 677

predicates

used, for routing requests 288, 289

prod-env Helm chart 575, 576

product composite API

calling, through edge server 292, 293

product-composite API

requests, routing to 285, 286

product composite service 58

product-composite service only

modifying 318

modifying, to allow Swagger UI access tokens 319, 320

product service 57

programmable delays and random errors, adding 377

API definitions, changes 377

product-composite microservice, changes 378

product microservice, changes 379, 380

Project Reactor 39

about 188, 189, 190

URL 188

Prometheus 530

used, for monitoring performance metrics 634, 635

protected APIs

calling, with access tokens 329, 330, 331

protected discovery server

testing 323, 324

proxy component 528

Q

quality assurance (QA) 491

quotas 422

R

RabbitMQ

using, without partitions 226, 227, 228, 229, 230

using, with partitions 230, 231, 232

random errors

adding 377

Reactive Manifesto

reference link 19

reactive microservice landscape

automated tests, running 235

events, saving 222, 223

health API, adding 223, 224, 225, 226

Kafka, using with two partitions per topic 232, 233, 234, 235

manual tests, running 222

RabbitMQ, using without partitions 226, 227, 228, 229, 230

RabbitMQ, using with partitions 230, 231, 232

reactive microservice pattern 18

problem 18

solution 18

solution requirements 18

readiness probe 422

recommendation service 57

Remote WSL

installation link 684, 690

Visual Studio Code and extension, installing 689, 690

repositories 44, 46, 47

requests

routing, to Eureka server's API and web page 287, 288

routing, to product-composite API 285, 286

routing, with filters 288, 289

routing, with predicates 288, 289

Resilience4j

circuit breaker, sample usage in 249, 250, 251

using, for improved resilience 248, 249

Resilience4j, configuration parameters

reference link 375

Resilience4j project, integrating

reference link 371

Resilience4j, resilience mechanisms 370, 371

adding, to source code 376

automated tests, adding 385, 386, 387, 388, 389

circuit breaker 372, 374

circuit breaker, adding 380

programmable delays, adding 377

random errors, adding 377

retry mechanism 375

retry mechanism, adding 384

time limiter 375

time limiter, adding 380

Resilience4j, setup

reference link 380

resources

cleaning up 496

REST controller 80

RESTful APIs

adding, to core microservices 65

REST service, code examples

property files 41

RestController 42

setting up 40

starter dependencies 40

retry annotation

adding 384

retry mechanism 375

configuration, adding 384

retries,trying out by random errors 394, 395, 396

using, configuration parameters 375

working, with 389

review service 57

RFC8555

reference link 512

Role-Based Access Control (RBAC) 423

route 285

route configuration

testing, based on host header 295, 296

routing rule

setting, in edge server 357

routing rules

setting up 285

trying out 292

S

sdk install

Spring Boot CLI, installing with 691

SDKman

reference link 691

Secrets

system landscape, testing 514, 515, 516, 517, 518

Secrets template 461, 462

using, example 462

self-signed certificate

replacing, in runtime 309, 310

semi-automated tests, of microservice landscape

adding 89, 90

test script, trying 90, 91

semver

reference link 31

sensitive information

decrypting 365, 366

encrypting 365, 366

service

scaling down 271, 272

scaling up 269, 270, 271

service discovery 256

challenges 259

Netflix Eureka, using for 243, 244

replacing, temporarily 58

with Netflix Eureka, in Spring Cloud 260, 261

service discovery pattern 15

problem 15

solution 16

solution requirements 16

service discovery pattern, implementing strategies

client-side routing 16

server-side routing 16

service layer

persistence layer, calling from 161, 162, 163

service mesh 10

commands, running to create 549, 550, 551

creating 545

ensuring, is resilient 566

external endpoints, protecting with HTTPS and certificates 557, 558, 559, 560

external request, authenticating with OAuth 2.0/OIDC access tokens 562

external requests authenticating with OAuth 2.0/OIDC access tokens 560, 561, 563

internal communication, protecting with mutual authentication (mTLS) 563, 564, 565

observing 551, 552, 553, 554, 555, 556, 557

resilience, testing by injecting delays 568, 569, 570, 571

resilience, testing by injecting faults 567, 568

securing 557

source code, modifying 545

service meshes

with Istio 528, 529

service mesh, source code

content, in _istio_base.yaml template 545, 546, 547

content, in _istio_dr_mutual_tls.yaml templat 548, 549

Service template 463, 464, 466

using, example 466

Siege 485

installation link 674, 685

skeleton microservices

generating 59

soft link 475

software enablers 28, 29

source code

accessing 680, 681, 693, 694

annotations, adding in 381

compiling, to native image 702

IDE, using 681

Resilience4j resilience mechanisms, adding to 376

structure 681, 682, 695

source code, changes

applying 702

Gradle build files, updates 703, 704

Gradle build files, updating 702

native hints, providing as annotations 704, 705

tracing agent 706, 707

span 400

spans 251

Spotlight 678

Spring AOT 700

Spring Authorization Server

reference link 313

Spring Boot 28, 34

convention over configuration 35

fat JAR file 35

testing, for graceful shutdown 485, 486, 487, 488, 489

testing, for liveness and readiness probes 489, 490

using, for graceful shutdown 451, 452

using, for liveness and readiness probes 452

Spring Boot Actuator 59

Spring Boot application, code examples

component scanning 37, 38

Java-based configuration 38

setting up 36

@SpringBootApplication annotation 36

Spring Boot CLI

installation link 674, 685

Spring Boot module Actuator 223

Spring Boot Reference Documentation

reference link 452

Spring Boot, usage of buildpacks

reference link 701

Spring Cloud 9, 28

evolution 242, 243

service discovery, with Netflix Eureka 260, 261

Spring Cloud AWS

reference link 353

Spring Cloud Bus 246

Spring Cloud Config

using, for centralized configuration 246, 247

Spring Cloud Config Server

replacing 501

replacing, with required changes 502, 503, 505, 506, 507

Spring Cloud Configuration server (config server) 352

automated tests, building 362

automated tests, running 363

clients, configuring 359

configuring, for using with Docker 358

connection information, configuring 360, 361

edge server, routing rule setting in 357

initial client connection, deciding 354

routing rule, setting up in edge server 357

sensitive information, decrypting 365, 366

sensitive information, encrypting 365, 366

setting up 356

setting up, options 353

storage type, selecting of repository 353

working with 362

Spring Cloud Configuration server (config server) API

endpoints 355

used for obtaining configuration 363, 364

Spring Cloud Configuration Server project, backend list

reference link 353

Spring Cloud Gateway

configuring 284

replacing 507

replacing, with required changes 508, 510, 511, 512

setting up 281, 282

using, as edge server 245, 246

versus Netflix Zuul v1 245

Spring Cloud Sleuth

configuration, adding 402, 403

using, for distributed tracing 251, 253, 254

using, in distributed tracing 400, 401

Spring Cloud Stream 47, 48

code examples, for sending and receiving messages 48, 49, 50

core concepts 48

Spring Data 43

entity 44, 45

non-blocking persistence, using for MongoDB 190, 191

repositories 46, 47

springdoc-openapi 42, 43

adding, to source code 125

API-specific documentation, adding to ProductCompositeService interface 128, 130, 131

dependencies, adding to Gradle build files 125

general API documentation, adding to ProductCompositeService 126, 127, 128

OpenAPI configuration, adding to ProductCompositeService 126, 127, 128

using 122, 123, 124

SpringFox

reference link 123

Spring Initializr

used, for generating skeleton code 59, 60, 61, 62, 63

Spring Native project 700, 701

reference link 700

Spring WebFlux 39, 59

programming models 39

staging and production

Kubernetes, deploying 521

microservices, deploying to Kuberneres 491, 492

source code, changes 493

standard deployment descriptors 35

subcharts 454

Subject Alternative Names 559

Substrate VM 700

Supplier 48

Swagger UI

calling, through edge server 293, 294

testing, with OAuth 2.0 331, 332, 333

symbolic link 475

system landscape

edge server, adding to 280, 281

local authorization server, adding to 313, 314, 315

securing 305, 306, 307

T

Testcontainers

URL 151

using 151, 152, 153, 154

test script

changes, used with Kubernetes 483

TimeLimiter 375

tools installation 674, 675, 684

Homebrew 675

Homebrew, using 676

on Linux server 685

on Linux server, in WSL 2 690

on Windows 684, 686

post-installation actions 677, 678, 679

verification 679, 680

without Homebrew 676, 677

tools installation on Linux server in WSL 2

apt install, using 690, 691

curl and install command, using 691

Spring Boot CLI, installing with sdk install 691

verification 692, 693

tools installation, on Windows

Docker Desktop 688, 689

Ubuntu 20.04, installing on WSL 2 686

Visual Studio Code and extension for Remote WSL 689

Windows Terminal 687, 688

WSL 2, installing 686

topic

defining 208, 209

trace 400

TraceId 251

trace tree 251, 400

tracing 530

tracing agent 700

running 710

tracing agent, installing 707

on macOS 707, 708

on Ubuntu under WSL 2 in Microsoft Windows 709, 710

U

Ubuntu 20.04

installing, on Windows Subsystem for Linux v2 (WSL 2) 686, 687

reference link 686

Ubuntu 20.04, in WSL 2

installation link 684

user acceptance tests (UATs) 491

user-info endpoint 305

util project 68

adding 65

V

vendor-specific deployment descriptors 35

vertical scaling 9

Visual Studio Code

download link 689

installation link 684, 689

reference link 690

Visual Studio Code and extension

installing, for Remote WSL 689, 690

W

web page, Eureka server

requests, routing to 287, 288

Windows Subsystem for Linux 2 (WSL2) 429

Windows Subsystem for Linux v2 (WSL 2)

installation link 684

installing 686

Linux server, tools installation 690

Ubuntu 20.04, installing on 686, 687

Windows Subsystem for Linux v2 (WSL2)

reference link 51

Windows Terminal

installation link 684, 687

installing 687, 688

reference link 687

worker nodes 426

Y

YAML file construction

reference link 131

Z

zero-downtime updates

blue/green deployment, running 582

canary tests, running 580, 581, 582

performing 571

source code, modifying 572

strategies 571

traffic, verifying initially goes to v1 version of microservices 579, 580

v1 and v2 versions, deploying of microservices with routing to v1 version 577, 578, 579

zero-downtime updates, source code

deployments 574, 575

destination rules 572, 574

prod-env Helm chart 575, 576

services 574, 575

virtual services 572, 574

Zipkin

adding, to Docker Compose files 403, 404, 405

configuration, adding 402, 403

reference link 251

using, for distributed tracing 251, 253, 254

using, in distributed tracing 401

Zipkin server

replacing, with Istio's Jaeger component 536

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.116.40.177