cloud design patterns - havit knowledge base · 4/8/2018 · cloud design patterns robert haken...
TRANSCRIPT
![Page 1: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/1.jpg)
Cloud Design Patterns
Robert Hakensoftware & cloud architect, HAVIT, [email protected], @RobertHaken, https://knowledge-base.havit.cz + .euMicrosoft MVP: Development, MCT, MCPD: Web, MCSE: Cloud
![Page 2: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/2.jpg)
Cloud Challenges
Availability
Data Management
Design and Implementation
Messaging
Management and Monitoring
Performance and Scalability
Resiliency
Security
Credits: https://docs.microsoft.com/en-us/azure/architecture/patterns/
![Page 3: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/3.jpg)
Management and Monitoring patterns
Ambassador
Anti-CorruptionLayer
ExternalConfigurationStore
GatewayAggregation
GatewayOffloading
GatewayRouting
HealthEndpointMonitoring
Sidecar
Strangler
![Page 4: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/4.jpg)
Anti-CorruptionLayer
![Page 5: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/5.jpg)
External ConfigurationStore
![Page 6: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/6.jpg)
.NET 4.7.1 -ConfigurationBuilders<configBuilders>
<builders><add name="KeyVault" mode="Strict" prefix="conn_" stripPrefix="true"
clientId="MyId" clientSecret="mySecret" vaultName="MyVault"type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, ..." />
<add name="MyOtherConfigBuilder" type="CustomConfigBuilders.MyOtherConfigBuilder, ..." /></builders>
</configBuilders><appSettings configBuilders="KeyVault,MyOtherConfigBuilder">
<add key="Setting1" value="May Be Replaced" /><add key="Setting2" value="May Be Removed" /><!-- Setting3 could be added by a builder without even being declared here. -->
</appSettings>
• EnvironmentConfigBuilder–Readfromenvironment variables
• AzureKeyVaultConfigBuilder–ReadfromAzure KeyVault
• UserSecretsConfigBuilder–Readfroma usersecretsfileon disk
• SimpleJsonConfigBuilder–Readfroma JSON file
![Page 7: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/7.jpg)
GatewayAggregation
![Page 8: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/8.jpg)
GatewayOffloading
![Page 9: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/9.jpg)
GatewayRouting
![Page 10: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/10.jpg)
HealthEndpointMonitoring
![Page 11: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/11.jpg)
Azure TrafficManager
![Page 12: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/12.jpg)
Sidecar
![Page 13: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/13.jpg)
Ambassador
![Page 14: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/14.jpg)
Performance and Scalability
Cache-Aside
CQRS
Event Sourcing
Index Table
MaterializedView
Priority Queue
Queue-BasedLoadLeveling
Sharding
Static ContentHosting
Throttling
![Page 15: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/15.jpg)
Cache-Aside
![Page 16: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/16.jpg)
![Page 17: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/17.jpg)
Static ContentHosting
![Page 18: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/18.jpg)
Sharding–LookupStrategy
![Page 19: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/19.jpg)
Sharding–RangeStrategy
![Page 20: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/20.jpg)
Sharding–HashStrategy
![Page 21: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/21.jpg)
Throttling 1/3
![Page 22: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/22.jpg)
Throttling–combinedwithAuto-Scaling 2/3
![Page 23: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/23.jpg)
Throttling–Example 3/3
![Page 24: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/24.jpg)
Resiliency
Bulkhead
CircuitBreaker
CompensatingTransaction
HealthEndpointMonitoring
Leader Election
Queue-BasedLoadLeveling
Retry
Scheduler Agent Supervisor
![Page 25: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/25.jpg)
Retry
![Page 26: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/26.jpg)
Retry –Azure ServicesService Retry capabilities Policy configuration Scope Telemetry features
Azure Storage Native in client Programmatic Client and individual operations TraceSource
SQL Database with Entity
Framework
Native in client Programmatic Global per AppDomain None
SQL Database with Entity
Framework Core
Native in client Programmatic Global per AppDomain None
SQL Database with ADO.NET Polly Declarative and programmatic Single statements or blocks of code
Custom
Service Bus Native in client Programmatic Namespace Manager, Messaging Factory, and Client
ETW
Azure Redis Cache Native in client Programmatic Client TextWriter
Cosmos DB Native in service Non-configurable Global TraceSource
Azure Search Native in client Programmatic Client ETW or Custom
Azure Active Directory Native in ADAL library Embeded into ADAL library Internal None
Service Fabric Native in client Programmatic Client None
Azure Event Hubs Native in client Programmatic Client None
![Page 27: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/27.jpg)
Bulkhead[přepážka]
connection pools that call individual services multiple clients calling a single service
![Page 29: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/29.jpg)
Data Management
Cache-Aside
CQRS
Event Sourcing
Index Table
MaterializedView
Sharding
Static ContentHosting
ValetKey
![Page 30: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/30.jpg)
MaterializedView
![Page 31: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/31.jpg)
Event Sourcing
![Page 32: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/32.jpg)
CompensatingTransaction
![Page 33: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/33.jpg)
CQRS -Command and Query Responsibility Segregation
CRUD CQRS
![Page 34: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/34.jpg)
ValetKey
![Page 35: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/35.jpg)
![Page 36: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/36.jpg)
Messaging
CompetingConsumers
Pipesand Filters
Priority Queue
Queue-BasedLoadLeveling
Scheduler Agent Supervisor
![Page 37: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/37.jpg)
CompetingConsumers
![Page 38: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/38.jpg)
Queue-Based LoadLeveling1/2
![Page 39: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/39.jpg)
Queue-BasedLoadLeveling2/2 -Example
![Page 40: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/40.jpg)
Priority Queue
![Page 41: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/41.jpg)
Pipesand Filters1/3
![Page 42: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/42.jpg)
Pipesand Filters2/3
![Page 43: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/43.jpg)
Pipesand Filters3/3
![Page 44: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/44.jpg)
Design and Implementation
Ambassador
Anti-CorruptionLayer
BackendsforFrontends
CQRS
ComputeResourceConsolidation
ExternalConfigurationStore
GatewayAggregation
GatewayOffloading
GatewayRouting
Leader Election
Pipesand Filters
Sidecar
Static ContentHosting
Strangler
![Page 45: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/45.jpg)
BackendsforFrontends
![Page 46: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/46.jpg)
ComputeResourceConsolidation
![Page 47: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/47.jpg)
Strangler
![Page 48: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/48.jpg)
Security
Federated Identity
Gatekeeper
Valet Key
![Page 49: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/49.jpg)
FederatedIdentity
![Page 50: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/50.jpg)
Gatekeeper
![Page 51: Cloud Design Patterns - HAVIT Knowledge Base · 4/8/2018 · Cloud Design Patterns Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, + .eu Microsoft](https://reader035.vdocuments.us/reader035/viewer/2022062921/5f03b6327e708231d40a65f8/html5/thumbnails/51.jpg)
Reference
Blog –HAVIT KnowledgeBase
http://knowledge-base.havit.cz/
@RobertHaken
YouTube
https://www.youtube.com/user/HAVITcz