Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account? Log In

Cloud Patterns by Mind Map: Cloud Patterns
5.0 stars - 5 reviews range from 0 to 5

Cloud Patterns

Availability Patterns and Guidance

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 downtime. 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.

Health Endpoint Monitoring Pattern

Queue-based Load Leveling Pattern

Throttling Pattern

Multiple Datacenter Deployment Guidance

Data Management Patterns and Guidance

Data management is the key element of cloud applications, and influences 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.

Cache-aside Pattern

Command and Query Responsible Segregation (CQRS) Pattern

Event Sourcing Pattern

Index Table Pattern

Materialized View Pattern

Sharding Pattern

Static Content Hosting Pattern

Valet Key Pattern

Caching Guidance

Data Consistency Primer

Data Partitioning Guidance

Data Replication and Synchronization Guidance

Design and Implementation Patterns and Guidance

Good design encompasses factors such as consistency and coherence in component design and deployment, maintainability to simplify administration 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.

Compute Resource Consolidation Pattern

Command and Query Responsible Segregation (CQRS) Pattern

External Configuration Store Pattern

Leader Election Pattern

Pipes and Filters Pattern

Runtime Reconfiguration Pattern

Static Content Hosting Pattern

Compute Partitioning Guidance

Management and Monitoring Patterns and Guidance

Cloud applications run in 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-premises 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 and customization without requiring the application to be stopped or redeployed.

External Configuration Store Pattern

Health Endpoint Monitoring Pattern

Runtime Reconfiguration Pattern

Service Metering Guidance

Messaging Patterns and Guidance

The distributed nature of cloud applications requires a messaging infrastructure that connects the components and services, ideally in a loosely coupled manner in order to maximize scalability. Asynchronous messaging is widely used, and provides many benefits, but also brings challenges such as the ordering of messages, poison message management, idempotency, and more.

Competing Consumers Pattern

Pipes and Filters Pattern

Priority Queue Pattern

Queue-based Load Leveling Pattern

Scheduler Agent Supervisor Pattern

Asynchronous Messaging Primer

Performance and Scalability Patterns and Guidance

Performance is an indication of the responsiveness of a system to execute any action within a given time interval, while scalability is ability of a system either to handle increases in load without impact on performance or for the available resources to be readily increased. Cloud applications typically encounter variable workloads and peaks in activity. Predicting these, especially in a multi-tenant scenario, is almost impossible. Instead, applications should be able to scale out within limits to meet peaks in demand, and scale in when demand decreases. Scalability concerns not just compute instances, but other elements such as data storage, messaging infrastructure, and more.

Cache-aside Pattern

Competing Consumers Pattern

Command and Query Responsible Segregation (CQRS) Pattern

Event Sourcing Pattern

Index Table Pattern

Materialized View Pattern

Priority Queue Pattern

Queue-based Load Leveling Pattern

Sharding Pattern

Static Content Hosting Pattern

Throttling Pattern

Autoscale Guidance

Caching Guidance

Data Consistency Guidance

Data Partitioning Guidance

Resiliency Patterns and Guidance

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.

Circut Breaker Pattern

Compensating Transaction Pattern

Leader Election Pattern

Retry Pattern

Scheduler Agent Supervisor Pattern

Security Patterns and Guidance

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.

Federated Identity Pattern

Gatekeeper Pattern

Valet Key Pattern

Introduction

Download book (PDF)

Podcast