Introduction |
|
xv | |
Part I Fundamentals |
|
|
Chapter 1 Hello, Service Fabric! |
|
|
3 | (26) |
|
|
3 | (4) |
|
|
3 | (2) |
|
|
5 | (1) |
|
Separation of workload and infrastructure |
|
|
6 | (1) |
|
|
7 | (4) |
|
|
7 | (2) |
|
|
9 | (1) |
|
Applications and services |
|
|
10 | (1) |
|
|
10 | (1) |
|
|
10 | (1) |
|
|
10 | (1) |
|
|
11 | (6) |
|
Setting up a development environment |
|
|
12 | (1) |
|
Provisioning a Service Fabric cluster on Azure |
|
|
12 | (5) |
|
|
17 | (5) |
|
Managing your local cluster |
|
|
22 | (6) |
|
Visual Studio Server Explorer |
|
|
22 | (1) |
|
Visual Studio Cloud Explorer |
|
|
23 | (1) |
|
|
24 | (3) |
|
|
27 | (1) |
|
|
28 | (1) |
|
Chapter 2 Stateless services |
|
|
29 | (24) |
|
Implement ASP.NET 5 applications |
|
|
29 | (3) |
|
Scalability and availability of a stateless service |
|
|
32 | (1) |
|
|
32 | (1) |
|
|
32 | (1) |
|
Implement communication stacks |
|
|
33 | (18) |
|
Default communication stack |
|
|
33 | (8) |
|
|
41 | (2) |
|
Custom communication stack |
|
|
43 | (8) |
|
|
51 | (2) |
|
Chapter 3 Stateful services |
|
|
53 | (16) |
|
Service Fabric state management |
|
|
53 | (1) |
|
Architecture of stateful services |
|
|
53 | (3) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
55 | (1) |
|
|
55 | (1) |
|
The Simple Store application |
|
|
56 | (9) |
|
The shopping cart service |
|
|
56 | (3) |
|
|
59 | (2) |
|
|
61 | (1) |
|
|
61 | (3) |
|
|
64 | (1) |
|
|
65 | (3) |
|
|
65 | (2) |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (26) |
|
Service Fabric Reliable Actors |
|
|
70 | (2) |
|
|
70 | (1) |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
71 | (1) |
|
|
71 | (1) |
|
An actor-based tic-tac-toe game |
|
|
72 | (7) |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
74 | (2) |
|
Implement the Player actor |
|
|
76 | (1) |
|
Implement the test client |
|
|
76 | (2) |
|
|
78 | (1) |
|
|
78 | (1) |
|
Timers, reminders, and events |
|
|
79 | (3) |
|
|
79 | (1) |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
82 | (12) |
|
Actor diagnostics and performance monitoring |
|
|
82 | (7) |
|
Actors and Reliable Services |
|
|
89 | (2) |
|
|
91 | (3) |
|
|
94 | (1) |
|
Chapter 5 Service deployments and upgrades |
|
|
95 | (22) |
|
Service Fabric application deployment process |
|
|
95 | (5) |
|
|
95 | (4) |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
100 | (1) |
|
|
100 | (4) |
|
|
101 | (1) |
|
|
102 | (1) |
|
|
102 | (1) |
|
Health reporting and aggregation |
|
|
103 | (1) |
|
|
104 | (6) |
|
Fault domains and update domains |
|
|
104 | (1) |
|
|
105 | (2) |
|
Upgrade modes and upgrade parameters |
|
|
107 | (3) |
|
|
110 | (1) |
|
Application parameters and parameter files |
|
|
110 | (1) |
|
Application publish profiles |
|
|
110 | (1) |
|
|
111 | (6) |
|
|
111 | (1) |
|
|
112 | (2) |
|
Hosting a Node.js application |
|
|
114 | (3) |
|
Chapter 6 Availability and reliability |
|
|
117 | (28) |
|
Service availability and reliability |
|
|
117 | (2) |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
Service Fabric services availability |
|
|
119 | (12) |
|
|
119 | (8) |
|
|
127 | (1) |
|
Routing and load balancing |
|
|
128 | (1) |
|
Advanced rolling upgrades |
|
|
128 | (3) |
|
Service Fabric services reliability |
|
|
131 | (14) |
|
Event Tracing for Windows |
|
|
132 | (1) |
|
|
133 | (4) |
|
|
137 | (5) |
|
Service state backup and restore |
|
|
142 | (3) |
|
Chapter 7 Scalability and performance |
|
|
145 | (22) |
|
|
145 | (3) |
|
Vertical scaling vs. horizontal scaling |
|
|
145 | (1) |
|
Scaling stateless services vs. scaling stateful services |
|
|
146 | (1) |
|
Homogeneous instances vs. heterogeneous instances |
|
|
146 | (1) |
|
Single-tenancy vs. multitenancy |
|
|
147 | (1) |
|
Manual scaling vs. autoscaling |
|
|
148 | (1) |
|
Scaling a Service Fabric cluster |
|
|
148 | (6) |
|
Manually scaling a Service Fabric cluster |
|
|
149 | (1) |
|
Autoscaling a Service Fabric cluster |
|
|
149 | (4) |
|
Scaling with Content Delivery Network |
|
|
153 | (1) |
|
|
154 | (13) |
|
|
155 | (4) |
|
Communication bottlenecks |
|
|
159 | (1) |
|
Orchestration bottlenecks |
|
|
160 | (7) |
Part II Service Lifecycle Management |
|
|
Chapter 8 Managing Service Fabric with Windows PowerShell |
|
|
167 | (22) |
|
Creating a secured Service Fabric cluster |
|
|
167 | (5) |
|
Protecting your cluster by using a certificate |
|
|
167 | (4) |
|
Client authentication using a certificate |
|
|
171 | (1) |
|
Publishing applications from Visual Studio |
|
|
172 | (1) |
|
Cluster management commands |
|
|
172 | (12) |
|
|
172 | (9) |
|
|
181 | (2) |
|
Additional cluster management commands |
|
|
183 | (1) |
|
Application management commands |
|
|
184 | (3) |
|
|
184 | (1) |
|
|
185 | (1) |
|
Rolling back an application |
|
|
186 | (1) |
|
Decommissioning an application |
|
|
187 | (1) |
|
|
187 | (2) |
|
Chapter 9 Managing Service Fabric with management portal |
|
|
189 | (14) |
|
Anatomy of a Service Fabric cluster |
|
|
189 | (8) |
|
|
190 | (1) |
|
Virtual machines and NICs |
|
|
191 | (2) |
|
|
193 | (1) |
|
|
193 | (3) |
|
|
196 | (1) |
|
Advanced Service Fabric cluster configuration |
|
|
197 | (5) |
|
Role-Based Access Control |
|
|
197 | (2) |
|
|
199 | (3) |
|
|
202 | (1) |
|
Chapter 10 Diagnostics and monitoring |
|
|
203 | (24) |
|
|
203 | (16) |
|
Configuring Service Fabric Diagnostics |
|
|
203 | (5) |
|
Using Elasticsearch and Kibana |
|
|
208 | (8) |
|
Azure Operations Management Suite |
|
|
216 | (3) |
|
|
219 | (6) |
|
|
220 | (1) |
|
Visual Studio Application Insights |
|
|
221 | (4) |
|
|
225 | (2) |
|
|
227 | (26) |
|
|
227 | (3) |
|
|
228 | (1) |
|
|
228 | (1) |
|
|
229 | (1) |
|
|
230 | (1) |
|
|
230 | (2) |
|
Setting up continuous integration |
|
|
232 | (14) |
|
Preparing the Visual Studio Team Services project |
|
|
232 | (5) |
|
Preparing the build machine |
|
|
237 | (2) |
|
Creating a build definition |
|
|
239 | (3) |
|
Running tests upon code check-ins |
|
|
242 | (2) |
|
Running load tests with VSTS |
|
|
244 | (2) |
|
|
246 | (4) |
|
|
247 | (1) |
|
Invoking testability actions using PowerShell |
|
|
248 | (2) |
|
|
250 | (3) |
Part III Patterns And Scenarios |
|
|
Chapter 12 Web applications |
|
|
253 | (22) |
|
|
253 | (7) |
|
|
253 | (3) |
|
|
256 | (1) |
|
|
257 | (1) |
|
|
258 | (1) |
|
Azure Services for your web applications |
|
|
259 | (1) |
|
|
260 | (14) |
|
|
260 | (4) |
|
|
264 | (4) |
|
|
268 | (6) |
|
|
274 | (1) |
|
Chapter 13 Internet of Things |
|
|
275 | (28) |
|
|
275 | (4) |
|
Data generation and feedback |
|
|
276 | (1) |
|
|
276 | (1) |
|
|
277 | (1) |
|
Data transformation and analysis |
|
|
277 | (1) |
|
|
278 | (1) |
|
|
278 | (1) |
|
|
279 | (22) |
|
|
279 | (20) |
|
|
299 | (2) |
|
|
301 | (2) |
|
Chapter 14 Real-time data streaming |
|
|
303 | (22) |
|
Real-time data streaming on Azure |
|
|
303 | (4) |
|
|
303 | (1) |
|
|
304 | (2) |
|
|
306 | (1) |
|
|
307 | (16) |
|
|
308 | (9) |
|
Responsive website with live data stream processing |
|
|
317 | (6) |
|
|
323 | (2) |
|
Chapter 15 Multitenancy and hosting |
|
|
325 | (20) |
|
|
325 | (5) |
|
Multitenancy vs. single tenancy |
|
|
326 | (1) |
|
Azure multitenant support |
|
|
327 | (3) |
|
Building multitenant systems with Service Fabric |
|
|
330 | (9) |
|
|
331 | (1) |
|
Pattern: Cross-tenant aggregation |
|
|
332 | (1) |
|
|
333 | (1) |
|
|
334 | (1) |
|
Pattern: Metadata-driven system |
|
|
335 | (4) |
|
Hosting multitenant systems |
|
|
339 | (6) |
|
Hosting service processes |
|
|
339 | (1) |
|
Pattern: Throttling Actor |
|
|
340 | (5) |
|
Chapter 16 Multiplayer gaming |
|
|
345 | (26) |
|
|
345 | (13) |
|
|
346 | (1) |
|
|
347 | (1) |
|
|
348 | (4) |
|
|
352 | (3) |
|
|
355 | (2) |
|
|
357 | (1) |
|
|
358 | (13) |
|
|
358 | (5) |
|
|
363 | (8) |
Part IV Advanced Topics |
|
|
Chapter 17 Advanced service hosting |
|
|
371 | (22) |
|
A canonical PaaS platform |
|
|
371 | (4) |
|
Application package format |
|
|
372 | (2) |
|
|
374 | (1) |
|
|
375 | (1) |
|
Hosting guest applications |
|
|
375 | (8) |
|
|
376 | (1) |
|
|
376 | (1) |
|
Application lifecycle management |
|
|
376 | (1) |
|
|
377 | (1) |
|
Hosting a simple guest application |
|
|
377 | (6) |
|
|
383 | (6) |
|
|
383 | (2) |
|
Service Fabric and containers |
|
|
385 | (3) |
|
|
388 | (1) |
|
|
389 | (4) |
|
Deploy stand-alone clusters |
|
|
389 | (1) |
|
|
389 | (1) |
|
Deploy on Amazon Web Services (AWS) |
|
|
390 | (1) |
|
Service Fabric standalone package |
|
|
390 | (3) |
|
Chapter 18 Modeling complex systems |
|
|
393 | (34) |
|
|
393 | (4) |
|
Complex systems and complicated systems |
|
|
394 | (1) |
|
|
394 | (2) |
|
|
396 | (1) |
|
Modeling and computational modeling |
|
|
396 | (1) |
|
|
397 | (7) |
|
|
397 | (1) |
|
Implement the Box service |
|
|
398 | (2) |
|
Implement the termite actor |
|
|
400 | (2) |
|
Implement the test client |
|
|
402 | (1) |
|
|
403 | (1) |
|
Service Fabric for complex systems |
|
|
404 | (5) |
|
Distributed data structures |
|
|
405 | (2) |
|
|
407 | (2) |
|
The spatial segregation model |
|
|
409 | (9) |
|
|
409 | (1) |
|
Implement shared array with proposal supports |
|
|
409 | (3) |
|
Implement the virtual actor |
|
|
412 | (2) |
|
Implement the Actor Swarm |
|
|
414 | (2) |
|
Implement the test client |
|
|
416 | (1) |
|
|
417 | (1) |
|
|
418 | |
Part V Appendices |
|
|
Appendix A Service Fabric subsystems and system services |
|
|
427 | |
|
Appendix B Using Microsoft Azure PowerShell commands |
|
|
425 | (8) |
|
Appendix C Microsoft and containers |
|
|
433 | (8) |
|
|
441 | (4) |
Index |
|
445 | |