Best practices on design, deployment, troubleshooting, security, and performance.
Visit the architecture page for articles, reference architectures, and samples that demonstrate how to implement common design patterns in Azure applications.
Learn best practices for data integrity and high availability
This document explains how you think about and plan for availability. It discusses how to plan for availability problems that could be caused by failure of individual servers, devices, or networks; corruption, unwanted modification, or deletion of data; and widespread loss of facilities.
This article describes backup and restore options and other business continuity capabilities provided by Azure SQL Database. It also includes information about the built-in fault tolerance that supports high availability of the SQL Database applications.
Capacity Planning & Scaling
Optimize your resource usage by planning ahead and leveraging scaling
To take advantage of what tables offer, data should be partitioned using optimal PartitionKey values. This article explores strategies that allow you to efficiently partition data for Azure Table storage.
If you understand the Azure Management APIs, you can build your own scaling engine. The goal of this article is to help you do this. The article explains the necessary concepts and design considerations and, in particular, discusses what may be the biggest challenge you will face: how to manage the deployed application's instance counts.
This topic shows how to use the Capacity Planning Guide spreadsheet to determine the required capacity of the cache, and the settings to configure to provision a cache cluster to meet the requirements.
The Autoscaling Application Block from the Microsoft Enterprise Library 5.0 Integration Pack for Azure provides tools that let you automatically scale your cloud service. You can use performance counters to understand your app's performance, and then write rules that will automatically scale your app to adjust for specified targets and thresholds.
This topic describes the difference in queue size limits between Azure queues and Service Bus queues and how to approximate the correct Service Bus queue or topic capacity. It also describes a test run with messages of different sizes to give an idea of the number of messages of various sizes that can be placed in a Service Bus queue or topic.
Set up effective build and publishing environments for your Azure applications
This how-to guide provides details about how to get started using Git with Azure. Git is a popular, open source, distributed version control system. Azure Websites allow you to enable a Git repository for your site, which allows you to quickly and easily push code changes to your site.
Learn how to use Visual Studio Online to automate the continuous build, package, and deployment of an Azure application.
Learn how to use Team Foundation Server to set up continuous delivery for Azure Cloud Services. This process enables you to automatically create packages and deploy the package to Azure after every code check-in.
Develop applications that include both cloud-based and on-premises elements
Azure Service Bus EAI and EDI Labs provides a rich set of integration capabilities enabling organizations to create hybrid solutions such that their customer or partner facing applications are hosted on Azure, while the data related to customers or partners is stored on-premises using LOB applications. This article describes how to set up a similar hybrid scenario using Service Bus EAI and EDI Labs.
Azure Service Bus enables on-premise systems to communicate with applications running on Azure, or with systems on other networks. This article shows how to use your current Active Directory Federation Services (ADFS) authentication with Azure Service Bus.
Move your existing applications and data to Azure
This article provides guidance on migrating data schemas and data to SQL Database. It is primarily for one-time migration from SQL Server to SQL Database.
Learn how to use SQL Server Integration Services (SSIS) to move data to and from Azure SQL Database. Best practices are outlined for using SSIS for cloud sources and destinations, as well as project planning for Azure and hybrid data moves. Sample code provided in C#.
Learn best practices for project design and architecture when using SQL Server Integration Services (SSIS) to move data to and from Azure SQL Database. Best practices are also provided for performance tuning.
This series of articles provides detailed guidance about how to migrate data-centric applications to Azure cloud services and virtual machines. The series includes the following sections:
Measure and optimize your application's performance
This topic provides an overview of performance considerations for cloud-based applications, as well as guidance around monitoring application performance. It also provides links to additional content to help guide you through all stages of designing and deploying your application.
This article provides guidance about how to get the most out of your caching solution. These suggestions are based on both Caching architecture and customer experiences.
This topic describes how to use the Azure Service Bus to optimize performance when exchanging brokered messages. The first half of this topic describes the different mechanisms that are offered to help increase performance. The second half provides guidance on how to use the Service Bus in a way that can offer the best performance for a given scenario.
This article describes practices that help ensure optimal performance in a SQL Database application, including techniques for implementing proper retry logic and efficient logging. The article is part of the SQL Database Performance and Elasticity Guide.
This article discusses the key factors to consider when evaluating performance and planning a migration to SQL Server in Virtual Machines. It also provides best practices and techniques for performance tuning and troubleshooting.
Find patterns and guidance for designing your Azure application
This guide provides details about when to use Websites, Cloud Services, and Virtual Machines as components in your application.
This article offers practical guidance for developers working with the .NET managed brokered messaging API in the Azure Service Bus. The recommendations supplied in this article come directly from recent customer projects.
This article analyzes the differences and similarities between the two types of queues offered by Azure today: Azure Queues and Azure Service Bus Queues. By using this information, you can compare and contrast the respective technologies and be able to make a more informed decision about which solution best meets your needs.
This topic compares two types of structured storage that Azure supports: Azure Table Storage and Azure SQL Database. The goal of this article is to provide a comparison of the respective technologies so that you can understand the similarities and differences between them. This analysis can help you make a more informed decision about which technology best meets your specific requirements.
Build secure cloud-based applications
This topic focuses on two key security areas, identity and access. You will learn about how security is different in the cloud and which features and settings to use in different application scenarios. The article provides links to additional content to help guide you through all stages of designing and deploying your application.
This paper by the Microsoft Security Engineering Center (MSEC) and Microsoft's Online Services Security and Compliance (OSSC) team, focuses on the security challenges and recommended approaches to design more secure applications for Azure. The teams partnered with the Azure team to build on the same security principles and processes that Microsoft has developed through years of experience managing security risks in traditional development and operating environments.
This document from the Patterns and Practices team provides solutions for securing common application scenarios on Azure.
This paper provides an overview of security guidelines for customers who connect to SQL Database, and who build secure applications on SQL Database.
This book from the Microsoft Patterns and Practices team provides information to help you evaluate claims-based identity as a possible option when you are planning a new application or making changes to an existing one.
Troubleshooting & Diagnostics
Build robust applications that can be easily debugged, and leverage Azure features and tools to more easily resolve issues when they occur
This topic provides an introduction to designing Azure applications and websites so that you can identify problems when they occur. It includes links to additional content that will guide you through all stages of designing, deploying, and troubleshooting your application.
This tutorial walks through an example of how to investigate and resolve problems in an Azure web site. It describes how to use web site diagnostic logging and tracing and how to download and analyze error logs.
This collection of topics provides details about how to use Azure Diagnostics to collect log data. You can use diagnostic data for debugging and troubleshooting, measuring performance, monitoring resource usage, traffic analysis and capacity planning, and auditing.
Azure Storage Analytics performs logging and provides metrics data for a storage account. You can use this data to trace requests, analyze usage trends, and diagnose issues with your storage account.
This topic provides information describing the collection and analysis of diagnostic and debugging information for Azure Host instances and Azure applications.
This article discusses the diagnostic options that are available in Azure, and provides strategies and best practices that you can adopt when you instrument your applications.
This paper focuses on the different troubleshooting challenges and recommended approaches to design and develop more supportable applications for Microsoft’s Azure platform. It provides an overview of Azure diagnostic resources, including the Cloud Service diagnostics APIs, other Microsoft-provided tools, and third-party tools. It also discusses general best practices for supportable design, development, and deployment.
This topic provides an overview of troubleshooting steps and diagnostics for troubleshooting Azure Caching applications.