Edit

Share via


Cloud design patterns

Architects design workloads by integrating platform services, functionality, and code to meet both functional and nonfunctional requirements. To design effective workloads, you must understand these requirements and select topologies and methodologies that address the challenges of your workload's constraints. Cloud design patterns provide solutions to many common challenges.

System design heavily relies on established design patterns. You can design infrastructure, code, and distributed systems by using a combination of these patterns. These patterns are crucial for building reliable, highly secure, cost-optimized, operationally efficient, and high-performing applications in the cloud.

The following cloud design patterns are technology-agnostic, which makes them suitable for any distributed system. You can apply these patterns across Azure, other cloud platforms, on-premises setups, and hybrid environments.

How cloud design patterns enhance the design process

Cloud workloads are vulnerable to the fallacies of distributed computing, which are common but incorrect assumptions about how distributed systems operate. Examples of these fallacies include:

  • The network is reliable.
  • Latency is zero.
  • Bandwidth is infinite.
  • The network is secure.
  • Topology doesn't change.
  • There's one administrator.
  • Component versioning is simple.
  • Observability implementation can be delayed.

These misconceptions can result in flawed workload designs. Design patterns don't eliminate these misconceptions but help raise awareness, provide compensation strategies, and provide mitigations. Each cloud design pattern has trade-offs. Focus on why you should choose a specific pattern instead of how to implement it.

Consider how to use these industry-standard design patterns as the core building blocks for a well-architected workload design. Each design pattern in the Azure Well-Architected Framework represents one or more of its pillars. Some patterns might introduce trade-offs that affect the goals of other pillars.

Pattern catalog

Each pattern in this catalog describes the problem that it addresses, considerations for applying the pattern, and an example based on Microsoft Azure services and tools. Some patterns include code samples or snippets that show how to implement the pattern on Azure.

Pattern Summary Well-Architected Framework pillars
Ambassador Create helper services that send network requests on behalf of a consumer service or application. - Reliability

- Security
Anti-Corruption Layer Implement a façade or adapter layer between a modern application and a legacy system. - Operational Excellence
Asynchronous Request-Reply Decouple back-end processing from a front-end host. This pattern is useful when back-end processing must be asynchronous, but the front end requires a clear and timely response. - Performance Efficiency
Backends for Frontends Create separate back-end services for specific front-end applications or interfaces. - Reliability

- Security

- Performance Efficiency
Bulkhead Isolate elements of an application into pools so that if one fails, the others continue to function. - Reliability

- Security

- Performance Efficiency
Cache-Aside Load data on demand into a cache from a data store. - Reliability

- Performance Efficiency
Choreography Let individual services decide when and how a business operation is processed, instead of depending on a central orchestrator. - Operational Excellence

- Performance Efficiency
Circuit Breaker Handle faults that might take a variable amount of time to fix when an application connects to a remote service or resource. - Reliability

- Performance Efficiency
Claim Check Split a large message into a claim check and a payload to avoid overwhelming a message bus. - Reliability

- Security

- Cost Optimization

- Performance Efficiency
Compensating Transaction Undo the work performed by a sequence of steps that collectively form an eventually consistent operation. - Reliability
Competing Consumers Enable multiple concurrent consumers to process messages that they receive on the same messaging channel. - Reliability

- Cost Optimization

- Performance Efficiency
Compute Resource Consolidation Consolidate multiple tasks or operations into a single computational unit. - Cost Optimization

- Operational Excellence

- Performance Efficiency
CQRS Separate operations that read data from those that update data by using distinct interfaces. - Performance Efficiency
Deployment Stamps Deploy multiple independent copies of application components, including data stores. - Operational Excellence

- Performance Efficiency
Event Sourcing Use an append-only store to record a full series of events that describe actions taken on data in a domain. - Reliability

- Performance Efficiency
External Configuration Store Move configuration information out of an application deployment package to a centralized location. - Operational Excellence
Federated Identity Delegate authentication to an external identity provider. - Reliability

- Security

- Performance Efficiency
Gateway Aggregation Use a gateway to aggregate multiple individual requests into a single request. - Reliability

- Security

- Operational Excellence

- Performance Efficiency
Gateway Offloading Offload shared or specialized service functionality to a gateway proxy. - Reliability

- Security

- Cost Optimization

- Operational Excellence

- Performance Efficiency
Gateway Routing Route requests to multiple services by using a single endpoint. - Reliability

- Operational Excellence

- Performance Efficiency
Geode Deploy back-end services across geographically distributed nodes. Each node can handle client requests from any region. - Reliability

- Performance Efficiency
Health Endpoint Monitoring Implement functional checks in an application that external tools can access through exposed endpoints at regular intervals. - Reliability

- Operational Excellence

- Performance Efficiency

Next steps

Review the design patterns from the perspective of the Well-Architected Framework pillar that the pattern aims to optimize.


Additional resources

Training

Learning path

Build great solutions with the Microsoft Azure Well-Architected Framework - Training

Learn how to design and build secure, scalable, high-performing solutions in Azure using the pillars of the Microsoft Azure Well-Architected Framework.

Certification

Microsoft Certified: Azure Solutions Architect Expert - Certifications

As a Microsoft Azure solutions architect, you advise stakeholders and translate business requirements into designs for Azure solutions that align with the Azure Well-Architected Framework and Cloud Adoption Framework for Azure.