Availability Patterns and Guidance

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

The following patterns and guidance topics are related to maximizing availability in cloud-hosted applications.

Health Endpoint Monitoring Pattern

AvailabilityManagement and MonitoringDesign PatternsDownload code sampleShow All

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.

Health Endpoint Monitoring Pattern

For more info, see the Health Endpoint Monitoring Pattern.

Queue-based Load Leveling Pattern

MessagingAvailabilityPerformance & ScalabilityDesign PatternsShow All

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 timeout. This pattern can help to minimize the impact of peaks in demand on availability and responsiveness for both the task and the service.

Queue-based Load Leveling Pattern

For more info, see the Queue-based Load Leveling Pattern.

Throttling Pattern

AvailabilityPerformance & ScalabilityDesign PatternsShow All

Control the consumption of resources used by an instance of an application, an individual 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 Pattern

For more info, see the Throttling Pattern.

Data Replication and Synchronization Guidance

AvailabilityData ManagementCloud Guidance and PrimersShow All

When you deploy an application to more than one datacenter, such as cloud and on-premises locations, you must consider how you will replicate and synchronize the data each instance of the application uses in order to maximize availability and performance, ensure consistency, and minimize data transfer costs between locations.

For more info, see the Data Replication and Synchronization Guidance.

Multiple Datacenter Deployment Guidance

AvailabilityCloud Guidance and PrimersShow All

Deploying an application to more than one datacenter can provide benefits such as increased availability and a better user experience across wider geographical areas. However, there are challenges that must be resolved, such as data synchronization and regulatory limitations.

For more info, see the Multiple Datacenter Deployment Guidance.

Next Topic | Previous Topic | Home | Community

patterns & practices Developer Center