High Availability for Azure Deployments

Following are High Availability strategies while developing Azure Applications.

Multiple Instances

Ensure the application components, services have multiple instances.

Retry Pattern

In case of Transient failures that should not last long, the application should implement a Retry pattern to repeat the invoke and get through the service.

Circuit Breaker Pattern

For prolonged failures, the application should implement Circuit Breaker pattern so that subsequent failures will not hang the application.  Once the failure is resolved, the Circuit Breaker should open the gates back.

Message Broker

Implement a Message Broker for high critical tasks to ensure the tasks in the Queue is definitely processed.

Automate Deployments

Consider using Automated Deployments including for Updates too.

Deployment Slots

Usage of Deployment Slots enable switching between Production & Staging deployments.

Geo-replicate Database

Geo-Replicate the database for higher availability.

Monitoring Systems

Implement proper monitoring systems to track failures, notify on errors, long duration tasks etc.

Disaster Recovery

Create a multi-site recovery plan for mission critical applications.