SlideShare a Scribd company logo
1 of 1
Download to read offline
Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications
Performance and Scalability
Performance is an indication of the responsiveness of a system, while
scalability is the ability to gracefully handle increases in load, perhaps
through an increase in available resources. Cloud applications, especially
in multi-tenant scenarios, typically encounter variable workloads and
unpredictable activity peaks and should be able to scale out within limits
to meet demand, and scale in when demand decreases. Scalability
concerns not just compute instances, but other items such as data stor-
age, messaging infrastructure, and more.
Security
Security is the capability of a system to prevent malicious or accidental
actions outside of the designed usage, and to prevent disclosure or loss
of information. Cloud applications are exposed on the Internet outside
trusted on-premises boundaries, are often open to the public, and may
serve untrusted users. Applications must be designed and deployed in a
way that protects them from malicious attacks, restricts access to only
approved users, and protects sensitive data.
Resiliency
Resiliency is the ability of a system to gracefully handle and recover from
failures. The nature of cloud hosting, where applications are often
multi-tenant, use shared platform services, compete for resources and
bandwidth, communicate over the Internet, and run on commodity
hardware means there is an increased likelihood that both transient and
more permanent faults will arise. Detecting failures, and recovering
quickly and efficiently, is necessary to maintain resiliency.
Data Management
Data management is the key element of cloud applications, and influenc-
es most of the quality attributes. Data is typically hosted in different
locations and across multiple servers for reasons such as performance,
scalability or availability, and this can present a range of challenges. For
example, data consistency must be maintained, and data will typically
need to be synchronized across different locations.
Design and Implementation
Good design encompasses factors such as consistency and coherence in
component design and deployment, maintainability to simplify adminis-
tration and development, and reusability to allow components and
subsystems to be used in other applications and in other scenarios.
Decisions made during the design and implementation phase have a
huge impact on the quality and the total cost of ownership of cloud
hosted applications and services.
Messaging
The distributed nature of cloud applications requires a messaging infra-
structure that connects the components and services, ideally in a loosely
coupled manner in order to maximize scalability. Asynchronous messag-
ing is widely used, and provides many benefits, but also brings challenges
such as the ordering of messages, poison message management, idem-
potency, and more.
Management and Monitoring
Cloud applications run in a remote datacenter where you do not have full
control of the infrastructure or, in some cases, the operating system. This
can make management and monitoring more difficult than an on-prem-
ises deployment. Applications must expose runtime information that
administrators and operators can use to manage and monitor the system,
as well as supporting changing business requirements without requiring
the application to be stopped or redeployed.
Problem areas in the cloud
Availability
Availability defines the proportion of time that the system is functional
and working. It will be affected by system errors, infrastructure problems,
malicious attacks, and system load. It is usually measured as a percentage
of uptime. Cloud applications typically provide users with a service level
agreement (SLA), which means that applications must be designed and
implemented in a way that maximizes availability.
This poster depicts common problems in designing cloud applications
(below) and patterns that offer guidance (right). The information applies
to Microsoft Azure as well as other cloud platforms. The icons at the top
of each item represent the problem areas that the pattern relates to.
Patterns that include code samples are indicated by this icon:
Visit http://aka.ms/Cloud-Design-Patterns-Sample to download.
http://aka.ms/Availability-Patterns
http://aka.ms/DataManagement-Patterns
http://aka.ms/Design-and-Implementation-Patterns
http://aka.ms/Messaging-Patterns
http://aka.ms/Performance-and-Scalability-Patterns
http://aka.ms/Resiliency-Patterns
http://aka.ms/Security-Patterns
http://aka.ms/Management-and-Monitoring-Patterns
© 2015 Microsoft Corporation. All rights reserved. pagdoc@microsoft.comhttp://aka.ms/Cloud-Design-PatternsLike it? Get it.
User
Return token
Request resource
Target
resource
Access resource
using token
Check validity of
request and
generate key
token
1
2
3
4
Application
Valet Key
For more info, see http://aka.ms/Valet-Key-Pattern
Use a token or key that provides clients with restricted direct access to a specific resource
or service in order to offload data transfer operations from the application code. This
pattern is particularly useful in applications that use cloud-hosted storage systems or
queues, and can minimize cost and maximize scalability and performance.
Control the consumption of resources used by an instance of an application, an individu-
al tenant, or an entire service. This pattern can allow the system to continue to function
and meet service level agreements, even when an increase in demand places an extreme
load on resources.
Throttling
For more info, see http://aka.ms/Throttling-Pattern
Feature C
Resource utilization
Feature B
Feature A
Soft limit of
resource
utilization
Maximum
capacity
Time
T1 T2
Feature B is suspended to allow sufficient
resources for applications to use
Feature A and Feature C
Deploy static content to a cloud-based storage service that can deliver these directly to
the client. This pattern can reduce the requirement for potentially expensive compute
instances.
Static Content Hosting
For more info, see http://aka.ms/Static-Content-Hosting-Pattern
Deliver pages
containing links to
files in storage
service
Request files
from storage
service
Container “myresources”
styles.ccs
sitecode.js
download.doc
samples.zip
...
image1.png
image2.png
image3.png
...
Client
Application
Divide a data store into a set of horizontal partitions or shards. This pattern can improve
scalability when storing and accessing large volumes of data.
Sharding
For more info, see http://aka.ms/Sharding-Pattern
Sharding logic:
Route requests for tenant 1 to shard ...
...
Route requests for tenant 55 to shard A
...
Route requests for tenant 227 to shard C
...
Route requests for tenant N to shard ...
Query: Find information
for tenant 227
Query: Find information
for tenant 55
Application
instance
Application
instance
•••
Shard A Shard B Shard C Shard N
Coordinate a set of actions across a distributed set of services and other remote resourc-
es, attempt to transparently handle faults if any of these actions fail, or undo the effects
of the work performed if the system cannot recover from a fault. This pattern can add
resiliency to a distributed system by enabling it to recover and retry actions that fail due
to transient exceptions, long-lasting faults, and process failures.
Scheduler Agent Supervisor
For more info, see http://aka.ms/Scheduler-Agent-Supervisor-Pattern
Supervisor requests that a failed step
is reattempted by the Scheduler
Supervisor monitors the status of
steps in the State Store and may
update the status of a step
Scheduler
organizes and
runs the steps that
comprise the task
as a workflow
Scheduler
maintains the status of
each step in the State
Store
as it is started
and completed
A step in the workflow can send a request to an
agent to access a remote resource or invoke a
remote service. Requests and responses are
typically sent asynchronously
Agent accesses remote resource or
service. The agent should include
error handling and retry logic
Scheduler
Agent
Supervisor
Agent
State store
Remote
resource
Remote
service
Runtime Reconfiguration
For more info, see http://aka.ms/Runtime-Reconfiguration-Pattern
Design an application so that it can be reconfigured without requiring redeployment or
restarting the application. This helps to maintain availability and minimize downtime.
Component
or service
Change applied
at runtime
Configuration
updated
Change cancelled
because it cannot be
applied at runtime
Configuration file Restart
application
Application
code
Retry
For more info, see http://aka.ms/Retry-Pattern
Enable an application to handle anticipated, temporary failures when it attempts to
connect to a service or network resource by transparently retrying an operation that has
previously failed in the expectation that the cause of the failure is transient. This pattern
can improve the stability of the application.
Application Hosted service
Application invokes operation on hosted service. The request fails, and the
service host responds with HTTP response code 500 (internal server error).
Application waits for a short interval and tries again. The request still fails with
HTTP response code 500.
Application waits for a longer interval and tries again. The request succeeds
with HTTP response code 200 (OK).
1
500
2
500
3
1
2
3
200
Requests received at
a variable rate
Messages processed at a
more consistent rate
Tasks
ServicesMessage queue
Use a queue that acts as a buffer between a task and a service that it invokes in order to
smooth intermittent heavy loads that may otherwise cause the service to fail or the task
to time out. This pattern can help to minimize the impact of peaks in demand on avail-
ability and responsiveness for both the task and the service.
Queue-Based Load Leveling
For more info, see http://aka.ms/Queue-Based-Load-Leveling-Pattern
Priority Queue
For more info, see http://aka.ms/Priority-Queue-Pattern
Prioritize requests sent to services so that requests with a higher priority are received
and processed more quickly than those of a lower priority. This pattern is useful in
applications that offer different service level guarantees to individual clients.
Message queue for priority 1 messages
Application sends messages to
the queue that handles messsages
of the designated priority
All messages in a queue have
the same priority
Message queue for priority 2 messages
Message queue for priority 3 messages
Application 11 1
22
3
3 3
Consumer
Consumer
Consumer
Consumer
Consumer
Consumer
Pipes and Filters
For more info, see http://aka.ms/Pipes-and-Filters-Pattern
Decompose a task that performs complex processing into a series of discrete elements
that can be reused. This pattern can improve performance, scalability, and reusability
by allowing task elements that perform the processing to be deployed and scaled
independently.
Data from
Source 1
Task A Task B Task C
Business
logic
Transformed data
Transformed data
Components
reused in
different
pipelines
Data from
Source 2
Task A Task B Task E
Materialized View
For more info, see http://aka.ms/Materialized-View-Pattern
Generate pre-populated views over the data in one or more data stores when the data is
formatted in a way that does not favor the required query operations. This pattern can
help to support efficient querying and data extraction, and improve performance.
Materialized view
is read-only
Application data
is the source
of truth
Materialized View
Application
OrderId ItemId Qty
1 30 2
1 31 3
2 30 2
OrderId Account
1 A
2 B
ItemId Name Stock
30 Shirts 120
31 Pants 143
ItemId Name Stock
30 Shirts 120
31 Pants 143
Coordinate the actions performed by a collection of collaborating task instances in a
distributed application by electing one instance as the leader that assumes responsibility
for managing the other instances. This pattern can help to ensure that task instances do
not conflict with each other, cause contention for shared resources, or inadvertently
interfere with the work that other task instances are performing.
Leader Election
For more info, see http://aka.ms/Leader-Election-Pattern
Blob
1
2
3
4
BlobDistributedMutext
Leader role instance
Subordinate role instance
BlobDistributedMutext
BlobDistributedMutext
Create indexes over the fields in data stores that are frequently referenced by query
criteria. This pattern can improve query performance by allowing applications to more
quickly locate the data to retrieve from a data store.
Index Table
For more info, see http://aka.ms/Index-Table-Pattern
Index Table
Primary Key
(Customer ID) Customer Data
1 LastName: Smith, Town: Redmond,...
2 LastName: Jones, Town: Seattle, ...
3 LastName: Robinson, Town: Portland, ...
4 LastName: Brown, Town: Redmond, ...
5 LastName: Smith, Town: Chicago, ...
6 LastName: Clarke, Town: Portland, ...
7 LastName: Smith, Town, Redmond, ...
8 LastName: Smith, Town: Redmond, ...
9 LastName: Jones, Town: Chicago, ...
... ...
1000 LastName: Clarke, Town: Chicago, ...
... ...
Fact Table
Secondary Key Customer
(LastName) Reference (ID)
Brown ID: 4
Clarke ID: 7
Green ID: 6
Jones ID: 2
Jones ID: 9
... ...
Robinson ID: 3
Smith ID: 1
Smith ID: 8
... ...
Secondary Key Customer
(Town) Reference (ID)
Chicago ID: 5
Chicago ID: 9
... ...
Portland ID: 3
Portland ID: 7
Redmond ID: 1
Redmond ID: 4
Redmond ID: 6
Redmond ID: 8
Seattle ID: 2
... ...
Index Table
Health Endpoint Monitoring
Implement functional checks within an application that external tools can access
through exposed endpoints at regular intervals. This pattern can help to verify that
applications and services are performing correctly.
For more info, see http://aka.ms/Health-Endpoint-Monitoring-Pattern
Port 80 (HTTPS)
or 443 (HTTPS)
endpoint
CDN
Application
Agent
CDN
Application
SSL
...
Health checks
Storage
Database
Service A
Service B
...
Response time: 50 ms
Storage: 5 ms
Database: 20 ms
...
Storage
SSL certificates
200 (OK)
Database
Gatekeeper
Protect applications and services by using a dedicated host instance that acts as a broker
between clients and the application or service, validates and sanitizes requests, and
passes requests and data between them. This pattern can provide an additional layer of
security, and limit the attack surface of the system.
For more info, see http://aka.ms/Gatekeeper-Pattern
Gatekeeper
exposes endpoints
to clients
Client
Gatekeeper
validates and
sanitizes requests
Trusted host
accesses
service and
storage
Gatekeeper
may be decoupled
from trusted host(s)
Data
Trusted host
or
Keymaster
Services
Gatekeeper
Federated Identity
Delegate authentication to an external identity provider. This pattern can simplify
development, minimize the requirement for user administration, and improve the user
experience of the application.
For more info, see http://aka.ms/Federated-Identity-Pattern
Identity
provider (IdP)
or security token
service (STS)
ServiceConsumer
1. Service trusts
IdP or STS
4. Consumer
presents token to
service
2. Consumer
authenticates and
requests token
3. STS returns
token
External Configuration Store
Move configuration information out of the application deployment package to a
centralized location. This pattern can provide opportunities for easier management and
control of configuration data, and for sharing configuration data across applications and
application instances.
For more info, see http://aka.ms/External-Configuration-Store-Pattern
Application
Application
Application
External
configuration
store
Local cache
Alternative
option
Cloud storage
Database
Event Sourcing
Use an append-only store to record actions taken on data, rather than the current state,
and use the store to materialize the domain objects. In complex domains this can avoid
synchronizing the data model and the business domain; improve performance, scalabili-
ty, and responsiveness; provide consistency; and provide audit history to enable com-
pensating actions.
For more info, see http://aka.ms/Event-Sourcing-Pattern
External systems
and applications
Query for current
state of entities
Shipping
information added
Cart created
Presentation
Persisted
events
Item 1 added
Item 1 removed
Item 2 added
Some options for
consuming events
Event
store
Materialized View
Cart
Cart ID
Date
Customer
Address
...
Cart Item
Cart ID
Item key
Item name
Quantity
...
Published events
Replayed events
Command and Query Responsibility
Segregation (CQRS)
Segregate operations that read data from operations that update data by using separate
interfaces. This pattern can maximize performance, scalability, and security; support
evolution of the system over time through higher flexibility; and prevent update com-
mands from causing merge conflicts at the domain level.
For more info, see http://aka.ms/CQRS-Pattern
Queries
(generate DTOs)
Read model
Write model
Date persistence
Domain logic
Commands
Validation
Presentation
Data store
Compute Resource Consolidation
Consolidate multiple tasks or operations into a single computational unit. This pattern
can increase compute resource utilization, and reduce the costs and management
overhead associated with performing compute processing in cloud-hosted applications.
For more info, see http://aka.ms/Compute-Resource-Consolidation-Pattern
OnStart
Fabric
controller
OnStop
Run
Run creates tasks
and waits for them
to complete
OnStop cleans up
resources used by
tasks
Role
Start
event
Blob
Stop
event
OnStart initializes
resources used by
tasks
Competing Consumers
Enable multiple concurrent consumers to process messages received on the same
messaging channel. This pattern enables a system to process multiple messages concur-
rently to optimize throughput, to improve scalability and availability, and to balance the
workload.
For more info, see http://aka.ms/Competing-Consumers-Pattern
Application instances -
generating messages
Consumer service
instance pool -
processing messages
Message queue
Compensating Transaction
Undo the work performed by a series of steps, which together define an eventually
consistent operation, if one or more of the operations fails. Operations that follow the
eventual consistency model are commonly found in cloud-hosted applications that
implement complex business processes and workflows.
For more info, see http://aka.ms/Compensating-Transaction-Pattern
Operation steps to create itinerary
Compensating transaction to cancel itinerary
Reserve room
at hotel H1
Compensating logic
Cancel room at
hotel H1
Counter operations
recorded for each
step in the long-
running transaction
Book seat on
flight F1
Compensating logic
Cancel seat on
flight F1
Compensation logic
applies business
rules to counter-
operations
Book seat on
flight F2
Compensating logic
Cancel seat on
flight F2
Circuit Breaker
For more info, see http://aka.ms/Circuit-Breaker-Pattern
Handle faults that may take a variable amount of time to rectify when connecting to a
remote service or resource. This pattern can improve the stability and resiliency of an
application.
Half-Open
entry / reset success counter
do / if operation succeeds
increment success counter
return result
else
return failure
exit /
Open
entry / start timeout timer
do / return failure
exit /
Closed
entry / reset failure counter
do / if operation succeeds
return result
else
increment failure counter
return failure
exit /
Timeout timer
expired
Success count
threshold
reached
Failure threshold
reached
Operation
failed
Cache-aside
For more info, see http://aka.ms/Cache-Aside-Pattern
Load data on demand into a cache from a data store. This pattern can improve perfor-
mance and also helps to maintain consistency between data held in the cache and the
data in the underlying data store.
Cache
Data store

More Related Content

What's hot

Overview of cloud computing architecture
Overview of cloud computing architectureOverview of cloud computing architecture
Overview of cloud computing architectureeSAT Journals
 
Overview of cloud computing architecture service
Overview of cloud computing architecture serviceOverview of cloud computing architecture service
Overview of cloud computing architecture serviceeSAT Publishing House
 
Get more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisGet more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisIBM India Smarter Computing
 
IRJET- Developing an Algorithm to Detect Malware in Cloud
IRJET- Developing an Algorithm to Detect Malware in CloudIRJET- Developing an Algorithm to Detect Malware in Cloud
IRJET- Developing an Algorithm to Detect Malware in CloudIRJET Journal
 
CLOUD COMPUTING UNIT-5 NOTES
CLOUD COMPUTING UNIT-5 NOTESCLOUD COMPUTING UNIT-5 NOTES
CLOUD COMPUTING UNIT-5 NOTESTushar Dhoot
 
Best cloud computing training institute in noida
Best cloud computing training institute in noidaBest cloud computing training institute in noida
Best cloud computing training institute in noidataramandal
 
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...David Freitas
 
Cloud Computing Presentation
Cloud Computing PresentationCloud Computing Presentation
Cloud Computing PresentationMohammed Kharma
 
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...ijgca
 
Cloud computing-overview
Cloud computing-overviewCloud computing-overview
Cloud computing-overviewsri_kanth0526
 

What's hot (20)

Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
Cc unit 3 updated version
Cc unit 3 updated versionCc unit 3 updated version
Cc unit 3 updated version
 
Overview of cloud computing architecture
Overview of cloud computing architectureOverview of cloud computing architecture
Overview of cloud computing architecture
 
Overview of cloud computing architecture service
Overview of cloud computing architecture serviceOverview of cloud computing architecture service
Overview of cloud computing architecture service
 
Get more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysisGet more out of cloud with astructured workload analysis
Get more out of cloud with astructured workload analysis
 
Fs2510501055
Fs2510501055Fs2510501055
Fs2510501055
 
Saas security
Saas securitySaas security
Saas security
 
Cc unit 2 updated
Cc unit 2 updatedCc unit 2 updated
Cc unit 2 updated
 
Module 3-cloud computing
Module 3-cloud computingModule 3-cloud computing
Module 3-cloud computing
 
IRJET- Developing an Algorithm to Detect Malware in Cloud
IRJET- Developing an Algorithm to Detect Malware in CloudIRJET- Developing an Algorithm to Detect Malware in Cloud
IRJET- Developing an Algorithm to Detect Malware in Cloud
 
CLOUD COMPUTING UNIT-5 NOTES
CLOUD COMPUTING UNIT-5 NOTESCLOUD COMPUTING UNIT-5 NOTES
CLOUD COMPUTING UNIT-5 NOTES
 
Sla in cloud
Sla in cloudSla in cloud
Sla in cloud
 
Best cloud computing training institute in noida
Best cloud computing training institute in noidaBest cloud computing training institute in noida
Best cloud computing training institute in noida
 
F1034047
F1034047F1034047
F1034047
 
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked...
 
Cloud Computing Presentation
Cloud Computing PresentationCloud Computing Presentation
Cloud Computing Presentation
 
ENERGY EFFICIENCY IN CLOUD COMPUTING
ENERGY EFFICIENCY IN CLOUD COMPUTINGENERGY EFFICIENCY IN CLOUD COMPUTING
ENERGY EFFICIENCY IN CLOUD COMPUTING
 
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...
SERVICE LEVEL AGREEMENT BASED FAULT TOLERANT WORKLOAD SCHEDULING IN CLOUD COM...
 
A Review on Data Protection of Cloud Computing Security, Benefits, Risks and ...
A Review on Data Protection of Cloud Computing Security, Benefits, Risks and ...A Review on Data Protection of Cloud Computing Security, Benefits, Risks and ...
A Review on Data Protection of Cloud Computing Security, Benefits, Risks and ...
 
Cloud computing-overview
Cloud computing-overviewCloud computing-overview
Cloud computing-overview
 

Similar to Ms cloud design patterns infographic 2015

Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...David J Rosenthal
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101 Predrag Mitrovic
 
Cloud First Architecture
Cloud First ArchitectureCloud First Architecture
Cloud First ArchitectureCameron Vetter
 
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...riyak40
 
Cloud Design Patterns Book from Microsoft
Cloud Design Patterns Book from MicrosoftCloud Design Patterns Book from Microsoft
Cloud Design Patterns Book from MicrosoftKesavan Munuswamy
 
Cloud computing-overview
Cloud computing-overviewCloud computing-overview
Cloud computing-overviewshraddhaudage
 
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...IIJSRJournal
 
Flaw less coding and authentication of user data using multiple clouds
Flaw less coding and authentication of user data using multiple cloudsFlaw less coding and authentication of user data using multiple clouds
Flaw less coding and authentication of user data using multiple cloudsIRJET Journal
 
How to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your ProjectHow to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your ProjectBitCot
 
Security for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsSecurity for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsEditor IJCATR
 
A Study on Replication and Failover Cluster to Maximize System Uptime
A Study on Replication and Failover Cluster to Maximize System UptimeA Study on Replication and Failover Cluster to Maximize System Uptime
A Study on Replication and Failover Cluster to Maximize System UptimeYogeshIJTSRD
 
An introduction to the cloud 11 v1
An introduction to the cloud 11 v1An introduction to the cloud 11 v1
An introduction to the cloud 11 v1charan7575
 
Cloudmod4
Cloudmod4Cloudmod4
Cloudmod4kongara
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 
Introduction to aneka cloud
Introduction to aneka cloudIntroduction to aneka cloud
Introduction to aneka cloudssuser84183f
 

Similar to Ms cloud design patterns infographic 2015 (20)

Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
Cloud Design Patterns - PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICAT...
 
Cloud strategy briefing 101
Cloud strategy briefing 101 Cloud strategy briefing 101
Cloud strategy briefing 101
 
Cloud First Architecture
Cloud First ArchitectureCloud First Architecture
Cloud First Architecture
 
TermPaper
TermPaperTermPaper
TermPaper
 
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
 
Cloud monitoring overview
Cloud monitoring overviewCloud monitoring overview
Cloud monitoring overview
 
Cloud Design Patterns Book from Microsoft
Cloud Design Patterns Book from MicrosoftCloud Design Patterns Book from Microsoft
Cloud Design Patterns Book from Microsoft
 
Cloud computing-overview
Cloud computing-overviewCloud computing-overview
Cloud computing-overview
 
Cloud Computing Overview | Torry Harris Whitepaper
Cloud Computing Overview | Torry Harris WhitepaperCloud Computing Overview | Torry Harris Whitepaper
Cloud Computing Overview | Torry Harris Whitepaper
 
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
Methodologies for Enhancing Data Integrity and Security in Distributed Cloud ...
 
Flaw less coding and authentication of user data using multiple clouds
Flaw less coding and authentication of user data using multiple cloudsFlaw less coding and authentication of user data using multiple clouds
Flaw less coding and authentication of user data using multiple clouds
 
How to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your ProjectHow to Build a Scalable Web Application for Your Project
How to Build a Scalable Web Application for Your Project
 
Security for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi CloudsSecurity for Effective Data Storage in Multi Clouds
Security for Effective Data Storage in Multi Clouds
 
A Study on Replication and Failover Cluster to Maximize System Uptime
A Study on Replication and Failover Cluster to Maximize System UptimeA Study on Replication and Failover Cluster to Maximize System Uptime
A Study on Replication and Failover Cluster to Maximize System Uptime
 
An introduction to the cloud 11 v1
An introduction to the cloud 11 v1An introduction to the cloud 11 v1
An introduction to the cloud 11 v1
 
Cloud monitoring overview
Cloud monitoring overviewCloud monitoring overview
Cloud monitoring overview
 
Cloudmod4
Cloudmod4Cloudmod4
Cloudmod4
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Introduction to aneka cloud
Introduction to aneka cloudIntroduction to aneka cloud
Introduction to aneka cloud
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 

More from Kesavan Munuswamy

Surviving Migration To Office 365 an it pros guide ebook
Surviving Migration To Office 365 an it pros guide ebookSurviving Migration To Office 365 an it pros guide ebook
Surviving Migration To Office 365 an it pros guide ebookKesavan Munuswamy
 
Windows_Server_2016_Virtualization White Paper By Veeam
Windows_Server_2016_Virtualization White Paper By VeeamWindows_Server_2016_Virtualization White Paper By Veeam
Windows_Server_2016_Virtualization White Paper By VeeamKesavan Munuswamy
 
MSFT Cloud Architecture Information Protection
MSFT Cloud Architecture Information ProtectionMSFT Cloud Architecture Information Protection
MSFT Cloud Architecture Information ProtectionKesavan Munuswamy
 
Ms cloud identity and access infographic 2015
Ms cloud identity and access infographic 2015Ms cloud identity and access infographic 2015
Ms cloud identity and access infographic 2015Kesavan Munuswamy
 
Microsoft azure infographic 2015 2.5
Microsoft azure infographic 2015 2.5Microsoft azure infographic 2015 2.5
Microsoft azure infographic 2015 2.5Kesavan Munuswamy
 
Azure security infographic 2014 sec
Azure security infographic 2014 secAzure security infographic 2014 sec
Azure security infographic 2014 secKesavan Munuswamy
 
Windows Server 2012 Exam Paper 70-411 PDF
Windows Server 2012 Exam Paper 70-411 PDFWindows Server 2012 Exam Paper 70-411 PDF
Windows Server 2012 Exam Paper 70-411 PDFKesavan Munuswamy
 
MCSA Server 2012 Exam Paper 1- Ms 70 410
MCSA Server 2012  Exam Paper 1- Ms 70 410MCSA Server 2012  Exam Paper 1- Ms 70 410
MCSA Server 2012 Exam Paper 1- Ms 70 410Kesavan Munuswamy
 
Inside the sql server query optimizer
Inside the sql server query optimizer Inside the sql server query optimizer
Inside the sql server query optimizer Kesavan Munuswamy
 
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1Step by Step Windows Azure pack for windows server 2012 R2 Guide v1
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1Kesavan Munuswamy
 
SQL Server Source Control Basics
SQL Server Source Control BasicsSQL Server Source Control Basics
SQL Server Source Control BasicsKesavan Munuswamy
 
Tips for Database Performance
Tips for Database PerformanceTips for Database Performance
Tips for Database PerformanceKesavan Munuswamy
 
Fundamentals of sql server 2012 replication e book
Fundamentals of sql server 2012 replication e bookFundamentals of sql server 2012 replication e book
Fundamentals of sql server 2012 replication e bookKesavan Munuswamy
 
SQL Server Backup and Restore
SQL Server Backup and RestoreSQL Server Backup and Restore
SQL Server Backup and RestoreKesavan Munuswamy
 
Extending Role Security in Analysis Services for SQL Server
Extending Role Security in Analysis Services for SQL ServerExtending Role Security in Analysis Services for SQL Server
Extending Role Security in Analysis Services for SQL ServerKesavan Munuswamy
 
SQL High Availability solutions E Book
SQL High Availability solutions E BookSQL High Availability solutions E Book
SQL High Availability solutions E BookKesavan Munuswamy
 

More from Kesavan Munuswamy (17)

Surviving Migration To Office 365 an it pros guide ebook
Surviving Migration To Office 365 an it pros guide ebookSurviving Migration To Office 365 an it pros guide ebook
Surviving Migration To Office 365 an it pros guide ebook
 
Windows_Server_2016_Virtualization White Paper By Veeam
Windows_Server_2016_Virtualization White Paper By VeeamWindows_Server_2016_Virtualization White Paper By Veeam
Windows_Server_2016_Virtualization White Paper By Veeam
 
MSFT Cloud Architecture Information Protection
MSFT Cloud Architecture Information ProtectionMSFT Cloud Architecture Information Protection
MSFT Cloud Architecture Information Protection
 
Ms cloud identity and access infographic 2015
Ms cloud identity and access infographic 2015Ms cloud identity and access infographic 2015
Ms cloud identity and access infographic 2015
 
Microsoft azure infographic 2015 2.5
Microsoft azure infographic 2015 2.5Microsoft azure infographic 2015 2.5
Microsoft azure infographic 2015 2.5
 
Azure security infographic 2014 sec
Azure security infographic 2014 secAzure security infographic 2014 sec
Azure security infographic 2014 sec
 
MCSA Exam paper 70-412 PDF
MCSA Exam paper 70-412 PDFMCSA Exam paper 70-412 PDF
MCSA Exam paper 70-412 PDF
 
Windows Server 2012 Exam Paper 70-411 PDF
Windows Server 2012 Exam Paper 70-411 PDFWindows Server 2012 Exam Paper 70-411 PDF
Windows Server 2012 Exam Paper 70-411 PDF
 
MCSA Server 2012 Exam Paper 1- Ms 70 410
MCSA Server 2012  Exam Paper 1- Ms 70 410MCSA Server 2012  Exam Paper 1- Ms 70 410
MCSA Server 2012 Exam Paper 1- Ms 70 410
 
Inside the sql server query optimizer
Inside the sql server query optimizer Inside the sql server query optimizer
Inside the sql server query optimizer
 
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1Step by Step Windows Azure pack for windows server 2012 R2 Guide v1
Step by Step Windows Azure pack for windows server 2012 R2 Guide v1
 
SQL Server Source Control Basics
SQL Server Source Control BasicsSQL Server Source Control Basics
SQL Server Source Control Basics
 
Tips for Database Performance
Tips for Database PerformanceTips for Database Performance
Tips for Database Performance
 
Fundamentals of sql server 2012 replication e book
Fundamentals of sql server 2012 replication e bookFundamentals of sql server 2012 replication e book
Fundamentals of sql server 2012 replication e book
 
SQL Server Backup and Restore
SQL Server Backup and RestoreSQL Server Backup and Restore
SQL Server Backup and Restore
 
Extending Role Security in Analysis Services for SQL Server
Extending Role Security in Analysis Services for SQL ServerExtending Role Security in Analysis Services for SQL Server
Extending Role Security in Analysis Services for SQL Server
 
SQL High Availability solutions E Book
SQL High Availability solutions E BookSQL High Availability solutions E Book
SQL High Availability solutions E Book
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Ms cloud design patterns infographic 2015

  • 1. Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications Performance and Scalability Performance is an indication of the responsiveness of a system, while scalability is the ability to gracefully handle increases in load, perhaps through an increase in available resources. Cloud applications, especially in multi-tenant scenarios, typically encounter variable workloads and unpredictable activity peaks and should be able to scale out within limits to meet demand, and scale in when demand decreases. Scalability concerns not just compute instances, but other items such as data stor- age, messaging infrastructure, and more. Security Security is the capability of a system to prevent malicious or accidental actions outside of the designed usage, and to prevent disclosure or loss of information. Cloud applications are exposed on the Internet outside trusted on-premises boundaries, are often open to the public, and may serve untrusted users. Applications must be designed and deployed in a way that protects them from malicious attacks, restricts access to only approved users, and protects sensitive data. Resiliency Resiliency is the ability of a system to gracefully handle and recover from failures. The nature of cloud hosting, where applications are often multi-tenant, use shared platform services, compete for resources and bandwidth, communicate over the Internet, and run on commodity hardware means there is an increased likelihood that both transient and more permanent faults will arise. Detecting failures, and recovering quickly and efficiently, is necessary to maintain resiliency. Data Management Data management is the key element of cloud applications, and influenc- es most of the quality attributes. Data is typically hosted in different locations and across multiple servers for reasons such as performance, scalability or availability, and this can present a range of challenges. For example, data consistency must be maintained, and data will typically need to be synchronized across different locations. Design and Implementation Good design encompasses factors such as consistency and coherence in component design and deployment, maintainability to simplify adminis- tration and development, and reusability to allow components and subsystems to be used in other applications and in other scenarios. Decisions made during the design and implementation phase have a huge impact on the quality and the total cost of ownership of cloud hosted applications and services. Messaging The distributed nature of cloud applications requires a messaging infra- structure that connects the components and services, ideally in a loosely coupled manner in order to maximize scalability. Asynchronous messag- ing is widely used, and provides many benefits, but also brings challenges such as the ordering of messages, poison message management, idem- potency, and more. Management and Monitoring Cloud applications run in a remote datacenter where you do not have full control of the infrastructure or, in some cases, the operating system. This can make management and monitoring more difficult than an on-prem- ises deployment. Applications must expose runtime information that administrators and operators can use to manage and monitor the system, as well as supporting changing business requirements without requiring the application to be stopped or redeployed. Problem areas in the cloud Availability Availability defines the proportion of time that the system is functional and working. It will be affected by system errors, infrastructure problems, malicious attacks, and system load. It is usually measured as a percentage of uptime. Cloud applications typically provide users with a service level agreement (SLA), which means that applications must be designed and implemented in a way that maximizes availability. This poster depicts common problems in designing cloud applications (below) and patterns that offer guidance (right). The information applies to Microsoft Azure as well as other cloud platforms. The icons at the top of each item represent the problem areas that the pattern relates to. Patterns that include code samples are indicated by this icon: Visit http://aka.ms/Cloud-Design-Patterns-Sample to download. http://aka.ms/Availability-Patterns http://aka.ms/DataManagement-Patterns http://aka.ms/Design-and-Implementation-Patterns http://aka.ms/Messaging-Patterns http://aka.ms/Performance-and-Scalability-Patterns http://aka.ms/Resiliency-Patterns http://aka.ms/Security-Patterns http://aka.ms/Management-and-Monitoring-Patterns © 2015 Microsoft Corporation. All rights reserved. pagdoc@microsoft.comhttp://aka.ms/Cloud-Design-PatternsLike it? Get it. User Return token Request resource Target resource Access resource using token Check validity of request and generate key token 1 2 3 4 Application Valet Key For more info, see http://aka.ms/Valet-Key-Pattern Use a token or key that provides clients with restricted direct access to a specific resource or service in order to offload data transfer operations from the application code. This pattern is particularly useful in applications that use cloud-hosted storage systems or queues, and can minimize cost and maximize scalability and performance. Control the consumption of resources used by an instance of an application, an individu- al tenant, or an entire service. This pattern can allow the system to continue to function and meet service level agreements, even when an increase in demand places an extreme load on resources. Throttling For more info, see http://aka.ms/Throttling-Pattern Feature C Resource utilization Feature B Feature A Soft limit of resource utilization Maximum capacity Time T1 T2 Feature B is suspended to allow sufficient resources for applications to use Feature A and Feature C Deploy static content to a cloud-based storage service that can deliver these directly to the client. This pattern can reduce the requirement for potentially expensive compute instances. Static Content Hosting For more info, see http://aka.ms/Static-Content-Hosting-Pattern Deliver pages containing links to files in storage service Request files from storage service Container “myresources” styles.ccs sitecode.js download.doc samples.zip ... image1.png image2.png image3.png ... Client Application Divide a data store into a set of horizontal partitions or shards. This pattern can improve scalability when storing and accessing large volumes of data. Sharding For more info, see http://aka.ms/Sharding-Pattern Sharding logic: Route requests for tenant 1 to shard ... ... Route requests for tenant 55 to shard A ... Route requests for tenant 227 to shard C ... Route requests for tenant N to shard ... Query: Find information for tenant 227 Query: Find information for tenant 55 Application instance Application instance ••• Shard A Shard B Shard C Shard N Coordinate a set of actions across a distributed set of services and other remote resourc- es, attempt to transparently handle faults if any of these actions fail, or undo the effects of the work performed if the system cannot recover from a fault. This pattern can add resiliency to a distributed system by enabling it to recover and retry actions that fail due to transient exceptions, long-lasting faults, and process failures. Scheduler Agent Supervisor For more info, see http://aka.ms/Scheduler-Agent-Supervisor-Pattern Supervisor requests that a failed step is reattempted by the Scheduler Supervisor monitors the status of steps in the State Store and may update the status of a step Scheduler organizes and runs the steps that comprise the task as a workflow Scheduler maintains the status of each step in the State Store as it is started and completed A step in the workflow can send a request to an agent to access a remote resource or invoke a remote service. Requests and responses are typically sent asynchronously Agent accesses remote resource or service. The agent should include error handling and retry logic Scheduler Agent Supervisor Agent State store Remote resource Remote service Runtime Reconfiguration For more info, see http://aka.ms/Runtime-Reconfiguration-Pattern Design an application so that it can be reconfigured without requiring redeployment or restarting the application. This helps to maintain availability and minimize downtime. Component or service Change applied at runtime Configuration updated Change cancelled because it cannot be applied at runtime Configuration file Restart application Application code Retry For more info, see http://aka.ms/Retry-Pattern Enable an application to handle anticipated, temporary failures when it attempts to connect to a service or network resource by transparently retrying an operation that has previously failed in the expectation that the cause of the failure is transient. This pattern can improve the stability of the application. Application Hosted service Application invokes operation on hosted service. The request fails, and the service host responds with HTTP response code 500 (internal server error). Application waits for a short interval and tries again. The request still fails with HTTP response code 500. Application waits for a longer interval and tries again. The request succeeds with HTTP response code 200 (OK). 1 500 2 500 3 1 2 3 200 Requests received at a variable rate Messages processed at a more consistent rate Tasks ServicesMessage queue Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads that may otherwise cause the service to fail or the task to time out. This pattern can help to minimize the impact of peaks in demand on avail- ability and responsiveness for both the task and the service. Queue-Based Load Leveling For more info, see http://aka.ms/Queue-Based-Load-Leveling-Pattern Priority Queue For more info, see http://aka.ms/Priority-Queue-Pattern Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those of a lower priority. This pattern is useful in applications that offer different service level guarantees to individual clients. Message queue for priority 1 messages Application sends messages to the queue that handles messsages of the designated priority All messages in a queue have the same priority Message queue for priority 2 messages Message queue for priority 3 messages Application 11 1 22 3 3 3 Consumer Consumer Consumer Consumer Consumer Consumer Pipes and Filters For more info, see http://aka.ms/Pipes-and-Filters-Pattern Decompose a task that performs complex processing into a series of discrete elements that can be reused. This pattern can improve performance, scalability, and reusability by allowing task elements that perform the processing to be deployed and scaled independently. Data from Source 1 Task A Task B Task C Business logic Transformed data Transformed data Components reused in different pipelines Data from Source 2 Task A Task B Task E Materialized View For more info, see http://aka.ms/Materialized-View-Pattern Generate pre-populated views over the data in one or more data stores when the data is formatted in a way that does not favor the required query operations. This pattern can help to support efficient querying and data extraction, and improve performance. Materialized view is read-only Application data is the source of truth Materialized View Application OrderId ItemId Qty 1 30 2 1 31 3 2 30 2 OrderId Account 1 A 2 B ItemId Name Stock 30 Shirts 120 31 Pants 143 ItemId Name Stock 30 Shirts 120 31 Pants 143 Coordinate the actions performed by a collection of collaborating task instances in a distributed application by electing one instance as the leader that assumes responsibility for managing the other instances. This pattern can help to ensure that task instances do not conflict with each other, cause contention for shared resources, or inadvertently interfere with the work that other task instances are performing. Leader Election For more info, see http://aka.ms/Leader-Election-Pattern Blob 1 2 3 4 BlobDistributedMutext Leader role instance Subordinate role instance BlobDistributedMutext BlobDistributedMutext Create indexes over the fields in data stores that are frequently referenced by query criteria. This pattern can improve query performance by allowing applications to more quickly locate the data to retrieve from a data store. Index Table For more info, see http://aka.ms/Index-Table-Pattern Index Table Primary Key (Customer ID) Customer Data 1 LastName: Smith, Town: Redmond,... 2 LastName: Jones, Town: Seattle, ... 3 LastName: Robinson, Town: Portland, ... 4 LastName: Brown, Town: Redmond, ... 5 LastName: Smith, Town: Chicago, ... 6 LastName: Clarke, Town: Portland, ... 7 LastName: Smith, Town, Redmond, ... 8 LastName: Smith, Town: Redmond, ... 9 LastName: Jones, Town: Chicago, ... ... ... 1000 LastName: Clarke, Town: Chicago, ... ... ... Fact Table Secondary Key Customer (LastName) Reference (ID) Brown ID: 4 Clarke ID: 7 Green ID: 6 Jones ID: 2 Jones ID: 9 ... ... Robinson ID: 3 Smith ID: 1 Smith ID: 8 ... ... Secondary Key Customer (Town) Reference (ID) Chicago ID: 5 Chicago ID: 9 ... ... Portland ID: 3 Portland ID: 7 Redmond ID: 1 Redmond ID: 4 Redmond ID: 6 Redmond ID: 8 Seattle ID: 2 ... ... Index Table Health Endpoint Monitoring Implement functional checks within an application that external tools can access through exposed endpoints at regular intervals. This pattern can help to verify that applications and services are performing correctly. For more info, see http://aka.ms/Health-Endpoint-Monitoring-Pattern Port 80 (HTTPS) or 443 (HTTPS) endpoint CDN Application Agent CDN Application SSL ... Health checks Storage Database Service A Service B ... Response time: 50 ms Storage: 5 ms Database: 20 ms ... Storage SSL certificates 200 (OK) Database Gatekeeper Protect applications and services by using a dedicated host instance that acts as a broker between clients and the application or service, validates and sanitizes requests, and passes requests and data between them. This pattern can provide an additional layer of security, and limit the attack surface of the system. For more info, see http://aka.ms/Gatekeeper-Pattern Gatekeeper exposes endpoints to clients Client Gatekeeper validates and sanitizes requests Trusted host accesses service and storage Gatekeeper may be decoupled from trusted host(s) Data Trusted host or Keymaster Services Gatekeeper Federated Identity Delegate authentication to an external identity provider. This pattern can simplify development, minimize the requirement for user administration, and improve the user experience of the application. For more info, see http://aka.ms/Federated-Identity-Pattern Identity provider (IdP) or security token service (STS) ServiceConsumer 1. Service trusts IdP or STS 4. Consumer presents token to service 2. Consumer authenticates and requests token 3. STS returns token External Configuration Store Move configuration information out of the application deployment package to a centralized location. This pattern can provide opportunities for easier management and control of configuration data, and for sharing configuration data across applications and application instances. For more info, see http://aka.ms/External-Configuration-Store-Pattern Application Application Application External configuration store Local cache Alternative option Cloud storage Database Event Sourcing Use an append-only store to record actions taken on data, rather than the current state, and use the store to materialize the domain objects. In complex domains this can avoid synchronizing the data model and the business domain; improve performance, scalabili- ty, and responsiveness; provide consistency; and provide audit history to enable com- pensating actions. For more info, see http://aka.ms/Event-Sourcing-Pattern External systems and applications Query for current state of entities Shipping information added Cart created Presentation Persisted events Item 1 added Item 1 removed Item 2 added Some options for consuming events Event store Materialized View Cart Cart ID Date Customer Address ... Cart Item Cart ID Item key Item name Quantity ... Published events Replayed events Command and Query Responsibility Segregation (CQRS) Segregate operations that read data from operations that update data by using separate interfaces. This pattern can maximize performance, scalability, and security; support evolution of the system over time through higher flexibility; and prevent update com- mands from causing merge conflicts at the domain level. For more info, see http://aka.ms/CQRS-Pattern Queries (generate DTOs) Read model Write model Date persistence Domain logic Commands Validation Presentation Data store Compute Resource Consolidation Consolidate multiple tasks or operations into a single computational unit. This pattern can increase compute resource utilization, and reduce the costs and management overhead associated with performing compute processing in cloud-hosted applications. For more info, see http://aka.ms/Compute-Resource-Consolidation-Pattern OnStart Fabric controller OnStop Run Run creates tasks and waits for them to complete OnStop cleans up resources used by tasks Role Start event Blob Stop event OnStart initializes resources used by tasks Competing Consumers Enable multiple concurrent consumers to process messages received on the same messaging channel. This pattern enables a system to process multiple messages concur- rently to optimize throughput, to improve scalability and availability, and to balance the workload. For more info, see http://aka.ms/Competing-Consumers-Pattern Application instances - generating messages Consumer service instance pool - processing messages Message queue Compensating Transaction Undo the work performed by a series of steps, which together define an eventually consistent operation, if one or more of the operations fails. Operations that follow the eventual consistency model are commonly found in cloud-hosted applications that implement complex business processes and workflows. For more info, see http://aka.ms/Compensating-Transaction-Pattern Operation steps to create itinerary Compensating transaction to cancel itinerary Reserve room at hotel H1 Compensating logic Cancel room at hotel H1 Counter operations recorded for each step in the long- running transaction Book seat on flight F1 Compensating logic Cancel seat on flight F1 Compensation logic applies business rules to counter- operations Book seat on flight F2 Compensating logic Cancel seat on flight F2 Circuit Breaker For more info, see http://aka.ms/Circuit-Breaker-Pattern Handle faults that may take a variable amount of time to rectify when connecting to a remote service or resource. This pattern can improve the stability and resiliency of an application. Half-Open entry / reset success counter do / if operation succeeds increment success counter return result else return failure exit / Open entry / start timeout timer do / return failure exit / Closed entry / reset failure counter do / if operation succeeds return result else increment failure counter return failure exit / Timeout timer expired Success count threshold reached Failure threshold reached Operation failed Cache-aside For more info, see http://aka.ms/Cache-Aside-Pattern Load data on demand into a cache from a data store. This pattern can improve perfor- mance and also helps to maintain consistency between data held in the cache and the data in the underlying data store. Cache Data store