Book Description
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, resilience, 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 efficient.
This open book is licensed under a Open Publication License (OPL). You can download Cloud Design Patterns ebook for free in PDF format (16.2 MB).
Table of Contents
Cache-Aside Pattern
Circuit Breaker Pattern
Compensating Transaction Pattern
Competing Consumers Pattern
Compute Resource Consolidation Pattern
Command and Query Responsibility Segregation (CQRS) Pattern
Event Sourcing Pattern
External Configuration Store Pattern
Federated Identity Pattern
Gatekeeper Pattern
Health Endpoint Monitoring Pattern
Index Table Pattern
Leader Election Pattern
Materialized View Pattern
Pipes and Filters Pattern
Priority Queue Pattern
Queue-Based Load Leveling Pattern
Retry Pattern
Runtime Reconfiguration Pattern
Scheduler Agent Supervisor Pattern
Sharding Pattern
Static Content Hosting Pattern
Throttling Pattern
Valet Key Pattern
Asynchronous Messaging Primer
Autoscaling Guidance
Caching Guidance
Compute Partitioning Guidance
Data Consistency Primer
Data Partitioning Guidance
Data Replication and Synchronization Guidance
Instrumentation and Telemetry Guidance
Multiple Datacenter Deployment Guidance
Service Metering Guidance