Best practices on design, deployment, troubleshooting, security, and performance.
Architecture
Visit the architecture page for articles, reference architectures, and samples that demonstrate how to implement common design patterns in Windows Azure applications.
Business Continuity
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 Windows 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 Windows Azure Table storage.
If you understand the Windows 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 Windows 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 Windows 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.
This article discusses load simulation for web applications that are hosted in Windows Azure. In this article, a simple load test scenario is used.
This article provides guidance on sizing decisions for Windows Azure Cloud Service web roles by comparing performance of a web application under load for different instance sizes and evaluating cost when scaling for different instance sizes.
Continuous Delivery
Set up effective build and publishing environments for your Windows Azure applications
This how-to guide provides details about how to get started using Git with Windows Azure. Git is a popular, open source, distributed version control system. Windows Azure Web Sites 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 the Team Foundation Service Preview to automate the continuous build, package, and deployment of a Windows Azure application.
Learn how to use Team Foundation Server to set up continuous delivery for Windows Azure Cloud Services. This process enables you to automatically create packages and deploy the package to Windows Azure after every code check-in.
Hybrid Applications
Develop applications that include both cloud-based and on-premises elements
Windows 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.
Windows Azure Service Bus enables on-premise systems to communicate with applications running on Windows Azure, or with systems on other networks. This article shows how to use your current Active Directory Federation Services (ADFS) authentication with Windows Azure Service Bus.
Migration
Move your existing applications and data to Windows 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 Windows Azure SQL Database. Best practices are outlined for using SSIS for cloud sources and destinations, as well as project planning for Windows 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 Windows 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 Windows Azure cloud services and virtual machines. The series includes the following sections:
Load testing is the process of measuring the performance of an application under a simulated usage scenario. With Windows Azure, you can create worker roles to take the place of multiple computers. This series of topics explains the basic mechanics of setting up Windows Azure to run a load test controller and agents in two worker roles.
Performance
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 Windows 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.
Planning
Find patterns and guidance for designing your Windows Azure application
This guide provides details about when to use Web Sites, 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 Windows 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 Windows Azure today: Windows Azure Queues and Windows 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 Windows Azure supports: Windows Azure Table Storage and Windows 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.
Security
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 Windows Azure. The teams partnered with the Windows 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 Windows Azure.
This paper provides an overview of security guidelines for customers who connect to SQL Database (formerly SQL Azure), 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 Windows Azure features and tools to more easily resolve issues when they occur
This topic provides an introduction to designing Windows Azure applications and web sites 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 a Windows 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 Windows 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.
Windows 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 Windows Azure Host instances and Windows Azure applications.
This article discusses the diagnostic options that are available in Windows 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 Windows Azure platform. It provides an overview of Windows 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 Windows Azure Caching applications.