CLOUD DESIGN PATTERNS
PRESCRIPTIVE ARCHITECTURE GUIDANCE FOR CLOUD APPLICATIONS
Cloud Design
Patterns
Alex Homer
John Sharp
Larry Brader
Masashi Narumoto
Trent Swanson
CLOUD DESIGN PATTERNS
For more information explore:
microsoft.com/practices
Software Architecture and
Software Development
patterns & practices
proven practices for predictable results
Save time and reduce risk on
your software development
projects by incorporating
patterns & practices, Microsoft’s
applied engineering guidance
that includes both production
quality source code and
documentation.
The guidance is designed to
help software development
teams:
Make critical design and
technology selection decisions
by highlighting the appropriate
solution architectures,
technologies, and Microsoft
products for common scenarios
Understand the most
important concepts needed
for success by explaining
the relevant patterns and
prescribing the important
practices
Get started with a proven
code base by providing
thoroughly tested software
and source that embodies
Microsoft’s recommendations
The patterns & practices
team consists of experienced
architects, developers, writers,
and testers. We work openly
with the developer community
and industry experts, on every
project, to ensure that some
of the best minds in the
industry have contributed
to and reviewed the guidance
as it is being developed.
We also love our role as the
bridge between the real world
needs of our customers and
the wide range of products and
technologies that Microsoft
provides.
Cloud applications have a unique set of characteristics. They run on commodity
hardware, provide services to untrusted users, and deal with unpredictable workloads.
These factors impose a range of problems that you, as a designer or developer, need
to resolve. Your applications must be resilient so that they can recover from failures,
secure to protect services from malicious attacks, and elastic in order to respond to
an ever changing workload.
This guide demonstrates design patterns that can help you to solve the problems
you might encounter in many different areas of cloud application development.
Each pattern discusses design considerations, and explains how you can implement
it using the features of Windows Azure. The patterns are grouped into categories:
availability, data management, design and implementation, messaging, performance
and scalability, resiliency, management and monitoring, and security.
You will also see more general guidance related to these areas of concern. It explains
key concepts such as data consistency and asynchronous messaging. In addition,
there is useful guidance and explanation of the key considerations for designing
features such as data partitioning, telemetry, and hosting in multiple datacenters.
These patterns and guidance can help you to improve the quality of applications and
services you create, and make the development process more efcient. Enjoy!
“This guide contains a wealth of useful information to help you design and
build your applications for the cloud.”
Scott Guthrie, Corporate Vice President,
Windows Azure