Preface |
|
ix | |
|
1 Introduction to Cloud Native |
|
|
1 | (26) |
|
|
1 | (12) |
|
Designed as a Collection of Microservices |
|
|
2 | (4) |
|
Use Containerization and Container Orchestration |
|
|
6 | (4) |
|
Automate the Development Life Cycle |
|
|
10 | (2) |
|
|
12 | (1) |
|
Methodology for Building Cloud Native Apps |
|
|
13 | (6) |
|
Designing the Application |
|
|
13 | (1) |
|
Developing the Application |
|
|
14 | (2) |
|
Connectivity, Compositions, and APIs |
|
|
16 | (2) |
|
Automating the Development, Release, and Deployment |
|
|
18 | (1) |
|
Running in a Dynamic Environment |
|
|
18 | (1) |
|
Control Plane for Dynamic Management |
|
|
19 | (1) |
|
Observability and Monitoring |
|
|
19 | (1) |
|
Design Patterns for Building Cloud Native Apps |
|
|
19 | (4) |
|
|
20 | (1) |
|
Connectivity and Composition Patterns |
|
|
21 | (1) |
|
|
22 | (1) |
|
Event-Driven Architecture Patterns |
|
|
22 | (1) |
|
Stream-Processing Patterns |
|
|
22 | (1) |
|
API Management and Consumption Patterns |
|
|
23 | (1) |
|
Reference Architecture for Cloud Native Apps |
|
|
23 | (2) |
|
|
25 | (2) |
|
|
27 | (30) |
|
Synchronous Messaging Patterns |
|
|
28 | (6) |
|
|
28 | (2) |
|
Remote Procedure Calls Pattern |
|
|
30 | (3) |
|
Summary of Synchronous Messaging Patterns |
|
|
33 | (1) |
|
Asynchronous Messaging Patterns |
|
|
34 | (7) |
|
|
34 | (2) |
|
Multiple-Receiver Pattern |
|
|
36 | (2) |
|
Asynchronous Request-Reply Pattern |
|
|
38 | (2) |
|
Summary of Asynchronous Messaging Patterns |
|
|
40 | (1) |
|
Service Definition Patterns |
|
|
41 | (5) |
|
Service Definitions in Synchronous Communication |
|
|
41 | (2) |
|
Service Definition in Asynchronous Communication |
|
|
43 | (3) |
|
Technologies to Implement Synchronous Messaging Patterns |
|
|
46 | (5) |
|
|
46 | (2) |
|
|
48 | (1) |
|
|
49 | (1) |
|
|
50 | (1) |
|
Summary of Synchronous Messaging Technologies |
|
|
51 | (1) |
|
Technologies to Implement Asynchronous Messaging Patterns |
|
|
51 | (2) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
Observability and Monitoring |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
55 | (2) |
|
3 Connectivity and Composition Patterns |
|
|
57 | (42) |
|
|
57 | (29) |
|
Service Connectivity Pattern |
|
|
58 | (3) |
|
Service Abstraction Pattern |
|
|
61 | (3) |
|
Service Registry and Discovery Pattern |
|
|
64 | (4) |
|
Resilient Connectivity Pattern |
|
|
68 | (5) |
|
|
73 | (4) |
|
|
77 | (4) |
|
Sidecarless Service Mesh Pattern |
|
|
81 | (3) |
|
Technologies for Implementing Service Connectivity Patterns |
|
|
84 | (1) |
|
Summary of Connectivity Patterns |
|
|
85 | (1) |
|
Service Composition Patterns |
|
|
86 | (11) |
|
Service Orchestration Pattern |
|
|
86 | (3) |
|
Service Choreography Pattern |
|
|
89 | (3) |
|
|
92 | (4) |
|
Technologies for Implementing Service Composition Patterns |
|
|
96 | (1) |
|
Summary of Service Composition Patterns |
|
|
97 | (1) |
|
|
97 | (2) |
|
4 Data Management Patterns |
|
|
99 | (62) |
|
|
99 | (2) |
|
|
101 | (1) |
|
|
102 | (5) |
|
|
102 | (1) |
|
|
103 | (3) |
|
|
106 | (1) |
|
|
106 | (1) |
|
|
107 | (2) |
|
Centralized Data Management |
|
|
107 | (1) |
|
Decentralized Data Management |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
109 | (6) |
|
Data Composition Patterns |
|
|
110 | (1) |
|
|
111 | (3) |
|
Composite Data Services Pattern |
|
|
114 | (1) |
|
Client-Side Mashup Pattern |
|
|
115 | (9) |
|
Summary of Data Composition Patterns |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
118 | (6) |
|
Command and Query Responsibility Segregation Pattern |
|
|
124 | (18) |
|
Summary of Data Scaling Patterns |
|
|
126 | (1) |
|
Performance Optimization Patterns |
|
|
127 | (1) |
|
Materialized View Pattern |
|
|
128 | (2) |
|
|
130 | (3) |
|
|
133 | (6) |
|
Static Content Hosting Pattern |
|
|
139 | (2) |
|
Summary of Performance Optimization Patterns |
|
|
141 | (1) |
|
|
142 | (4) |
|
|
143 | (3) |
|
Summary of Transaction Reliability Pattern |
|
|
146 | (1) |
|
Security: Vault Key Pattern |
|
|
146 | (2) |
|
|
146 | (2) |
|
Summary of the Vault Key Pattern |
|
|
148 | (1) |
|
Technologies for Implementing Data Management Patterns |
|
|
148 | (6) |
|
Relational Database Management Systems |
|
|
148 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
152 | (1) |
|
|
152 | (1) |
|
|
153 | (1) |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
155 | (1) |
|
Observability and Monitoring |
|
|
156 | (1) |
|
|
157 | (2) |
|
|
159 | (2) |
|
5 Event-Driven Architecture Patterns |
|
|
161 | (42) |
|
Event-Driven Architecture |
|
|
162 | (2) |
|
|
163 | (1) |
|
Message Broker Categories |
|
|
163 | (1) |
|
|
164 | (1) |
|
|
164 | (1) |
|
|
164 | (17) |
|
Producer-Consumer Pattern |
|
|
165 | (3) |
|
Publisher-Subscriber Pattern |
|
|
168 | (3) |
|
|
171 | (2) |
|
Store and Forward Pattern |
|
|
173 | (1) |
|
|
174 | (2) |
|
|
176 | (3) |
|
Summary of Event-Delivery Patterns |
|
|
179 | (2) |
|
State Management Patterns |
|
|
181 | (4) |
|
|
181 | (4) |
|
Summary of State Management Pattern |
|
|
185 | (1) |
|
|
185 | (8) |
|
|
185 | (3) |
|
|
188 | (2) |
|
|
190 | (2) |
|
Summary of Orchestration Patterns |
|
|
192 | (1) |
|
Technologies for Event-Driven Architecture |
|
|
193 | (4) |
|
|
193 | (1) |
|
|
194 | (1) |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
195 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
Summary of Message Broker Technologies |
|
|
196 | (1) |
|
|
197 | (2) |
|
|
199 | (1) |
|
Observability and Monitoring |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
201 | (2) |
|
6 Stream-Processing Patterns |
|
|
203 | (56) |
|
|
203 | (1) |
|
What Is Stream Processing? |
|
|
203 | (1) |
|
Streaming Data Processing Patterns |
|
|
204 | (21) |
|
|
204 | (3) |
|
Filters and Thresholds Pattern |
|
|
207 | (2) |
|
Windowed Aggregation Pattern |
|
|
209 | (5) |
|
|
214 | (4) |
|
Temporal Event Ordering Pattern |
|
|
218 | (3) |
|
|
221 | (3) |
|
Summary of Streaming Data Processing Patterns |
|
|
224 | (1) |
|
Scaling and Performance Optimization Patterns |
|
|
225 | (15) |
|
Sequential Convoy Pattern |
|
|
225 | (5) |
|
Buffered Event Ordering Pattern |
|
|
230 | (3) |
|
Course Correction Pattern |
|
|
233 | (2) |
|
|
235 | (4) |
|
Summary of Scaling and Performance Optimization Patterns |
|
|
239 | (1) |
|
|
240 | (11) |
|
|
240 | (3) |
|
Periodic Snapshot State Persistence Pattern |
|
|
243 | (5) |
|
Two-Node Failover Pattern |
|
|
248 | (2) |
|
Summary of Reliability Patterns |
|
|
250 | (1) |
|
|
251 | (4) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
252 | (1) |
|
|
252 | (1) |
|
|
253 | (1) |
|
|
253 | (1) |
|
|
253 | (1) |
|
|
254 | (1) |
|
Summary of Stream-Processing Technologies |
|
|
254 | (1) |
|
|
255 | (1) |
|
|
256 | (1) |
|
Observability and Monitoring |
|
|
256 | (1) |
|
|
257 | (1) |
|
|
258 | (1) |
|
7 API Management and Consumption Patterns |
|
|
259 | (18) |
|
|
259 | (11) |
|
|
260 | (5) |
|
|
265 | (3) |
|
Service Mesh Sidecar as an API Gateway Pattern |
|
|
268 | (1) |
|
Technologies for Implementing API Management Patterns |
|
|
269 | (1) |
|
Summary of API Management Patterns |
|
|
270 | (1) |
|
|
270 | (6) |
|
Direct Frontend-to-Microservices Communication Pattern |
|
|
270 | (2) |
|
Frontends Consuming Services Through API Gateway Pattern |
|
|
272 | (1) |
|
Backend for Frontends Pattern |
|
|
273 | (2) |
|
Summary of API Consumption Patterns |
|
|
275 | (1) |
|
|
276 | (1) |
|
8 Cloud Native Patterns in Practice |
|
|
277 | (12) |
|
Building an Online Retail System |
|
|
277 | (2) |
|
|
277 | (1) |
|
|
278 | (1) |
|
Order Tracking and Prediction |
|
|
278 | (1) |
|
|
278 | (1) |
|
Customer and Partner Management |
|
|
279 | (1) |
|
Building the High-Level Architecture |
|
|
279 | (1) |
|
|
280 | (2) |
|
|
282 | (1) |
|
Performing Data Management |
|
|
283 | (1) |
|
Using Event-Driven Architecture |
|
|
284 | (2) |
|
|
286 | (1) |
|
Implementing Dynamic Management in a Cloud Environment |
|
|
287 | (1) |
|
|
288 | (1) |
Index |
|
289 | |