Microsoft Patterns & Practices-Building Hybrid Applications in the Cloud on Windows Azure

This guide focuses on the common issues you will encounter when building applications that run partly in the cloud and partly on-premises, or when you decide to migrate some or all elements of an existing on-premises application to the cloud. It focuses on using Windows Azure as the host environment, and shows how you can take advantage of the many features of this platform, together with SQL Azure, to simplify and speed the development of these kinds of applications.

Windows Azure provides a set of infrastructure services that can help you to build hybrid applications. These services, such as Service Bus Security, Messaging, Caching, Traffic Manager, and Azure Connect, are the main topics of this guide. The guide demonstrates scenarios where these services are useful, and shows how you can apply them in your own applications.

This guide is based on the experiences of a fictitious corporation named Trey Research who evolved their existing on-premises application to take advantage of Windows Azure. The guide does not cover the individual migration tasks, but instead focuses on the way that Trey Research utilizes the services exposed by Windows Azure and SQL Azure to manage interoperability, process control, performance, management, data synchronization, and security.

What’s in “Building Hybrid Applications in the Cloud” ?

clip_image002

Component

Description

The Guide

The Trey Research Scenario provides an introduction to Trey Research and its plan for evolving the on-premises Orders application into a hybrid application. It also contains overviews of the architecture and operation of the original on-premises application and the completed hybrid implementation to provide you with context for the remainder of the guide.

Deploying the Orders Application and Data in the Cloud discusses the techniques and technologies Trey Research considered for deploying the application and the data it uses to the cloud, how Trey Research decided which data should remain on-premises, and the deployment architecture that Trey Research decided would best suite its requirements. The chapter also explores technologies for synchronizing the data across the on-premises and cloud boundary, and how business intelligence reporting could still be maintained.

Authenticating Users in the Orders Application describes the technologies and architectures that Trey Research examined for evolving the on-premises application from ASP.NET Forms authentication to use claims-based authentication when deployed as a hybrid application.

Implementing Reliable Messaging and Communications with the Cloud describes the technologies that Trey Research investigated for sending messages across the on-premises and cloud boundary, and the solutions it chose. This includes the architecture and implementation for sending messages to partners in a reliable way, as well as to on-premises services.

Processing Orders in the Trey Research Solution describes the business logic that Trey Research requires to securely and reliably process customers’ orders placed by using the Orders website. This logic includes directing messages to the appropriate partner or service, receiving acknowledgements, and retrying operations that may fail due to transient network conditions.

Maximizing Scalability, Availability, and Performance in the Orders Application describes how Trey Research explored techniques for maximizing the performance of the Orders application by autoscaling instances of the web and worker roles in the application, deploying the application in multiple datacenters, and improving data access performance through caching.

Monitoring and Managing the Orders Application describes the techniques that Trey Research examined and chose for monitoring and managing the Orders application. These techniques include capturing diagnostic information, setting up and configuring the Windows Azure services, and remotely managing the application configuration and operation.

While the main chapters of this guide concentrate on Trey Research’s design process and the choices it made, the “Hybrid Challenge Scenariosappendices focus on a more generalized series of scenarios typically encountered when designing and building hybrid applications.

The companion samples

The samples illustrate all scenarios covered in the book. They provide a “single box” experience with minimal infrastructure requirements.

Click here to download this release.

Goals of This Release

This book gives you enough information to build hybrid solutions when you're planning a new application or making changes to an existing one. It is intended for any architect, developer, or information technology (IT) professional who designs, builds, or operates hybrid applications that need to integrate cloud and on-premises.

In addition to the previous 2 guides, this book contains the latest Windows Azure services such as Service Bus, Caching, Azure Connect, and Traffic Manager. It also contains some of the latest SQL Azure features such as Data Sync.

This book shows you when and how to use these services in the context of some commonly occurring hybrid scenarios.

Acknowledgements

Many people contributed to this release, but we wanted to highlight the contributions of the following subject matter experts: Clemens Vasters, Mark Scurrell, Jason Chen, Tina Stewart, Arun Rajappa, and Corey Sanders.

We also want to thank  Kashif Alam, Vijaya Alaparthi and Enrique Saggese for their support throughout.

Customer Connections

We are happy to engage in customer conversations as appropriate. Please contact Masashi Narumoto or Eugenio Pace.

If you have a customer using Building Hybrid Applications in the Cloud, please let us know at ourstory@microsoft.com.

About patterns & practices

The Microsoft patterns & practices (p&p) team is responsible for delivering applied engineering guidance that helps software architects, developers, and their teams take full advantage of Microsoft’s platform technologies in their custom application development efforts.

Our goal is to help software development teams be more successful with the Microsoft application platform. We do this by delivering guidance that:

· Helps to simplify the Microsoft application platform.

· Provides solution guidance to common problems.

· Helps development teams grow their skills and learn.

For more information: https://msdn.microsoft.com/practices or https://practices