Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud...
Transcript of Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud...
![Page 1: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/1.jpg)
Robert Haken
software & cloud architect, HAVIT, s.r.o.
[email protected], @RobertHaken
Microsoft MVP: Development, MCT, MCPD: Web, MCSE: Cloud
Cloud Design Patterns
Generální partner
![Page 2: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/2.jpg)
Cloud Challenges – Pattern Categories
Availability
Data Management
Design and Implementation
Messaging
Management and Monitoring
Performance and Scalability
Resiliency
Security
![Page 3: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/3.jpg)
Cache-Aside #PerformanceScalability
#DataManagement
![Page 4: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/4.jpg)
![Page 5: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/5.jpg)
Static Content Hosting #PerformanceScalability
#DataManagement
#DesignImplementation
![Page 6: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/6.jpg)
Valet Key #Security
#DataManagement
![Page 7: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/7.jpg)
![Page 8: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/8.jpg)
Gatekeeper #Security
![Page 9: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/9.jpg)
Gateway Offloading #ManagementMonitoring
#DesignImplementation
![Page 10: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/10.jpg)
Gateway Aggregation #ManagementMonitoring
#DesignImplementation
![Page 11: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/11.jpg)
Gateway Routing #ManagementMonitoring
#DesignImplementation
![Page 12: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/12.jpg)
Strangler #DesignImplementation
#ManagementMonitoring
![Page 13: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/13.jpg)
Anti-Corruption Layer #DesignImplementation
#ManagementMonitoring
![Page 14: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/14.jpg)
Health Endpoint Monitoring #Availability
#ManagementMonitoring
#Resiliency
![Page 15: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/15.jpg)
Azure Traffic Manager
![Page 16: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/16.jpg)
External Configuration Store #ManagementMonitoring
#DesignImplementation
![Page 17: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/17.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 – Read from environment variables
▪ AzureKeyVaultConfigBuilder – Read from Azure Key Vault
▪ UserSecretsConfigBuilder – Read from a usersecrets file on disk
▪ SimpleJsonConfigBuilder – Read from a JSON file
![Page 18: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/18.jpg)
Sharding – Lookup Strategy #PerformanceScalability
#DataManagement
![Page 19: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/19.jpg)
Sharding – Range Strategy #PerformanceScalability
#DataManagement
![Page 20: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/20.jpg)
Sharding – Hash Strategy #PerformanceScalability
#DataManagement
![Page 21: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/21.jpg)
Throttling 1/3 #PerformanceScalability
#Availability
![Page 22: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/22.jpg)
Throttling – combined with Auto-Scaling 2/3
![Page 23: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/23.jpg)
Throttling – Example 3/3
![Page 24: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/24.jpg)
Retry #Resiliency
![Page 25: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/25.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
#Resiliency
![Page 27: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/27.jpg)
Bulkhead
connection pools that call individual services
multiple clients calling a single service
#Resiliency
![Page 28: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/28.jpg)
Materialized View #PerformanceScalability
#DataManagement
![Page 29: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/29.jpg)
Event Sourcing #DataManagement
#PerformanceScalability
![Page 30: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/30.jpg)
Compensating Transaction #DataManagement
#Resiliency
![Page 31: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/31.jpg)
CQRS -Command and Query Responsibility Segregation
CRUD CQRS
#DesignImplementation
#PerformanceScalability
#DataManagement
![Page 32: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/32.jpg)
Queue-Based Load Leveling 1/2 #Messaging
#Availability
#PerformanceScalability
#Resiliency
![Page 33: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/33.jpg)
Competing Consumers #Messaging
![Page 34: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/34.jpg)
Priority Queue #Messaging
#PerformanceScalability
![Page 35: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/35.jpg)
Pipes and Filters 1/3 #DesignImplementation
#Messaging
![Page 36: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/36.jpg)
Pipes and Filters 2/3
![Page 37: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/37.jpg)
Pipes and Filters 3/3
![Page 38: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/38.jpg)
Sidecar (Sidekick) #ManagementMonitoring
#DesignImplementation
![Page 39: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/39.jpg)
Ambassador #ManagementMonitoring
#DesignImplementation
![Page 40: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/40.jpg)
Compute Resource Consolidation #DesignImplementation
![Page 41: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/41.jpg)
Federated Identity #Security
![Page 42: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/42.jpg)
Backends for Frontends #DesignImplementation
![Page 43: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/43.jpg)
Reference
Credits:
https://docs.microsoft.com/en-us/azure/architecture/patterns/
Blog – HAVIT Knowledge Base
http://knowledge-base.havit.cz/
Twitter - @RobertHaken
YouTube - https://www.youtube.com/user/HAVITcz
![Page 44: Cloud Design Patterns - HAVIT Knowledge Base · 5/16/2018 · Robert Haken software & cloud architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken Microsoft MVP: Development, MCT,](https://reader035.fdocuments.in/reader035/viewer/2022062921/5f03b6337e708231d40a65fd/html5/thumbnails/44.jpg)
Aktuální a navazující kurzy sledujte na www.gopas.cz
DÁREK PRO VÁS!
Vyplňte dotazníkové hodnocení
a získejte tričko TechEd-DevCon 2018!
SOUTĚŽ! SOUTĚŽ! SOUTĚŽ!
Soutěžte o titul TechEd Best Developer
a TechEd Best IT PRO!