Bibliography

Retired Content

This content and the technology described is outdated and is no longer being maintained. For more information, see Transient Fault Handling.

patterns & practices Developer Center

On this page:
Chapter 1: Introduction to Microsoft Azure | Chapter 2: Introduction to Enterprise Library Integration Pack for Microsoft Azure | Chapter 3: The Tailspin Scenario | Chapter 4: Autoscaling and Microsoft Azure | Chapter 5: Making Tailspin Surveys More Elastic | Chapter 6: Transient Fault Handling | Chapter 7: Making Tailspin Surveys More Resilient | Appendix B: Tailspin Surveys Installation Guide

Chapter 1: Introduction to Microsoft Azure

There is a great deal of information available about Microsoft Azure in the form of documentation, training videos, and white papers. Here are some websites you can visit to learn more:

Below are the links to references in this chapter:

Chapter 2: Introduction to Enterprise Library Integration Pack for Microsoft Azure

For more information about the Enterprise Library application blocks, see the following resources on MSDN:

For more information about the Autoscaling Application Block, see "The Autoscaling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680892(v=PandP.50).aspx

For more information about the Transient Fault Handling Application Block, see "The Transient Fault Handling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680934(v=PandP.50).aspx

Chapter 3: The Tailspin Scenario

For information about building a Windows Phone 7 client application for the Tailspin Surveys application, see the book, Windows Phone 7 Developer Guide at https://go.microsoft.com/fwlink/?LinkID=234571**

Chapter 4: Autoscaling and Microsoft Azure

For more information about design requirements, see "Building a Scalable, Multi-Tenant Application for Microsoft Azure" on MSDN:
https://msdn.microsoft.com/en-us/library/ff966483.aspx

For more information about compute hours in Azure, see "Usage Charge Details for Azure Bills":
https://go.microsoft.com/fwlink/?LinkID=234626

For more information about Azure subscriptions, see the Azure Support page:
https://www.microsoft.com/windowsazure/support/

For more information about how the Autoscaling Application Block reconciles conflicting rules, see "Understanding Rule Ranks and Reconciliation" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680923(v=PandP.50).aspx

For a more detailed discussion of how you can estimate your Azure running costs, see the chapter "How Much Will It Cost?" in the book "Moving Applications to the Cloud":
https://msdn.microsoft.com/en-us/library/ff803375.aspx

For a discussion of session state in Azure applications, see "Storing Session State" in the book "Moving Applications to the Cloud":
https://msdn.microsoft.com/en-us/library/ff803373.aspx#sec11

For a discussion of some of the design issues associated with scalable worker roles, see "Scaling Applications by Using Worker Roles" in the book "Developing Applications for the Cloud":
https://msdn.microsoft.com/en-us/library/hh534484.aspx#sec14

For information about how you can use NuGet to prepare your Visual Studio project to work with the Autoscaling Application Block, see the topic "Adding the Autoscaling Application Block to a Host" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680920(v=PandP.50).aspx

For information about how to host the Autoscaling Application Block in Azure, see the topic "Hosting the Autoscaling Application Block in a Worker Role" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680914(v=PandP.50).aspx

For information about how to reference the Enterprise Library assemblies, how Enterprise Library handles dependencies, and how to work with Enterprise Library objects, see "Using Enterprise Library in Applications" in the main Enterprise Library documentation on MSDN:
https://msdn.microsoft.com/en-us/library/ff664560(PandP.50).aspx

For information about how to host the Autoscaling Application Block in an on-premises application, see the topic "Hosting the Autoscaling Application Block in an On-Premises Application" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680882(v=PandP.50).aspx

For more information about the code changes you must make in your Azure application to enable it to save performance counter data, see the topic "Collecting Performance Counter Data" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680886(v=PandP.50).aspx

You can also use the Azure Diagnostics Configuration File (diagnostics.wadcfg) to configure your performance counters. For more details, see "How to Use the Azure Diagnostics Configuration File" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234617

The Autoscaling Application Block rules can only operate on targets (roles and scale groups) that are identified in the block's service information. For more information, see the topic "Storing Your Service Information Data" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680878(v=PandP.50).aspx

For information about a technique for parallelizing large calculations across multiple role instances, see the section "The Map Reduce Algorithm" in the book Developing Applications for the Cloud:
https://msdn.microsoft.com/en-us/library/ff966483.aspx#sec18

In Azure, you can use the session state provider that stores session state in the shared cache. For more information, see the page "Session State Provider" on MSDN:
https://msdn.microsoft.com/en-us/library/gg185668.aspx

To minimize the risk of disclosing sensitive information, you should encrypt the contents of the service information store. For more information, see the topic "Encrypting the Rules Store and the Service Information Store" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680910(v=PandP.50).aspx

For more information about how your Azure application can detect a request for throttling behavior, see the topic "Implementing Throttling Behavior" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680896(v=PandP.50).aspx

For information about how to define the throttling autoscaling rules, see the topic "Defining Throttling Autoscaling Rules" on MSDN:

https://msdn.microsoft.com/en-us/library/hh680908(v=PandP.50).aspx

For a complete example of how the Tailspin Surveys application uses throttling behavior, see Chapter 5, "Making Tailspin Surveys More Elastic" in this guide.

If your reactive rules use performance counter data from your Azure application, you must make sure that your application transfers the performance counter data that the rules consume to Azure Diagnostics storage. For an example of how to do this, see the section "Collecting Performance Counter Data from Tailspin Surveys" in Chapter 5, "Making Tailspin Surveys More Elastic" of this guide.

For information about the logging data that the Autoscaling Application Block generates, see the topic "Autoscaling Application Block Logging" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680883(v=PandP.50).aspx

For more information about reading and parsing the Autoscaling Application Block log messages, see the topic "Reading the Autoscaling Application Block Log Messages":
https://msdn.microsoft.com/en-us/library/hh680909(v=PandP.50).aspx

For more information about configuring the Autoscaling Application Block and configuring the logger, see the topic "Entering Configuration Information" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680915(v=PandP.50).aspx

For more information about reading from the rules store, see the "IRulesStore interface" in the API documentation on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234680

For more information about reading from the service information store, see the "IServiceInformationStore interface" in the API documentation on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234681

For more information about reading from the rules store, see the "IDataPointsStore interface" in the API documentation on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234682

For a complete example of using the different data sources to visualize the Autoscaling Application Block activities, see the section "Visualizing the Autoscaling Actions" in Chapter 5, "Making Tailspin Surveys More Elastic."

For more information about how to configure notifications, see the topic "Using Notifications and Manual Scaling" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680885(v=PandP.50).aspx

For more information extending and modifying the Autoscaling Application Block, see the topic "Extending and Modifying the Autoscaling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680889(v=PandP.50).aspx

For more information about extending the Enterprise Library, see the "Extensibility Hands-on Labs for Microsoft Enterprise Library 5.0":
https://go.microsoft.com/fwlink/?LinkId=209184

For more information about the WASABiCmdlets, see the topic "Using the WASABiCmdlets Windows PowerShell Cmdlets" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680938(v=PandP.50).aspx

For more information about the Azure PowerShell Cmdlets, see "Azure PowerShell":
https://msdn.microsoft.com/en-us/library/azure/jj156055.aspx

For more information about SCOM, see "System Center Operations Manager" on TechNet:
https://technet.microsoft.com/en-us/systemcenter/om/default.aspx

For more information about writing autoscaling rules, see the topics "Defining Constraint Rules" and "Defining Reactive Rules" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680917(v=PandP.50).aspx
https://msdn.microsoft.com/en-us/library/hh680897(v=PandP.50).aspx

For more information about billing details in Azure, see "Usage Charge Details for Azure Bills":
https://go.microsoft.com/fwlink/?LinkID=234626

The Autoscale Planner worksheet helps you to understand the interactions between different timing values that govern the overall autoscaling process. You can download this worksheet from the Enterprise Library Community site on CodePlex:
https://go.microsoft.com/fwlink/?LinkID=234704

Chapter 5: Making Tailspin Surveys More Elastic

For more information about autoscaling and how the Autoscaling Application Block works, see Chapter 4, "Autoscaling and Microsoft Azure," in this guide.

For instructions about how to install the Tailspin Surveys application, see Appendix B, "Tailspin Surveys Installation Guide."

For more information about the certificates used by the simulated issuers that handle claims-based identity management, see the guide Developing Applications for the Cloud, 2nd Edition on MSDN:
https://msdn.microsoft.com/en-us/library/ff966499.aspx

For more information about the CloudStorageAccount.SetConfigurationSettingPublisher method, see CloudStorageAccount.SetConfigurationSettingPublisher Method on MSDN: https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.cloudstorageaccount.setconfigurationsettingpublisher.aspx

For more information about obtaining an SSL certificate, see "How to Obtain an SSL Certificate" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234634

For more information about configuring HTTPS endpoints in Azure web roles, see "How to Configure an SSL Certificate on an HTTPS Endpoint" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234623

For more information on management and service certificates in Azure, see "Managing Certificates in Azure" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234616

You can use Azure storage analytics to gain deeper insight into your data usage. For more information, see "Storage Analytics Overview" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234635

Chapter 6: Transient Fault Handling

For more examples of how you can use the Transient Fault Handling Application Block in your Azure application, see Chapter 7, "Making Tailspin Surveys More Resilient."

For detailed information about configuring the Transient Fault Handling Application Block and writing code that uses the Transient Fault Handling Application Block, see the topic "The Transient Fault Handling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680934(v=PandP.50).aspx

For more information about throttling in Azure, see "Azure Storage Abstractions and their Scalability Targets" on MSDN:
https://go.microsoft.com/fwlink/?LinkID=234633

For information about how you can use NuGet to prepare your Visual Studio project to work with the Transient Fault Handling Application Block, see the topic "Adding the Transient Fault Handling Application Block to your Solution" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680891(v=PandP.50).aspx

There is an additional approach that is provided for backward compatibility with the "Transient Fault Handling Application Framework" that uses the RetryPolicyFactory class:
http://windowsazurecat.com/2011/02/transient-fault-handling-framework/

For more details about the parameters for each retry strategy, see the topic "Source Schema for the Transient Fault Handling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680941(v=PandP.50).aspx

You can define your own, custom retry strategy. For more information, see the topic "Implementing a Custom Retry Strategy" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680943(v=PandP.50).aspx

For more information about how to define your retry strategy in code, see the topic "Specifying Retry Strategies in Code" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680927(v=PandP.50).aspx

For more information about how to define your retry strategies in a configuration file, see the topic "Specifying Retry Strategies in the Configuration" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680900(v=PandP.50).aspx

For more information about using the retry policies, see the topic "Key Scenarios" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680948(v=PandP.50).aspx

For more information about the RetryPolicy delegate in the Microsoft.WindowsAzure.StorageClient namespace, see the blog post "Overview of Retry Policies in the Azure Storage Client Library":
https://go.microsoft.com/fwlink/?LinkID=234630

For more information about retries in Azure storage, see "Overview of Retry Policies in the Azure Storage Client Library":
https://go.microsoft.com/fwlink/?LinkID=234630

The Transient Fault Handling Application Block is a product of the collaboration between the Microsoft patterns & practices team (https://msdn.microsoft.com/practices) and the Azure Customer Advisory Team (http://windowsazurecat.com/index.php). It is based on the initial detection and retry strategies, and the data access support from the "Transient Fault Handling Framework for SQL Azure, Azure Storage, Service Bus & Cache" on MSDN:
http://windowsazurecat.com/2011/02/transient-fault-handling-framework/

Chapter 7: Making Tailspin Surveys More Resilient

For instructions on installing the Tailspin Surveys application, see Appendix B, "Tailspin Surveys Installation Guide" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680894(v=PandP.50).aspx

For more information about retry strategies, see "Specifying Retry Strategies in the Configuration" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680900(v=PandP.50).aspx

Appendix B: Tailspin Surveys Installation Guide

Visit the Enterprise Library Integration Pack for Azure home page for the latest news:
https://entlib.codeplex.com/wikipage?title=EntLib5Azure

Please refer to the installation documents of the previous releases for the topics that are not covered in this document:
https://wag.codeplex.com/releases/view/71446

To learn more about this version of the Tailspin Surveys application, see the "Developer's Guide to the Enterprise Library 5.0 Integration Pack for Microsoft Azure."

To learn more about the Autoscaling Application Block, see Chapter 4, "Autoscaling and Microsoft Azure," in this guide and "The Autoscaling Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680945(v=PandP.50).aspx

To view a video walkthrough about the Autoscaling Application Block, see "Autoscaling Azure applications" on Channel 9:
https://channel9.msdn.com/posts/Autoscaling-Windows-Azure-applications

To learn more about the Transient Fault Handing Application Block, see Chapter 6, "Transient Fault Handling" in this guide and "The Transient Fault Handing Application Block" on MSDN:
https://msdn.microsoft.com/en-us/library/hh680934(v=PandP.50).aspx

To get the NuGet Package Manager, see the NuGet community site on CodePlex:
https://nuget.codeplex.com/

To learn more about Azure profile generation, see Azure:
https://account.windowsazure.com/Home/Index.

To learn more about the limitation in Visual Studio 2010 IntelliTrace and how to disable IntelliTrace on an assembly, see "RIA, Azure, and IntelliTrace" on Kyle McClellan's blog:
https://blogs.msdn.com/b/kylemc/archive/2010/06/09/ria-azure-and-intellitrace.aspx

Previous Topic | Home

Last built: June 7, 2012