Index

As this ebook edition doesn't have fixed pagination, the page numbers below are hyperlinked for reference only, based on the printed edition of this book.

Symbols

.NET

advanced logging options 261

.NET Core

using, as development stack for microservices 12, 13

.NET logging API

using 234-239

A

aggregate ID 73

aggregate pattern

purpose 19

usage 19

aggregate roots 19, 20

aggregates 19, 20

relationships 20

relationships, handling that span 21

versus entities 21

aggregator pattern 15, 249

Amazon Web Services (AWS) 128

anemic domain model

versus rich domain model 23-26

Apache Kafka 47

API gateway pattern 152, 153

advantages 153-155

cache management, adding 164

client (fronted) 152

database 152

disadvantages 155

implementing 155

implementing, with Azure API Management 156

rate limiting, adding 165-167

response aggregation, adding 167-169

server (backend) 152

thick API gateway 156

API Gateways 257

append-only data store 74

ASP.NET Core API

Azure Service Bus, implementing 51-55

ASP.NET Core, for microservices

benefits 12

ASP.NET Core health checks

implementing 141

liveness health checks, adding 141-146

readiness health checks, adding 147

ASP.NET Core web API

RabbitMQ, implementing 48-50

asynchronous communication 31, 42, 250

functioning with 41-43

asynchronous communication, between microservices

disadvantages 55, 56

atomicity, consistency, isolation, and durability (ACID) 19, 73

authentication 178

authorization 178

availability 46

Azure API Management

API gateway pattern, implementing with 156-160

Azure Application Insights 262

Azure Container Instances (ACI) 148

Azure Container Registry (ACR) 212

Azure Cosmos DB 10, 253

Azure Kubernetes Service (AKS) 148

Azure Service Bus 10, 47

implementing, in ASP.NET Core API 51-55

B

backend for frontend (BFF) pattern 170, 171, 257

implementing, with Ocelot 171-174

bearer tokens 179-181

data points, compiling 179

generating 186-190

issuing 186-190

security, implementing 182

used, for securing API 182-185

used, for securing communications 178, 179

bearer token security 257-259

bounded context 16

Bus Factory 50

business approach, for microservices

availability 9

deployment 11

development speed 10

improved data storage 10

monitoring 10

scalability 9

C

C# 33

caching layer

used, for implementing resiliency 128

CAP theorem 46

cardinalities 95

cardinalities, relational database

many-to-many 95

one-to-many 95

one-to-one 95

centralized logging 261, 262

choreography model 116, 117

cons 118

pros 118

Circuit Breaker Pattern 93, 127, 131

circuit breaker policies

implementing 131, 132

circuit breaker policy

with Polly 133, 134

Code-First technique 103

command

implementing 62

invoking 64-66

Command and Query Responsibility Separation (CQRS) patterns 250, 251

benefits 59, 60

disadvantages 60

need for, microservices development 58

state, reading with 85

command handler

creating 63, 64

command-line interface (CLI) 212

command messages 45

command model

creating 62, 63

Command Query Separation (CQS) 250

concurrency management 46

consistency 46

constraint 95

container images 212, 213

containerization 211

containerized application

launching 218, 219

container registry

containers, publishing to 227

custom images, creating 228-230

custom images, uploading 228-230

containers 259, 260

cons 213, 214

pros 213, 214

publishing, to container registry 227

usage 210-212

using, in microservices development 210

cookies 178

Cosmos DB 59

CQRS, in .NET

Mediator pattern, using with 60-62

Create, Read, Update, and Delete (CRUD) 21, 251

D

Dapper 100

database

developing 93

non-relational databases 97

ORM, selecting 100

relational databases 94

technology, selecting 98-100

database design patterns 12

database development technique

Code-First 103

Schema-First 103

selecting 103-105

Database-First technique 103

database-per-service 91

database-per-service approach 10

database-per-service pattern 73, 252

disadvantages 92, 93

non-relational databases 253

one database per service 253, 254

relational databases 252

single database technology per service 90, 91

single database, using for several services 253

technologies, using 91, 92

using 90

DataDog 262

data transfer object (DTO) 65, 186

dead-letter queue 127

denial-of-service (DoS) 131

distributed denial-of-service (DDoS) 154

distributed tracing 244, 245

enhanced logging 245-247

Docker 11, 212

docker-compose 221

adding, to project 222-227

Dockerfile

authoring 214-217

containerized application, launching 218-220

native .NET container support, using 220, 221

Docker Swarm 11

document database 83, 98

document stores

examples 83

domain-driven design (DDD) 15, 18, 19, 67

exploring 16, 17

keywords, exploring 16

pros and cons, exploring 18

significance 16, 17

domain events 75

actions 75

and event sourcing 75

exploring, in application 75-80

downstream 161

E

Elastic Container Registry (ECR) 227

Elastisearch, Logstash, and Kibana (ELK) 262

Elmah.io 240

enhanced logging

for distributed tracing 245-247

entities 21

need for 21

practical uses, in code 22

versus aggregates 21

versus value objects 26

Entity Framework Core 100

event messages 45

events 72

audit logs 73

entity state identification 73

historical 72

immutability 72

key attributes 72

persistent events 73

single occurrence 72

storing 81, 82

event sourcing 73

cons 74

implementing, with non-relational database 83-85

implementing, with relational database 82, 83

pros 73, 74

event sourcing patterns 73, 251, 252

event store

creating 81

eventual consistency 10, 46, 47, 93

exchanges 48

F

first-in-first-out (FIFO) 43

foreign key 95

full-stack developer role 93

G

gateway pattern 9

Google Container Registry (GCR) 227

Google Remote Procedure Call (gRPC) 4

Grafana 11

graph database 98

graphical UI (GUI) 219

gRPC communication

versus HTTP communication 37, 38

gRPC synchronous communication

implementing 35-37

GUID 22

H

health check 138, 139

degraded state 139

healthy state 139

liveness health check 140

need for 256, 257

readiness health checks 140, 141

unhealthy state 139

health probes

configuring, in orchestrators 148, 150

HTTP asynchronous communication 43

HttpClient 33

HTTP communication

versus gRPC communication 37, 38

HTTP Status Code

categories 33

HTTP synchronous communication

implementing 32-35

I

IBM DB2 94

IdentityServer 191

API security considerations 207

configuring 192-202

used, for securing API 202-205

used, for securing Ocelot API gateway 206, 207

IdentityServer4

using, to secure microservices 191, 192

image 211, 221

indexes 94

infrastructure patterns 12

integration patterns 12

inversion of control (IoC) 130

J

Jaeger 262

JavaScript Object Notation (JSON) 98

JSON Web Token (JWT) 163, 179

jwt.io 181

K

Kafka 10

key-value database 98

Kibana 11

kubernetes 11

L

LINQ 100

liveness health check 140

adding 141-146

log aggregation 241, 242

integrating, with Seq 242-244

platform, selecting 242

usage 241, 242

logging 232

log, selecting 232, 234

need for 232

Serilog, adding 240, 241

Loggr 240

LogLevel methods

parameters 236

LogStash 11

M

manifest 148

many-to-many relationship 95, 96

Marathon 11

Mediator pattern

using, with CQRS in .NET 60-62

MediatR 75

MediatR pattern 251

message broker

used, for implementing resiliency 127

message bus

configuring 47

message bus systems 44-46

message queues 43, 44

microservice communication

challenges 30, 31

microservice design patterns 18, 19

microservices 3, 4, 138, 139, 259, 260

building 7, 8

business need, assessing 8

design pattern, exploring 12

elements 3, 4

feasibility, determining of implementing 12

.NET Core, using as development stack 12, 13

securing, with IdentityServer4 191, 192

synchronous communication, disadvantages between 38

microservices development

containers, using 210

CQRS pattern 58

Microsoft SQL Server 10

models 103

MongoDB 59, 253

monolith

architecture, challenges 5

building 4-6

MySQL / MariaDB 94

N

native .NET container support

using 220, 221

Neo4j 253

NHibernate 100

NLog 240

non-relational database 97, 253

event sourcing, implementing with 83-85

using, scenarios 100

normalization 94, 97

NoSQL databases 83, 97

advantages 98

disadvantage 98

NoSQL databases, types

document database 98

graph database 98

key-value database 98

O

OAuth, Azure Active Directory 207

object-relational mapping (ORM) 59

selecting 100-103

Ocelot 257

API gateway pattern, implementing with 160-164

BFF pattern, implementing with 171-174

DownstreamHostAndPort 163

DownstreamPathTemplate 163

DownstreamScheme 163

GlobalConfiguration 163

routes 162

UpstreamHttpMethod 163

UpstreamPathTemplate 163

Ocelot API gateway

securing, with IdentityServer 206, 207

Okta 207

one-to-many relationship 95

one-to- one relationship 95

Open Container Initiative (OCI) 212

OpenID Connect 191

OpenTelemetry 262

operating system (OS) 211

Oracle Database 94

orchestra 119

orchestration 119

orchestration pattern 156

orchestration saga implementation 119, 120

cons 121

pros 121

rolling back, on failure 120

orchestrator 119

health probes, configuring 148-150

overambitious gateway 156

P

PaperTrail 11

partition tolerance 46

poisoned messages 127

Polly 132

circuit breaker policy with 133, 134

retry policy with 132, 133

PostgreSQL 94

Postman 190

primary key 94

proto class 35, 36

public container registries

versus private container registries 227, 228

Pub-Sub communication 43

eventual consistency 46, 47

message bus systems 44-46

message queues 43, 44

Q

query

implementing 66

invoking 68

query handler

creating 67, 68

query model

creating 66

queues 48

R

RabbitMQ 10, 47

implementing, in ASP.NET Core web API 48-50

readiness health checks 140, 141

adding 147

read-only data store 74

Redis 253

Redis Cache 47

used, for implementing resiliency 128, 129

referential integrity 95

relational databases 94-96, 252

event sourcing, implementing with 82, 83

IBM DB2 94

MySQL / MariaDB 94

Oracle Database 94

PostgreSQL 94

SQLite 94

SQL Server 94

using, scenarios 99

relationship 95

Remote Procedure Call (RPC) 35

replaying 73

repository pattern

implementing 105-111

Representational State Transfer (REST)

using, benefits 37

Representational State Transfer (REST) API 32

methods 32

resiliency

implementing, with caching layer 128

implementing, with message broker 127

implementing, with Redis Cache 128-131

resiliency patterns 12

resilient microservices 255, 256

REST communication

merits 37

retry policies 127

implementing 131, 132

with Polly 132, 133

rich domain model

versus anemic domain model 23-26

Role-based access control (RBAC) 227

S

saga pattern

compensable transactions 114

considerations 115

exploring 114

issues 115

pivotal transactions 114

retryable transactions 114

rolling back, on failure 117, 118

using, across services 254, 255

Saga pattern 93, 156

schema-per-service 90

security patterns 12

separation of concerns (SoC) 60

Seq 262

used, for integrating log aggregation 242-244

Serilog

adding 240, 241

service-level agreements (SLAs) 60

service resiliency

failure scenarios, handling 126, 127

need for 126

session variables 178

SignalR hub 77

single-sign-on (SSO) 191

Software-as-a-Service (SaaS) 160

Splunk 11

SQLite 94

SQL Server 94

SQL Server Management Studio (SSMS) 229

storage design patterns 12

Swagger UI 190

synchronous communication 31, 42, 250

disadvantages, between microservices 38

implementing 32

use cases 30

T

tables-per-service pattern 90

thick API gateway 156

ti claim 181

timestamp 73

U

ubiquitous language 16

UNIQUE index 83

upstream 161

user interface (UI) 212

V

value objects 26-28

using 26-28

versus entities 26

virtual machines (VMs) 210

Visual Studio Code 12

W

Web App for Containers (WAC) 148

web applications

securing, challenges 178

Y

YAML Ain’t Markup Language (YAML) 148

Yet Another Markup Language (YAML) 214, 260

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

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