Designing and implementing applications for the cloud brings a unique set of challenges due to the remoteness of the infrastructure and the very nature of distributed services. Azure provides a comprehensive platform and infrastructure for hosting large-scale web applications and cloud services. However, to be successful, you need to understand how to use the features that Azure provides to support your systems correctly. The purpose of this site is to provide architectural guidance to enable you to build and deploy world-class systems using Azure.
These documents focus on the essential aspects of architecting systems to make optimal use of Azure, and summarize best practice for building cloud solutions. The current set of guidance documents contains the following items:
-
API Design describes the issues that you should consider when designing a web API..
-
API Implementation focusses on best practices for implementing a web API and publishing it to make it available to client applications.
-
Autoscaling Guidance summarizes considerations for taking advantage of the elasticity of cloud-hosted environments while easing management overhead by reducing the need for an operator to continually monitor the performance of a system and make decisions about adding or removing resources.
-
Background Jobs Guidance describes the options available, and best practices for implementing tasks that should be performed in the background, independently from any foreground or interactive operations.
-
Content Delivery Network (CDN) Guidance provides general guidance and good practice for using the CDN to minimize the load on your applications, and maximize availability and performance.
-
Caching Guidance summarizes how to use caching with Azure applications and services to improve the performance and scalability of a system.
-
Data Partitioning Guidance describes strategies that you can use to partition data to improve scalability, reduce contention, and optimize performance.
-
Monitoring and Diagnostics Guidance provides guidance on how to track the way in which users utilize your system, trace resource utilization, and generally monitor the health and performance of your system.
-
Retry General Guidance covers general guidance for transient fault handling in an Azure application.
-
Retry Service Specific Guidance summarizes the retry mechanism features for the majority of Azure services, and includes information to help you use, adapt, or extend the retry mechanism for that service.
-
Scalability Checklist summarizes best practices for designing and implementing scalable services and handling data management.
-
Availability Checklist lists best practices for ensuring availability in an Azure application.
This is a living project. We will be adding more documentation to cover additional aspects of Azure architecture. We also welcome feedback, suggestions, and other contributions to those items that we have already documented.
Note. This documentation is oriented towards architects. You can find detailed code examples and implementation documentation on the Azure website. Additionally, the Performance Optimization site contains further guidance on how to design systems that are scalable and efficient under load.